zoukankan      html  css  js  c++  java
  • 站内搜索

    1、jsp页面

    <script type="text/javascript">
              function overFn(obj){
                  $(obj).css("background","#DBEAF9");
              }
              function outFn(obj){
                  $(obj).css("background","#fff");
              }
              function clickFn(obj){
                  $("#search").val($(obj).html());
                  $("#showDiv").css("display","none");
              }
              function searchWord(obj){
                  var word = $(obj).val();
                  var content = "";
                  $.get(
                      "${pageContext.request.contextPath}/searchServlet",
                      {"word":word},
                      function(data){
                          if(data.length>0){
                              for(var i=0;i<data.length;i++){
                                  content+="<div style='padding:5px;cursor:pointer' onclick='clickFn(this)' " +
                                      "onmouseover='overFn(this)' onmouseout='outFn(this)'>"+data[i]+"</div>";
                              }
                              $("#showDiv").html(content);
                              $("#showDiv").css("display","block");
                          }
                      },
                      "json"
                  );
    
              }
          </script>

    (1)从输入框中获取输入的数据后将数据封装为json。

    (2)利用jq封装的ajax中的get方法,将获得的数据发送到服务器,并获取服务器的返回的数据将其转换为json类型。

    <div >
              <input id="search" type="text"  placeholder="Search" onkeyup="searchWord(this)">
              <div id="showDiv" style="display:none; position:absolute;z-index:1000;background:#fff; 179px;border:1px solid #ccc;">
              </div>
    </div>

    2、web层、service层

    (1)servlet:

     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            String word = request.getParameter("word");
            SearchService service = new SearchService();
            List<Object> productList = null;
            try {
                productList = service.findProductByWord(word);
            } catch (SQLException e) {
                e.printStackTrace();
            }
            Gson gson = new Gson();
            String json = gson.toJson(productList);
            response.setContentType("text/html;charset=UTF-8");
            response.getWriter().write(json);
        }

    将从jsp页面获取到的数据作为函数的参数,经service层和dao层从数据库中获取数据,将数据转化为字符串(需要导入相应的jar包),然后将数据返回给get()方法中的回调函数。

    (2)service层:

      public List<Object> findProductByWord(String word) throws SQLException {
            SearchDao dao = new SearchDao();
            return dao.findProductByWord(word);
        }

    3、dao层

       public List<Object> findProductByWord(String word) throws SQLException {
            Connection con = C3p0Utils.getConnection();
            QueryRunner qr = new QueryRunner();
            String sql = "select * from product where pname like ? limit 0,8";
            List<Object> query = qr.query(con,sql, new ColumnListHandler("pname"), "%"+word+"%");
            return query;
        }

    通过sql语句从数据库查找满足条件的数据,将数据返回到service层并最终到达jsp页面。

    4、效果演示

     这些数据是从数据库中读取的。

  • 相关阅读:
    2019暑假——区域赛真题讲解
    2019暑假杭电训练赛(补题及笔记)
    2019暑假牛客训练赛(补题及笔记)
    网络流——最大流-Dinic算法
    SPFA
    K短路(A*+SPFA)
    从业务架构视角聊聊大型商业银行的转型实践
    互联网 40 岁失业是一个无法打破的魔咒吗
    Hadoop集群中出现的节点有哪些作用
    CDH集群的角色划分
  • 原文地址:https://www.cnblogs.com/zhai1997/p/12252909.html
Copyright © 2011-2022 走看看