解析
- 编写图书模糊查询界面,输入图书名称的模糊资料,在界面下方显示图书信息,要求提交给Servlet完成。
在数据库中建个表
然后简单地弄一个book类
public class book {
public String id;
public String name;
public double price;
public book(String id, String name, double price) {
this.id = id;
this.name = name;
this.price = price;
}
}
在search.jsp中先搭个框架
| 图书ID | 图书名称 | 图书价格 | 操作 |
|---|
新建一个FuzzyLookupServlet
@WebServlet(name = "FuzzyLookupServlet", urlPatterns = {"/fuzzyLookupServlet"})
public class FuzzyLookupServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 处理响应乱码
response.setContentType("text/html;charset=utf-8");
// 处理请求乱码
request.setCharacterEncoding("utf-8");
String name = request.getParameter("name");
if (name != null) {
try {
// 1、导入驱动jar包
// 2、注册驱动
Class.forName("com.mysql.cj.jdbc.Driver");
// 3、获取数据库的连接对象
Connection conn = DriverManager.getConnection("你的数据库", "用户名", "你的密码");
// 4、定义sql语句
String sql = "select * from book where name like '%" + name + "%'";
// 5、获取执行sql语句的对象
PreparedStatement ps = conn.prepareStatement(sql);
// 6、执行sql并接收返回结果
ResultSet rs = ps.executeQuery(sql);
// 7、处理结果
ArrayList res = new ArrayList();
while (rs.next()) {
res.add(new book(rs.getString(1), rs.getString(2), rs.getDouble(3)));
}
HttpSession session = request.getSession();
session.setAttribute("result", res); // 把查询到的结果存放在session中
// 8、释放资源
ps.close();
conn.close();
// 9、跳转
request.getRequestDispatcher("/chapter9/9_1/search.jsp").forward(request, response); // 查询完毕后要返回到search.jsp
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
}
}
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
}
回到search.jsp,先把form action补齐,如


