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的顺序

猜你喜欢

转载自blog.csdn.net/giantleech/article/details/114643383
今日推荐