前端与后端交互——jsp页面与Servrlt

思路

 

 

1.Jsp页面

  1 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
  2 
  3 <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
  4 
  5 <!DOCTYPE html>
  6 <!-- 网页使用的语言 -->
  7 <html lang="zh-CN">
  8 <head>
  9     <!-- 指定字符集 -->
 10     <meta charset="utf-8">
 11     <!-- 使用Edge最新的浏览器的渲染方式 -->
 12     <meta http-equiv="X-UA-Compatible" content="IE=edge">
 13     <!-- viewport视口:网页可以根据设置的宽度自动进行适配,在浏览器的内部虚拟一个容器,容器的宽度与设备的宽度相同。
 14     width: 默认宽度与设备的宽度相同
 15     initial-scale: 初始的缩放比,为1:1 -->
 16     <meta name="viewport" content="width=device-width, initial-scale=1">
 17     <!-- 上述3个meta标签*必须*放在最前面,任何其他内容都*必须*跟随其后! -->
 18     <title>用户信息管理系统</title>
 19 
 20     <!-- 1. 导入CSS的全局样式 -->
 21     <link href="css/bootstrap.min.css" rel="stylesheet">
 22     <!-- 2. jQuery导入,建议使用1.9以上的版本 -->
 23     <script src="js/jquery-2.1.0.min.js"></script>
 24     <!-- 3. 导入bootstrap的js文件 -->
 25     <script src="js/bootstrap.min.js"></script>
 26     <style type="text/css">
 27         td, th {
 28             text-align: center;
 29         }
 30     </style>
 31 
 32     <script>
 33         function deleteUser(id){
 34             //用户安全提示
 35             if(confirm("您确定要删除吗?")){
 36                 //访问路径
 37                 location.href="${pageContext.request.contextPath}/delUserServlet?id="+id;
 38             }
 39         }
 40 
 41         window.onload = function(){
 42             //给删除选中按钮添加单击事件
 43             document.getElementById("delSelected").onclick = function(){
 44                 if(confirm("您确定要删除选中条目吗?")){
 45                    var flag = false;
 46                     //判断是否有选中条目
 47                     var cbs = document.getElementsByName("uid");
 48                     for (var i = 0; i < cbs.length; i++) {
 49                         if(cbs[i].checked){
 50                             //有一个条目选中了
 51                             flag = true;
 52                             break;
 53                         }
 54                     }
 55 
 56                     if(flag){//有条目被选中
 57                         //表单提交
 58                         document.getElementById("form").submit();
 59                     }
 60                 }
 61             }
 62             //1.获取第一个cb
 63             document.getElementById("firstCb").onclick = function(){
 64                 //2.获取下边列表中所有的cb
 65                 var cbs = document.getElementsByName("uid");
 66                 //3.遍历
 67                 for (var i = 0; i < cbs.length; i++) {
 68                     //4.设置这些cbs[i]的checked状态 = firstCb.checked
 69                     cbs[i].checked = this.checked;
 70                 }
 71             }
 72         }
 73     </script>
 74 </head>
 75 <body>
 76 <div class="container">
 77     <h3 style="text-align: center">用户信息列表</h3>
 78 
 79     <div style="float: left;">
 80 
 81         <form class="form-inline" action="${pageContext.request.contextPath}/findUserByPageServlet" method="post">
 82             <div class="form-group">
 83                 <label for="exampleInputName2">姓名</label>
 84                 <input type="text" name="name" value="${condition.name[0]}" class="form-control" id="exampleInputName2" >
 85             </div>
 86             <div class="form-group">
 87                 <label for="exampleInputName3">籍贯</label>
 88                 <input type="text" name="address" value="${condition.address[0]}" class="form-control" id="exampleInputName3" >
 89             </div>
 90 
 91             <div class="form-group">
 92                 <label for="exampleInputEmail2">邮箱</label>
 93                 <input type="text" name="email" value="${condition.email[0]}" class="form-control" id="exampleInputEmail2"  >
 94             </div>
 95             <button type="submit" class="btn btn-default">查询</button>
 96         </form>
 97 
 98     </div>
 99 
100     <div style="float: right;margin: 5px;">
101 
102         <a class="btn btn-primary" href="${pageContext.request.contextPath}/add.jsp">添加联系人</a>
103         <a class="btn btn-primary" href="javascript:void(0);" id="delSelected">删除选中</a>
104 
105     </div>
106     <form id="form" action="${pageContext.request.contextPath}/delSelectedServlet" method="post">
107         <table border="1" class="table table-bordered table-hover">
108         <tr class="success">
109             <th><input type="checkbox" id="firstCb"></th>
110             <th>编号</th>
111             <th>姓名</th>
112             <th>性别</th>
113             <th>年龄</th>
114             <th>籍贯</th>
115             <th>QQ</th>
116             <th>邮箱</th>
117             <th>操作</th>
118         </tr>
119 
120         <c:forEach items="${pb.list}" var="user" varStatus="s">
121             <tr>
122                 <td><input type="checkbox" name="uid" value="${user.id}"></td>
123                 <td>${s.count}</td>
124                 <td>${user.name}</td>
125                 <td>${user.gender}</td>
126                 <td>${user.age}</td>
127                 <td>${user.address}</td>
128                 <td>${user.qq}</td>
129                 <td>${user.email}</td>
130                 <td><a class="btn btn-default btn-sm" href="${pageContext.request.contextPath}/findUserServlet?id=${user.id}">修改</a>&nbsp;
131                     <a class="btn btn-default btn-sm" href="javascript:deleteUser(${user.id});">删除</a></td>
132             </tr>
133         </c:forEach>
134 
135 
136     </table>
137     </form>
138     <div>
139         <nav aria-label="Page navigation">
140             <ul class="pagination">
141                 <c:if test="${pb.currentPage == 1}">
142                     <li class="disabled">
143                 </c:if>
144 
145                 <c:if test="${pb.currentPage != 1}">
146                     <li>
147                 </c:if>
148                     <a href="${pageContext.request.contextPath}/findUserByPageServlet?currentPage=${pb.currentPage - 1}&rows=5&name=${condition.name[0]}&address=${condition.address[0]}&email=${condition.email[0]}" aria-label="Previous">
149                         <span aria-hidden="true">&laquo;</span>
150                     </a>
151                 </li>
152 
153                 <c:forEach begin="1" end="${pb.totalPage}" var="i" >
154                     <c:if test="${pb.currentPage == i}">
155                         <li class="active"><a href="${pageContext.request.contextPath}/findUserByPageServlet?currentPage=${i}&rows=5&name=${condition.name[0]}&address=${condition.address[0]}&email=${condition.email[0]}">${i}</a></li>
156                     </c:if>
157                     <c:if test="${pb.currentPage != i}">
158                         <li><a href="${pageContext.request.contextPath}/findUserByPageServlet?currentPage=${i}&rows=5&name=${condition.name[0]}&address=${condition.address[0]}&email=${condition.email[0]}">${i}</a></li>
159                     </c:if>
160                 </c:forEach>
161 
162                 <li>
163                     <a href="${pageContext.request.contextPath}/findUserByPageServlet?currentPage=${pb.currentPage + 1}&rows=5&name=${condition.name[0]}&address=${condition.address[0]}&email=${condition.email[0]}" aria-label="Next">
164                         <span aria-hidden="true">&raquo;</span>
165                     </a>
166                 </li>
167                 <span style="font-size: 25px;margin-left: 5px;">
168                     共${pb.totalCount}条记录,共${pb.totalPage}页
169                 </span>
170             </ul>
171         </nav>
172     </div>
173 </div>
174 </body>
175 </html>
View Code

2.Servlet

 1 package cn.itcast.web.servlet;
 2 
 3 import cn.itcast.domain.PageBean;
 4 import cn.itcast.domain.User;
 5 import cn.itcast.service.UserService;
 6 import cn.itcast.service.impl.UserServiceImpl;
 7 
 8 import javax.servlet.ServletException;
 9 import javax.servlet.annotation.WebServlet;
10 import javax.servlet.http.HttpServlet;
11 import javax.servlet.http.HttpServletRequest;
12 import javax.servlet.http.HttpServletResponse;
13 import java.io.IOException;
14 import java.util.Map;
15 
16 @WebServlet("findUserByPageServlet")
17 public class FindUserByPageServlet extends HttpServlet {
18     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
19         request.setCharacterEncoding("utf-8");
20 
21         //1.获取参数
22         String currentPage = request.getParameter("currentPage");//当前页码
23         String rows = request.getParameter("rows");//每页显示条数
24 
25         if(currentPage == null || "".equals(currentPage)){
26             currentPage = "1";
27         }
28         if(rows == null || "".equals(rows)){
29             rows = "5";
30         }
31         
32         //获取条件查询参数
33         Map<String, String[]> condition = request.getParameterMap();
34 
35         //2.调用service查询
36         UserService service = new UserServiceImpl();
37         PageBean<User> pb = service.findUserByPage(currentPage,rows,condition);
38 
39         System.out.println(pb);
40 
41         //3.将PageBean存入request
42         request.setAttribute("pb",pb);
43         request.setAttribute("condition",condition);//将查询条件存入request
44         //4.转发到list.jsp
45         request.getRequestDispatcher("/jsp/list.jsp").forward(request,response);
46     }
47 
48     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
49         this.doPost(request, response);
50     }
51 }
View Code

 

posted @ 2020-08-23 21:04  小辣椒樱桃  阅读(64)  评论(0)    收藏  举报