栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java Web程序设计第9章课后第1题

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java Web程序设计第9章课后第1题

  1. 编写图书模糊查询界面,输入图书名称的模糊资料,在界面下方显示图书信息,要求提交给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补齐,如

然后补全JSP代码

<%
    ArrayList res = (ArrayList) session.getAttribute("result");
    if (res != null) {
%>

    <%
            for (book b : res) {
                out.print("");
                out.print("");
                out.print("");
                out.print("");
                out.print(String.format("", b.id));
                out.print("");
            }
        }
    %>
 
完整代码 

search.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page import="chapter9.book" %>
<%@ page import="java.util.ArrayList" %>


    模糊查询



    请输入要查找的书名:
    

<%
    ArrayList res = (ArrayList) session.getAttribute("result");
    if (res != null) {
%>
图书ID 图书名称 图书价格 操作
" + b.id + "" + b.name + "" + b.price + "添加到购物车
<% for (book b : res) { out.print(""); out.print(""); out.print(""); out.print(""); out.print(String.format("", b.id)); out.print(""); } } %>
图书ID 图书名称 图书价格 操作
" + b.id + "" + b.name + "" + b.price + "添加到购物车

FuzzyLookupServlet.java

package chapter9.servlet;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.sql.*;
import java.util.ArrayList;

import chapter9.book;

import static java.lang.System.out;

@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);
                // 8、释放资源
                ps.close();
                conn.close();
                // 9、跳转
                request.getRequestDispatcher("/chapter9/9_1/search.jsp").forward(request, response);
            } catch (ClassNotFoundException | SQLException e) {
                e.printStackTrace();
            }
        }
    }

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

book.java

package chapter9;

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;
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/572233.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号