[TOC]

综合案例 搜索联想

  • 案例效果和环境介绍
    综合案例-案例效果.png
  • 案例分析
    • 页面
        1. 为用户名输入框绑定鼠标点击事件。
        2. 获取输入的用户名数据。
        3. 判断用户名是否为空。
        4. 如果为空,则将联想提示框隐藏。
        5. 如果不为空,则发送 AJAX 请求,并将响应的数据显示到联想框。
    • 控制层
        1. 获取请求参数。
        2. 调用业务层的模糊查询方法。
        3. 将返回的数据转成 JSON,并响应给客户端。
  • 代码实现

    • html页面
      ```html <!DOCTYPE html>

      综合案例 搜索联想 - 图2

      
         -  **控制层-Java代码**  
      ```java
      @WebServlet("/userServlet")
      public class UserServlet extends HttpServlet {
          @Override
          protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
              //设置请求和响应的编码
              req.setCharacterEncoding("UTF-8");
              resp.setContentType("text/html;charset=UTF-8");
      
              //1.获取请求参数
              String username = req.getParameter("username");
      
              //2.调用业务层的模糊查询方法得到数据
              UserService service = new UserServiceImpl();
              List<User> users = service.selectLike(username);
      
              //3.将数据转成JSON,响应到客户端
              ObjectMapper mapper = new ObjectMapper();
              String json = mapper.writeValueAsString(users);
              resp.getWriter().write(json);
          }
      
          @Override
          protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
              doPost(req,resp);
          }
      }