比如说最常见的很多地方都挂的google搜索栏,发送请求后如何不显示google的页面,而是在当前的页面中显示google返回的搜索结果。
转发请求用哪个语句,把返回的搜索结果直接显示在当前页面中用哪个语句,麻烦大家给个提示,谢谢!!!!!!!
转发请求用哪个语句,把返回的搜索结果直接显示在当前页面中用哪个语句,麻烦大家给个提示,谢谢!!!!!!!
解决方案 »
- MySQL乱码好麻烦···哪位高手指点一二···小弟谢过了
- resin一个难点问题
- [hibernate]错误,Could not find a getter for cities
- 请问如何获取struts里面的资源文件啊
- 如何在java或servlet中模拟表单POST操作提交到另外一个URL(ASP或php或jsp)并得到返回的数据。
- javabean俺不懂,哪位可以介绍以下这方面的电子书,谢谢先!
- 很简单的问题,谁告诉我?
- 帮忙啊!读取.properties文件出错
- applet在网页中实现资源管理器,能实现吗?
- 我在表单里面用了下拉列表,我怎么在处理表单的程序中取得下拉列表选择的内容
- jxl怎么用,谁能给个例子
- struts使用表单验证出错信息总是乱码,怎么解决?谢谢
很感谢你的热心帮助,实际我现在的想法很简单,不涉及到其他的处理,现在只关心在我的页面中转发一个检索请求到目标,获取目标返回的结果后再原原本本的显示在当前页面中的某个区域,所以不太清楚该用那些语句来完成这个转发--获取--显示的过程,你可以简单的告诉我这三个环节都用哪些语句,具体的参数使用我可以去查资料看看就可以了,再次表示感谢!
在A页面有个文本框,用户输入要搜索的关键词后点击“搜索”按钮,然后在B页面显示搜索结果这个过程中我想知道的是:
转发搜索请求到google用哪个语句?
如何获得google的搜索结果?
如何把这个搜索结果原原本本的显示在B页面?非常谢谢你,terry_yip(Endless Road),可能是我的问题比较初级,我在SUN和BEA的社区都问了却没什么人回答。
获取 可以用request.getParameter("上个页面文本框的name属性")
把form的action属性设置为下一跳转页面B只是跳转到页面B而已,怎么将搜索请求发送到google让google搜索呢?还有,你提到的request.getParameter中传进来的参数应该只能得到文本框中的字符串而不是google的搜索结果吧。
望指教
因为其他的考虑我不打算用iframe而是用层来做。
(2)ajax,div,用ajax的xmlhttp对象获取要得到的结果同时在当前的页面用层显示。
<html>
<title>Ajax应用</title>
<head>
<script language="javascript">
var req;
function sendData() {
var idField = document.getElementById("userid");
var url = "servlet/AjaxUse?id=" + escape(idField.value);
waitMessage();
if (window.XMLHttpRequest) {
req = new XMLHttpRequest();
} else if (window.ActiveXObject) {
req = new ActiveXObject("Microsoft.XMLHTTP");
}
req.open("GET", url, true);
//open包含5个参数:(http-method, url, async, userID, password) 前三个是必要的,后两个是可选的
//----http-method: HTTP的通信方式,比如GET或是 POST
//----url: 接收XML数据的服务器的URL地址。通常在URL中要指明 ASP或CGI程序
//----async: 布尔标识.如是异步通信方式(true),客户机不等待服务器的响应;如是同步方式(false),客户机就要等到服务器返回消息后才去执行其他操作
//----userID: 用户ID,用于服务器身份验证
//----password 用户密码,用于服务器身份验证
req.onreadystatechange = callback;
//如用POST方法,需添加如下内容
//----req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
//----req.send("id=" + escape(idField.value));
req.send(null);
}
function callback() {
if (req.readyState == 4) {
//XMLHTTP对象中的readyState属性能够反映出服务器在处理请求时的进展状况
//----0 Response对象已经创建,但XML文档上载过程尚未结束
//----1 XML文档已经装载完毕
//----2 XML文档已经装载完毕,正在处理中
//----3 部分XML文档已经解析
//----4 文档已经解析完毕,客户端可以接受返回消息
if (req.status == 200) {
//检查是否成功接收了服务器响应
parseMessage();
}
}
}
function parseMessage() {
var message = req.responseXML.getElementsByTagName("data");
var str=new Array();
if(message.length>=1){
for(var i=0;i<message.length;i++){
str[i]=message[i].firstChild.data;
}
}else{
str[0]=message.length;
}
mdiv = document.getElementById("userIdMessage");
mdiv.innerHTML = "<div>"+str[0]+"</div>";
}
function waitMessage() {
mdiv = document.getElementById("userIdMessage");
mdiv.innerHTML = "<div>请稍后----</div>";
}
</script>
</head>
<body bgcolor=silver>
<font size=2>输入一个数字,通过ajax将会在页面静态获取服务器端相应:</font>
<input type="text" name="id" id="userid" size="20">
<input type="button" value="发送" onclick="sendData()">
<div id="userIdMessage"></div>
</body>
</html>---------------AjaxUse.java 文件代码package com.servlet;import javax.servlet.*;
import javax.servlet.http.*;public class AjaxUse extends HttpServlet {
private ServletContext context;
public void init(ServletConfig config) throws ServletException {
this.context = config.getServletContext();
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
String targetId = request.getParameter("id");
StringBuffer sb=new StringBuffer("<message>");
response.setContentType("text/xml");
response.setHeader("Cache-Control", "no-cache");
sb.append("<data>LiaoNing</data><data>ShenYang</data>");
sb.append("</message>");
PrintWriter out=response.getWriter();
out.write(sb.toString());
out.close();
}
}
}---------------web.xml 文件代码<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<servlet>
<servlet-name>AjaxUse</servlet-name>
<servlet-class>com.servlet.AjaxUse</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>AjaxUse</servlet-name>
<url-pattern>/servlet/AjaxUse</url-pattern>
</servlet-mapping>
</web-app>
搜了一个例子,你看看,可以不?
很简单的,你把<form action="本页面"/>,然后本页面中判断 if(request.getPararmeter("XXX")!=null){//进行相关处理,如果数据库查询,再把结果显示出来就行了。}
terry_yip(Endless Road)
sdshadow(IT民工)
aylian(浪漫游侠)
shazi_pig(傻子)
wangx1949()
非常感谢大家的帮助!!!!!
我在BEA的dev2dev论坛问这个问题斑竹说可以使用google的web service,但最近白天单位的事儿比较多还没来得及去找类似的帖子。但如果目标站点不提供这个web service且还象google加密的话是不是我就无法转发请求到目标让其搜索呢?
另外我也在看jsp2.0的规范,看到了你提到的那个URL,还有另外一个import和export,我感觉这几个应该都可以用得上,但还没来得及细看,谢谢你的提示!!to shazi_pig(傻子)
呵呵,谢谢你帮我找这段代码啊,我会仔细看看有什么地方可以借鉴和有帮助的!!to wangx1949()
同样谢谢你的关注!!再次对大家的帮助表示感谢!!