Servlet将数据库内容展示在jsp前端

准备工作

在前面更新的系统内容上进行代码演示,如果不了解的朋友们,可以看一下之前的帖子,传送门
本文主要思路,将查询结果用list保存并层层传递,通过session方法在jsp展示

1、在UserDaoImpl类中完善queryAll方法

  public ArrayList<User> queryAll() {
        String sql="select * from user";
        getConn(DRIVER,URL,USERNAME,PASSWORD);
        query(sql);
        ArrayList<User> list=new ArrayList();
        try {
            while (getRs().next()){
                User u=new User();
                u.setUser_name(getRs().getString("user_name"));
                u.setUser_id(getRs().getInt("user_id"));
                u.setPassword(getRs().getString("password"));
                list.add(u);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return list;
    }

2、在UserServiceImpl中完善queryAll方法

这里只做简单的演示,为了更加清晰,不做其他情况判断了

  public ArrayList<User> queryAll() {
        return  dao.queryAll();
    }

3、在UserServlet中完善service方法和query方法

在这里插入图片描述

void query(HttpServletRequest req, HttpServletResponse resp){
        ArrayList<User> users = service.queryAll();
        req.getSession().setAttribute("1",users);
        try {
            resp.sendRedirect("/login/query.jsp");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

4、新建queryAll.jsp文件

用来触发请求

<html>
<head>
    <title>点击查询页面</title>
</head>
<body>
<form action="/queryAll">
<p><input type="text" name="type" value="query" hidden></p>
<p><input type="submit"></p>
</form>
</body>
</html>

5、新建query.jsp文件

用来展示最后的数据

<html>
<head>
    <title>客户信息显示</title>
</head>
<body>
<%
    Object users = session.getAttribute("1");
    if (null!=users && users instanceof ArrayList){
    ArrayList<User> list = (ArrayList<User>) users;
    for(User user:list){
        %>
    <tr>
        <td><%=user.getUser_id()%></td>
        <td><%=user.getUser_name()%></td>
        <td><%=user.getPassword()%></td>
    </tr>
<%
        }
    }
%>
</body>
</html>

6、web.xml中对应新增映射

 <servlet-mapping>
        <servlet-name>queryAll</servlet-name>
        <url-pattern>/queryAll</url-pattern>
    </servlet-mapping>

总结

从前台发送请求,到后台接收,再执行完指定功能,最后将返回值传给前台的执行顺序

1、Web层/Servlet层(前、后台交互层)
2、Service层(业务层:业务代码层)
3、Dao层(持久化层:逻辑代码处理层)
4、实体类(例如:User类等)
5、工具类(例如:Property等)

对应上面的新增代码序号,流转的逻辑为:4–>3–>2–>1–>2–>3–>5的顺序

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要在网页中输入数据并将其存储到数据库中,您需要使用Java Web开发技术,例如Java ServletJSP。以下是一些大致的步骤: 1. 创建一个包含表单的JSP页面,该表单将允许用户输入数据。 2. 在JSP页面中使用Java Servlet API创建一个Servlet,该Servlet将接收表单数据。 3. 在Servlet中,使用Java JDBC API连接到数据库并将表单数据插入到数据库中。 下面是一个基本的示例代码,仅供参考: JSP页面代码: ``` <form method="post" action="InsertDataServlet"> <label for="name">Name:</label> <input type="text" id="name" name="name"> <br> <label for="email">Email:</label> <input type="text" id="email" name="email"> <br> <input type="submit" value="Submit"> </form> ``` Java Servlet代码: ``` import java.io.*; import java.sql.*; import javax.servlet.*; import javax.servlet.http.*; public class InsertDataServlet extends HttpServlet { public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 获取表单数据 String name = request.getParameter("name"); String email = request.getParameter("email"); // 连接到数据库并插入数据 Connection conn = null; PreparedStatement stmt = null; try { Class.forName("com.mysql.jdbc.Driver"); conn = DriverManager.getConnection("jdbc:mysql://localhost/mydatabase", "username", "password"); stmt = conn.prepareStatement("INSERT INTO mytable(name, email) VALUES (?, ?)"); stmt.setString(1, name); stmt.setString(2, email); stmt.executeUpdate(); } catch (Exception e) { e.printStackTrace(); } finally { try { stmt.close(); } catch (Exception e) {} try { conn.close(); } catch (Exception e) {} } // 跳转到成功页面 response.sendRedirect("success.jsp"); } } ``` 请注意,此示例代码仅用于说明目的,并且可能需要进行更改以适应您的具体需求。您还应该确保正确配置数据库连接和表单验证以提高安全性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值