比如说最常见的很多地方都挂的google搜索栏,发送请求后如何不显示google的页面,而是在当前的页面中显示google返回的搜索结果。
转发请求用哪个语句,把返回的搜索结果直接显示在当前页面中用哪个语句,麻烦大家给个提示,谢谢!!!!!!!

解决方案 »

  1.   

    很简单的,你把<form action="本页面"/>,然后本页面中判断 if(request.getPararmeter("XXX")!=null){//进行相关处理,如果数据库查询,再把结果显示出来就行了。}
      

  2.   

    to terry_yip(Endless Road)
    很感谢你的热心帮助,实际我现在的想法很简单,不涉及到其他的处理,现在只关心在我的页面中转发一个检索请求到目标,获取目标返回的结果后再原原本本的显示在当前页面中的某个区域,所以不太清楚该用那些语句来完成这个转发--获取--显示的过程,你可以简单的告诉我这三个环节都用哪些语句,具体的参数使用我可以去查资料看看就可以了,再次表示感谢!
      

  3.   

    我还是没太明白你的意思,我看这样行不行,例如从A 页面转到B页面后,在B页面中,String value="结果";session.setAtrribute("key",value) ,这样把结果存起来,然后,从B页面再跳回A页面,A页面中用<%=session.getAttribute("key")%>,这样把结果显示出来。
      

  4.   

    过程是:
    在A页面有个文本框,用户输入要搜索的关键词后点击“搜索”按钮,然后在B页面显示搜索结果这个过程中我想知道的是:
    转发搜索请求到google用哪个语句?
    如何获得google的搜索结果?
    如何把这个搜索结果原原本本的显示在B页面?非常谢谢你,terry_yip(Endless Road),可能是我的问题比较初级,我在SUN和BEA的社区都问了却没什么人回答。
      

  5.   

    转发只要把form的action属性设置成你需要转到的页面就可以了
    获取 可以用request.getParameter("上个页面文本框的name属性")
      

  6.   

    谢谢sdshadow(IT民工)!我这就试试
      

  7.   

    to sdshadow(IT民工)
    把form的action属性设置为下一跳转页面B只是跳转到页面B而已,怎么将搜索请求发送到google让google搜索呢?还有,你提到的request.getParameter中传进来的参数应该只能得到文本框中的字符串而不是google的搜索结果吧。
    望指教
      

  8.   

    我觉得这样可能简单一些,就是设一个iframe,比如说name=a,在<from target="a">这样设定就可以了
      

  9.   

    iframe用的可能是id,你可以试一下,不行换成name
      

  10.   

    非常感谢aylian(浪漫游侠) 
    因为其他的考虑我不打算用iframe而是用层来做。
      

  11.   

    如果把请求发送到google,由于google的搜索关键字是加密的,所以不行,如果发送到百度,例如你要搜"aaa",action="http://www.baidu.com/s?wd=aaa&cl=3"就行了。 另外,把页面的搜索结果抓回来是可以的,但是我怕说出来你更加不会,给你些提示,用java中的url对象。
      

  12.   

    (1)用iframe可以实现。
    (2)ajax,div,用ajax的xmlhttp对象获取要得到的结果同时在当前的页面用层显示。
      

  13.   

    ---------------index.jsp文件代码<%@ page contentType="text/html;charset=GB2312"%>
    <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>
    搜了一个例子,你看看,可以不?
      

  14.   

    同意terry_yip(Endless Road) 
    很简单的,你把<form action="本页面"/>,然后本页面中判断 if(request.getPararmeter("XXX")!=null){//进行相关处理,如果数据库查询,再把结果显示出来就行了。}
      

  15.   

    我要感谢CCTV,chanel V,还有:
    terry_yip(Endless Road) 
    sdshadow(IT民工)
    aylian(浪漫游侠) 
    shazi_pig(傻子)
    wangx1949()
    非常感谢大家的帮助!!!!!
      

  16.   

    to terry_yip(Endless Road)
    我在BEA的dev2dev论坛问这个问题斑竹说可以使用google的web service,但最近白天单位的事儿比较多还没来得及去找类似的帖子。但如果目标站点不提供这个web service且还象google加密的话是不是我就无法转发请求到目标让其搜索呢?
    另外我也在看jsp2.0的规范,看到了你提到的那个URL,还有另外一个import和export,我感觉这几个应该都可以用得上,但还没来得及细看,谢谢你的提示!!to shazi_pig(傻子)
    呵呵,谢谢你帮我找这段代码啊,我会仔细看看有什么地方可以借鉴和有帮助的!!to  wangx1949() 
    同样谢谢你的关注!!再次对大家的帮助表示感谢!!
      

  17.   

    唉,不能用Google Web APIs了,刚才刚去google的页面看了一下,在许可协议中要求只作个人用户使用且不允许开发出与google具有相竞争性的产品,可我想在自己的网站上用,估计将来被google知道还不随时给停了,看来只能用帧和层试试看了