文章摘要
这篇文章主要介绍了如何使用Spring Boot框架中的AJAX技术实现关键字自动补全功能。文章通过配置 inevitables插件,实现了前端JSTL传入的关键字高效处理。前端通过`com.examples.ajax.servlet.AjaxRequest13`类,获取前端传来的关键字,并通过预处理将关键字封装为`KeyWords`对象。后端通过数据库查询,根据关键字进行模糊搜索(`content like %`),将结果返回给前端,最终将查询结果以JSON格式返回给客户端。文章还提到了使用`comexamplesajexutilsDBUtils`等工具优化数据库操作,确保了整体性能的高效性。整篇文章重点突出在Spring Boot框架下如何结合AJAX实现高效的后端数据查询和前端数据展示。
package com.examples.ajax.servlet;
import com.alibaba.fastjson.JSON;
import com.examples.ajax.beans.KeyWords;
import com.examples.ajax.utils.DBUtils;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
@WebServlet(“/ajaxAutoComplete”)
public class AjaxRequest13 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//获取前端传来的关键字
String keyWords=request.getParameter(“keyWords”);
//连接数据库,进行模糊查询
Connection conn=null;
PreparedStatement ps=null;
ResultSet rs=null;
//封装关键字对象
List<KeyWords> keyWordsList=new ArrayList<>();
try {
conn=DBUtils.getConnection();
String sql=”select content from tb_search where content like ?”;
ps=conn.prepareStatement(sql);
ps.setString(1, keyWords + “%”);
rs=ps.executeQuery();
while(rs.next()){
String content=rs.getString(“content”);
//封装成关键字对象
KeyWords keyWordsObj=new KeyWords(content);
//将关键字对象封装
keyWordsList.add(keyWordsObj);
}
} catch (SQLException e) {
throw new RuntimeException(e);
}finally {
DBUtils.close(conn, ps, rs);
}
//后端数据json化
String jsonKeyWordsArray=JSON.toJSONString(keyWordsList);
//返回后端数据
response.getWriter().write(jsonKeyWordsArray);
}
}
import com.alibaba.fastjson.JSON;
import com.examples.ajax.beans.KeyWords;
import com.examples.ajax.utils.DBUtils;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
@WebServlet(“/ajaxAutoComplete”)
public class AjaxRequest13 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//获取前端传来的关键字
String keyWords=request.getParameter(“keyWords”);
//连接数据库,进行模糊查询
Connection conn=null;
PreparedStatement ps=null;
ResultSet rs=null;
//封装关键字对象
List<KeyWords> keyWordsList=new ArrayList<>();
try {
conn=DBUtils.getConnection();
String sql=”select content from tb_search where content like ?”;
ps=conn.prepareStatement(sql);
ps.setString(1, keyWords + “%”);
rs=ps.executeQuery();
while(rs.next()){
String content=rs.getString(“content”);
//封装成关键字对象
KeyWords keyWordsObj=new KeyWords(content);
//将关键字对象封装
keyWordsList.add(keyWordsObj);
}
} catch (SQLException e) {
throw new RuntimeException(e);
}finally {
DBUtils.close(conn, ps, rs);
}
//后端数据json化
String jsonKeyWordsArray=JSON.toJSONString(keyWordsList);
//返回后端数据
response.getWriter().write(jsonKeyWordsArray);
}
}
© 版权声明
文章版权归作者所有,未经允许请勿转载。