如何在JSP中使用ajax在同一页面显示另一个页面的搜索结果

  • Post category:jquery

实现在同一页面显示另一个页面的搜索结果需要使用Ajax技术,以下是步骤说明:

  1. 添加依赖和JS文件:在JSP页面中添加jQuery库和ajax请求相关的JS文件(如jquery.min.js和jquery.ajax.js等)。示例代码如下:
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script src="https://cdn.bootcdn.net/ajax/libs/jquery-ajax/1.12.4/jquery.ajax.min.js"></script>
  1. 编写搜索表单:用户在表单中输入搜索关键字并提交请求,将异步请求发送到服务器。示例代码如下:
<form id="search-form">
  <input type="text" name="keyword" placeholder="输入关键字">
  <button type="submit">搜索</button>
</form>
  1. 编写Ajax请求:通过Ajax请求将搜索关键字发送到服务器处理,并将结果返回给客户端。示例代码如下:
$(function() {
  $('#search-form').submit(function(e) {
    e.preventDefault();
    var data = $(this).serialize(); //将表单数据序列化为查询字符串
    $.ajax({
      url: 'search.jsp', //搜索页面的地址
      type: 'GET',
      data: data,
      success: function(response) {
        //将搜索结果显示到当前页面
        $('#search-result').html(response);
      },
      error: function(xhr, status, error) {
        console.log(error);
      }
    });
  });
});
  1. 编写搜索结果显示区域:在当前页面添加一个用于显示搜索结果的区域。示例代码如下:
<div id="search-result"></div>
  1. 在搜索结果页面(search.jsp)中编写搜索及结果展示逻辑,以及在该页面的头部添加<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>以支持中文编码。示例代码如下:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%
  String keyword = request.getParameter("keyword"); //获取查询关键字
  //根据关键字查询数据库等数据,获取结果列表
  List<String> resultList = new ArrayList<String>();
  //将结果列表输出到页面
  out.println("<ul>");
  for (String result : resultList) {
      out.println("<li>" + result + "</li>");
  }
  out.println("</ul>");
%>

通过以上五个步骤,就可以在JSP页面中使用Ajax实现在同一页面显示另一个页面的搜索结果。