站内搜索 简单粗暴放代码

站内搜索 简单粗暴放代码第一步:创建表单,放搜索框第二步:写JS第三步:在Web层创建Servlet,使用的gson转换的json格式,需要导包第四步:创建Service第五步:创建Dao,使用的C3P0和

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

第一步:

  创建表单,放搜索

    <form >
        输入用户名:<input type="text" id="username" >    
        <span id="usernameInfo"></span><br>
        <br>
        <div style="position:relative">
            <input id="search" type="text" placeholder="Search" onkeyup="searchWord(this)">         <button type="submit">Submit</button>
            <div id="showDiv" style="display:none;position:absolute;z-index:1000;background:#fff; width:141px;border:1px solid #ccc;"></div>
        </div>
    </form>

第二步:

  写JS

<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){
     //1、获得输入框的输入的内容
     var word = $(obj).val();
     //2、根据输入框的内容去数据库中模糊查询---List<Product>
     var content = "";
     $.post(
     "${pageContext.request.contextPath}/searchWord",
     {"word":word},
     function(data){
       //3、将返回的商品的名称 现在showDiv中
        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>

第三步:

  在Web层创建Servlet,使用的gson转换的json格式,需要导包

public class SearchWordServlet extends HttpServlet {

    protected void doGet(HttpServletRequest request, HttpServletResponse response) 
            throws ServletException, IOException {

        //获得关键字
        String word = request.getParameter("word");
        //查询改关键字的所有商品
        UserService service = new UserService();
        List<Object> userList = null;
        try {
            userList = service.findUserByWord(word);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        //[{"username":"admin","phone":"17805054371","role":"超级管理员"...},{},{}...]
        //使用json的转换工具
        /*1、JSonlib
        JSONArray fromObject = JSONArray.fromObject(userList);
        String string = fromObject.toString();
        System.out.println(string);
    */    
        Gson gson = new Gson();
        String json = gson.toJson(userList);
        response.setContentType("texy/html;charset=UTF-8");
        response.getWriter().write(json);
    
    }


    protected void doPost(HttpServletRequest request, HttpServletResponse response) 
            throws ServletException, IOException {
        doGet(request,response);
    }
}

第四步:

  创建Service

public class UserService {

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

}

第五步:

  创建Dao,使用的C3P0和DBUtils

public class UserDao {
    public List<Object> findUserByWord(String word) throws SQLException {
        QueryRunner runner = new QueryRunner(C3P0Utils.getDataSource());
        String sql = "select * from user where username like ? limit 0,8";
        List<Object> query = runner.query(sql,new ColumnListHandler("username"),"%"+word+"%");
        return query;
    }

}

第六步:

  完成并测试

站内搜索 简单粗暴放代码

  

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/168292.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 怎么退出vi编辑界面_centos保存退出vim

    怎么退出vi编辑界面_centos保存退出vim@Linux基础学习如何退出vi编辑页面background今天在虚拟机上练习如何自动挂载的时候,按照提示在命令行输入vi/etc/fstab,如下图:回车之后进入编辑器界面,如图:由于误操作将这个编辑器内的内容修改了,可是我并不想修改任何内容,然后摸索半天也不知道如何撤销修改,或者说不保存退出,于是我在网上寻找到了一些答案。方法网上的方法是按ESC键跳到命令模式,但我在我的虚…

    2022年9月29日
    0
  • 基于MAX31865的温度控制系统

    基于MAX31865的温度控制系统系统介绍这是之前写的关于MAX31865测温相关的文章,本次在此基础上又实现了一些新功能。总结——STM32F103C8T6通过MAX31865读取PT100电阻值STM32控制max31865,利用pt100测温度,利用0.96OLED液晶显示屏显示温度值。温度过高控制风扇开启,温度过低控制加热膜加热。后续需要增加温度过高或过低蜂鸣器响且液晶有提示报警类型。系统组成STM32F103C8T6小系统板单片机核心板STM32开发板学习板实验板(升级版)MAX31865RTD铂电阻温度检测器

    2022年6月16日
    31
  • js合并数组与合并对象的区别_js将对象转为数组

    js合并数组与合并对象的区别_js将对象转为数组一、数组合并1、for循环会改变原数组,如果不想改变原数组需要生成一个新数组leta=[1,2,3];letb=[4,5];//1for循环for(variinb){a.push(b[i]);}console.log(a);//[1,2,3,4,5]2、concat()concat()方法用于连接两个或多个数组,该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本

    2022年10月26日
    0
  • django formview_DWG TrueView

    django formview_DWG TrueViewAPIView视图类在DRF中,推荐使用类视图,因为类视图可以通过继承的方式把一些重复性的工作抽取出来,而使得代码更加简洁。当然如果你不想使用类视图,那么就用@api_view装饰器包裹一下就可以。

    2022年7月31日
    3
  • substance painter anchor point快速教程

    substance painter anchor point快速教程这个功能方便在substancepainter里通过normal和height实时影响污迹图来做细节但是步骤有些略麻烦,下面作为笔记也作为一个小教程首先需要实时绘制的图层必须在污迹图的下面可以在图层上直接绘制右击加上anchorpoint然后需要被影响的图层或是mask里面的generation,必须开启microDetails如果你需要绘制的高度图影响细…

    2022年10月8日
    0
  • 数据库概念结构设计_数据库设计阶段分为

    数据库概念结构设计_数据库设计阶段分为概念结构设计:将需求分析得到的用户需求抽象为信息结构(即概念模型)的过程。一、概念模型在需求分析阶段所得到的应用需求应该首先抽象为信息世界的结构,然后才能更改、更准确地用某一数据库管理系统实现这些需求。概念模型的主要特点:1.能真实、充分地反映现实世界,包括事物和事物之间的联系,能满足用户对数据的处理要求,是现实世界的一个真是模型。2.易于理解,可以用它和不熟悉…

    2022年10月12日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号