模拟google 搜索

package com.sie.google;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class GoogleServlet extends HttpServlet {

    public void service(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/xml;charset=utf-8");
        request.setCharacterEncoding("utf-8");
        PrintWriter out = response.getWriter();
        String key = request.getParameter("key");
        try {
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
            Connection conn = DriverManager.getConnection("jdbc:sqlserver://127.0.0.1:1433;DatabaseName=master", "sa", "sasa");
            PreparedStatement pstmt = conn.prepareStatement("select type, count(type) as c from [spt_values] where type like ? group by type");
            pstmt.setString(1, key + "%");
            ResultSet rs = pstmt.executeQuery();
          
            StringBuilder xml = new StringBuilder();
            xml.append("<results>");
            if(rs != null){
                while(rs.next()){
                    xml.append("<result key=/"" + rs.getString(1) + "/" count=/"" + rs.getInt(2) + "/"></result>");
                }
            }
            xml.append("</results>");
            rs.close();
            pstmt.close();
            conn.close();
            System.out.println(xml.toString());
            out.print(xml.toString());
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
      
      
        out.flush();
        out.close();
    }
}

 

 

 

 

 

 

 

 

 

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>google.html</title>
  
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="this is my page">
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <script type="text/javascript" src="../js/jquery-1.5.1.js"></script>

    <script type="text/javascript">
        var line = 0;
      
        function del(){
            if($("#newDiv")){
                $("#newDiv").remove();
                line = 0;
            }
        }
  
        $(document).ready(function(){
            //文本框失去焦点时层消失
            $(document.body).click(function(){
                del();
            });
          
            $(document).keydown(function(){
                // 38 上  40下 13 回车
                if($("#newDiv")){
                    if(event.keyCode == 40){
                        $("table tbody tr").eq(line)
                            .css("backgroundColor", "blue")
                            .css("color", "white");
                        $("table tbody tr").eq(line < 0 ? 0 : line - 1)
                            .css("backgroundColor", "white")
                            .css("color", "black");
                        line = (line == $("table tbody tr").length ? 0 : line + 1);
                    }else if(event.keyCode == 38){
                        line = (line == 0 ? $("table tbody tr").length : line - 1);
                        $("table tbody tr").eq(line)
                            .css("backgroundColor", "blue")
                            .css("color", "white");
                        $("table tbody tr").eq(line > $("table tbody tr").length ? 0 : line + 1)
                            .css("backgroundColor", "white")
                            .css("color", "black");
                    }else if(event.keyCode == 13){
                        $("#key").val($("table tbody tr").eq(line - 1).find("td").eq(0).html());
                        del();
                    }
                }  
            });
      
            $("#key").bind("propertychange", function(){
                del();

                var top = $("#key").offset().top;
                var left = $("#key").offset().left;
                var newDiv = $("<div/>").width($("#key").width() + 6)
                    .css("position", "absolute")
                    .css("backgroundColor", "white")
                    .css("left", left)
                    .css("top", top + $("#key").height() + 6)
                    .css("border", "1px solid blue")
                    .attr("id", "newDiv");
                  
                var table = $("<table width='100%'/>")
                    .attr("cellpadding", "0")
                    .attr("cellspacing", "0");
                 
                $.post("/struts1/GoogleServlet", {key: $("#key").val()}, function(xml){
                    $(xml).find("results result").each(function(){
                        var key = $(this).attr("key");
                        var count = $(this).attr("count");
                      
                        var tr = $("<tr/>").css("cursor", "pointer").mouseout(function(){
                            $(this).css("backgroundColor", "white").css("color", "black");
                        }).mouseover(function(){
                            $(this).css("backgroundColor", "blue").css("color", "white");
                        }).click(function(){
                            $("#key").val($(this).find("td").eq(0).html());
                          
                            del();
                        });
                        var td1 = $("<td/>").html(key).css("fontSize", "12px")
                            .css("margin", "5 5 5 5");
                        var td2 = $("<td/>").html("共有" + count + "个结果")
                            .attr("align", "right").css("fontSize", "12px")
                            .css("color", "green").css("margin", "5 5 5 5");
                      
                        tr.append(td1).append(td2);
                        table.append(tr);
                        newDiv.append(table);
                    });
                });
              
                $(document.body).append(newDiv);
              
                if($("#key").val() == ""){
                    $("#newDiv").remove();
                }              
            });
        });
    </script>
  </head>
 
  <body>
    <h1>Google搜索</h1>
    <div style="margin-top: 20px; margin-left: 30px">
        请输入搜索关键字:<input name="key" id="key" style="width: 300">
    <input type="button" value="Goolge一下">
    </div>
  </body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值