1 package com.am.utils; 2
3 import java.sql.Connection; 4 import java.sql.DriverManager; 5 import java.sql.PreparedStatement; 6 //import java.sql.ResultSet;
7 import java.sql.SQLException; 8 import java.sql.Statement; 9
10
11 /**
12 * JDBC类:链接数据库 13 * 一、加载驱动 14 * 二、建立链接 15 * 三、建立普通SQL通道和预编译通道 16 * 四、 17 * @author Honcker 18 * 19 */
20
21 public class DataBase { 22 /**路径**/
23 String url="jdbc:mysql://localhost:3306/test?serverTimezone=UTC"; 24 /**帐号**/
25 String username="root"; 26 /**密码**/
27 String password="123456"; 28
29 /**静态初始化块:直接加载一次驱动,与类同生共死**/
30 static { 31 try { 32 /**加载驱动**/
33 Class.forName("com.mysql.cj.jdbc.Driver"); 34 } catch (ClassNotFoundException e) { 35 System.out.println("DateBase提示: 加载驱动失败。。。"); 36 } 37 } 38
39 /**
40 * 定义属性: 41 * 【链接】、 42 * 【预编译SQL通道】、 43 * 【普通SQL通道】 44 */
45 Connection conn=null; 46 PreparedStatement ps=null; 47 Statement stat = null; 48
49 /**建立链接**/
50 public Connection getConn() { 51
52 try { 53 conn=DriverManager.getConnection(url, username, password); 54 } catch (SQLException e) { 55 System.out.println(this.getClass().getSimpleName()+"提示:数据库链接失败!!!"); 56 } 57 return conn; 58 } 59
60 /**建立普通SQL通道**/
61 public Statement getStat() { 62 try { 63 stat=getConn().createStatement(); 64 } catch (SQLException e) { 65 System.out.println(this.getClass().getSimpleName()+"提示:建立普通SQL通道失败!!!"); 66 } 67 return stat; 68
69 } 70
71 /**建立预编译SQL通道**/
72 public PreparedStatement getPs(String sql) { 73
74 try { 75 ps=getConn().prepareStatement(sql); 76 } catch (SQLException e) { 77 System.out.println(this.getClass().getSimpleName()+"提示:建立预编译SQL通道失败!!!"); 78 } 79
80 return ps; 81 } 82
83 /**关闭资源**/
84 public void close() { 85 try { 86 /**关闭结果集**/
87 /**
88 * if(rs!=null) { 89 * rs.close(); 90 * } 91 */
92 /**关闭普通SQL通道**/
93 if(null!=ps) { 94 ps.close(); 95 } 96 /**关闭预编译SQL通道**/
97 if(null!=stat) { 98 stat.close(); 99 } 100 /**关闭数据库链接**/
101 if(null!=conn) { 102 conn.close(); 103 } 104 } catch (SQLException e) { 105 System.out.println(this.getClass().getSimpleName()+"提示:关闭【普通SQL通道】,【预编译SQL通道】,【数据库链接】失败!!!"); 106 } 107 } 108 }
1 package com.am.bean; 2
3 import java.io.Serializable; 4
5 public class User implements Serializable{ 6 private static final long serialVersionUID = -4752686484682049959L; 7 private Integer id; //序号
8 private String name; //姓名
9 private String username; //用户名
10 private String password; //密码
11 private String birthday; //生日
12 private Integer age; //年龄
13 private String gender; //性别
14 public User() { 15 super(); 16 // TODO Auto-generated constructor stub
17 } 18
19 /**显示全部信息专用*/
20 public User(Integer id, String name, String username, String password, String birthday, Integer age, 21 String gender) { 22 super(); 23 this.id = id; 24 this.name = name; 25 this.username = username; 26 this.password = password; 27 this.birthday = birthday; 28 this.age = age; 29 this.gender = gender; 30 } 31
32 /**注册专用*/
33 public User(String name, String username, String password, String birthday, Integer age, String gender) { 34 super(); 35 this.name = name; 36 this.username = username; 37 this.password = password; 38 this.birthday = birthday; 39 this.age = age; 40 this.gender = gender; 41 } 42
43 public Integer getId() { 44 return id; 45 } 46 public void setId(Integer id) { 47 this.id = id; 48 } 49 public String getName() { 50 return name; 51 } 52 public void setName(String name) { 53 this.name = name; 54 } 55 public String getUsername() { 56 return username; 57 } 58 public void setUsername(String username) { 59 this.username = username; 60 } 61 public String getPassword() { 62 return password; 63 } 64 public void setPassword(String password) { 65 this.password = password; 66 } 67 public String getBirthday() { 68 return birthday; 69 } 70 public void setBirthday(String birthday) { 71 this.birthday = birthday; 72 } 73 public Integer getAge() { 74 return age; 75 } 76 public void setAge(Integer age) { 77 this.age = age; 78 } 79 public String getGender() { 80 return gender; 81 } 82 public void setGender(String gender) { 83 this.gender = gender; 84 } 85 public static long getSerialversionuid() { 86 return serialVersionUID; 87 } 88 @Override 89 public String toString() { 90 return "User [id=" + id + ", name=" + name + ", username=" + username + ", password=" + password + ", birthday="
91 + birthday + ", age=" + age + ", gender=" + gender + "]"; 92 } 93 }
1 package com.am.dao; 2
3 import java.util.List; 4
5 import com.am.bean.User; 6
7 /**
8 * 9 * @author Honcker 10 * 11 */
12 public interface UserDao { 13 /**注册(添加)用户**/
14 public int addUser(User user); 15 /**删除用户 16 * @return **/
17 public int deleteUser(int id); 18 /**用户登陆验证**/
19 public User loginUser(String username,String password); 20 /**修改用户专用**/
21 public User showUser(int id); 22 /**修改用户**/
23 public int updateUser(User user); 24 /**显示全部用户**/
25 public List<User> showAllUser(); 26
27 }
1 package com.am.service; 2
3 import java.sql.PreparedStatement; 4 import java.sql.ResultSet; 5 import java.sql.SQLException; 6 import java.sql.Statement; 7 import java.util.ArrayList; 8 import java.util.List; 9
10 import com.am.bean.User; 11 import com.am.dao.UserDao; 12 import com.am.utils.DataBase; 13 /**
14 * 实现类 15 * @author Honcker 16 * 17 */
18 public class UserService implements UserDao{ 19 /**建立JDBC类对象*/
20 DataBase database=new DataBase(); 21
22 /**添加(注册)用户*/
23 @Override 24 public int addUser(User user){ 25 /**建立添加用户的SQL语句*/
26 String sql="insert into account (name,username,password,birthday,age,gender) values (?,?,?,?,?,?)"; 27 /**得到预编译SQL通道对象*/
28 PreparedStatement ps = database.getPs(sql); 29 /**声明受影响的行数,并赋予初始值*/
30 int rows=0; 31 try { 32 /**用户名、帐号、密码、生日、年龄、性别**/
33 /*为占位符赋值*/
34 ps.setString(1, user.getName()); 35 ps.setString(2, user.getUsername()); 36 ps.setString(3, user.getPassword()); 37 ps.setString(4, user.getBirthday()); 38 ps.setInt(5, user.getAge()); 39 ps.setString(6, user.getGender()); 40 rows = ps.executeUpdate(); 41 } catch (SQLException e) { 42 System.out.println(this.getClass().getSimpleName()+": 注册失败。。。"); 43 } 44 return rows; 45 } 46
47
48 /**删除用户*/
49 @Override 50 public int deleteUser(int id) { 51 /**建立删除用户的SQL语句**/
52 String sql="delete from account where id='"+id+"'"; 53 /**获取(预编译)SQL通道对象**/
54 Statement stat = database.getStat(); 55 /**声明受影响的行数*/
56 int rows=0; 57 try { 58 //ps.setInt(1, id);
59 rows = stat.executeUpdate(sql); 60 } catch (SQLException e) { 61 System.out.println(this.getClass().getSimpleName()+": 删除失败。。。"); 62 } 63 return rows; 64 } 65
66 /**登陆校验*/
67 @Override 68 public User loginUser(String username,String password) { 69 /**建立SQL语句**/
70 String sql="select * from account where username='"+username+"' and password ='"+password+"'"; 71 /**获取(预编译)SQL通道对象**/
72 Statement stat = database.getStat(); 73 // PreparedStatement ps = database.getPs(sql);
74 /**建立User类接收查询的结果**/
75 User user = null; 76 try { 77 // ps.setString(1, username); 78 // ps.setString(2, password);
79 /**获取查询结果**/
80 ResultSet rs = stat.executeQuery(sql); 81 user = new User(); 82 /**遍历查询结果,并赋值给user类**/
83 while(rs.next()) { 84 user.setId(rs.getInt("id")); 85 user.setName(rs.getString("name")); 86 user.setUsername(rs.getString("username")); 87 user.setPassword(rs.getString("password")); 88 user.setBirthday(rs.getString("birthday")); 89 user.setAge(rs.getInt("age")); 90 user.setGender(rs.getString("gender")); 91 } 92 } catch (SQLException e) { 93 System.out.println(this.getClass().getSimpleName()+": 登陆失败。。。"); 94 } 95 return user; 96 } 97
98 /****/
99 @Override 100 public User showUser(int id) { 101 String sql="select * from account where id=?"; 102 PreparedStatement ps = database.getPs(sql); 103 ResultSet rs; 104 User user=null; 105 try { 106 ps.setInt(1, id); 107 rs= ps.executeQuery(); 108 while(rs.next()) { 109 user=new User(rs.getInt("id"), rs.getString("name"), rs.getString("username"), rs.getString("password"), rs.getString("birthday"), rs.getInt("age"), rs.getString("gender")); 110 } 111 } catch (SQLException e) { 112 System.out.println("SQLException: 修改失败"); 113 } 114 return user; 115 } 116
117 /**修改用户**/
118 @Override 119 public int updateUser(User user) { 120 /**建立SQL语句**/
121 String sql="update account set name=?,username=?,password=?,birthday=?,age=?,gender=? where id=?"; 122 /**声明受影响的行数**/
123 int rows=0; 124 /**建立预编译SQL通道**/
125 PreparedStatement ps = database.getPs(sql); 126 try { 127 /**为占位符赋值**/
128 ps.setString(1, user.getName()); 129 ps.setString(2, user.getUsername()); 130 ps.setString(3, user.getPassword()); 131 ps.setString(4, user.getBirthday()); 132 ps.setInt(5, user.getAge()); 133 ps.setString(6, user.getGender()); 134 ps.setInt(7, user.getId()); 135 rows=ps.executeUpdate(); 136 } catch (SQLException e) { 137 System.out.println("SQLException: 更新失败。。。"); 138 } 139 /**返回受影响的行数**/
140 return rows; 141 } 142
143 /**查询全部的用户**/
144 @Override 145 public List<User> showAllUser() { 146 /**建立SQL语句**/
147 String sql="select * from account"; 148 /**获取预编译SQL通道对象**/
149 PreparedStatement ps = database.getPs(sql); 150 /**声明结果集变量**/
151 ResultSet rs; 152 /**建立List<User>集合存储全部的用户信息list{【user】【user】}**/
153 List<User> list = new ArrayList<User>(); 154 /**声明User类变量**/
155 User user; 156 try { 157 rs = ps.executeQuery(); 158 while(rs.next()) { 159 Integer id = rs.getInt("id"); 160 String name = rs.getString("name"); 161 String username = rs.getString("username"); 162 String password = rs.getString("password"); 163 String birthday = rs.getString("birthday"); 164 Integer age = rs.getInt("age"); 165 String gender = rs.getString("gender"); 166 /**将每一条记录存入User对象*/
167 user=new User(id, name, username, password, birthday, age, gender); 168 /**将每个User存入List集合**/
169 list.add(user); 170 } 171 } catch (SQLException e) { 172 System.out.println("SQLException: 显示数据失败。。。"); 173 } 174 /**返回存储全部用户的List集合**/
175 return list; 176 } 177
178
179 }
一、跳转到注册页面的Servlet:ForwardToRegistServlet.javajavascript
1 package com.am.servlet; 2
3 import java.io.IOException; 4
5 import javax.servlet.ServletException; 6 import javax.servlet.annotation.WebServlet; 7 import javax.servlet.http.HttpServlet; 8 import javax.servlet.http.HttpServletRequest; 9 import javax.servlet.http.HttpServletResponse; 10
11 /**
12 * Jump to regist.jsp 13 * 跳转至注册页面 14 * @author Honcker 15 * 16 */
17 @WebServlet("/regist") 18 public class ForwardToRegistServlet extends HttpServlet{ 19 private static final long serialVersionUID = 5913743008020729050L; 20
21 @Override 22 protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { 23 req.getRequestDispatcher("WEB-INF/jsp/regist.jsp").forward(req, resp); 24
25 } 26
27 @Override 28 protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { 29
30 } 31
32 }
二、注册页面:regist.jspcss
1 <%@ page language="java" contentType="text/html; charset=UTF-8"
2 pageEncoding="UTF-8"%>
3 <!DOCTYPE html>
4 <html>
5 <head>
6 <meta charset="UTF-8">
7 <title>注册</title>
8 <link rel="stylesheet" href="././css/account.css" type="text/css">
9
10
11 </head>
12 <body>
13 <div class="lr_allbg">
14 <div class="lr_bar">
15 <h2>注册帐号</h2>
16 <hr size="3" color="brown">
17 </div>
18 <div class="formbox">
19 <form action="registreg" method="get">
20 <div class="label">用户名:</div>
21 <div class="input_box">
22 <input type="text" name="name" class="input" placeholder="请输入用户名">
23 <span></span>
24 </div>
25 <div class="label">帐号:</div>
26 <div class="input_box">
27 <input type="text" name="username" class="input" placeholder="请输入帐号">
28 <span></span>
29 </div>
30 <div class="label">密码:</div>
31 <div class="input_box">
32 <input type="password" name="password" class="input" placeholder="请输入密码">
33 <span></span>
34 </div>
35 <div class="label">生日:</div>
36 <div class="input_box">
37 <input type="date" name="birthday" class="input">
38 <span></span>
39 </div>
40 <div class="label">年龄:</div>
41 <div class="input_box">
42 <input type="number" name="age" class="input" placeholder="请输入年龄">
43 <span></span>
44 </div>
45 <div class="label">性别:</div>
46 <div class="input_box">
47 <input type="radio" name="gender" value="男" checked>男 48 <input type="radio" name="gender" value="女">女 49 </div>
50 <div class="input_box submit_box">
51 <button type="submit">注册</button>
52 </div>
53 </form>
54 </div>
55 <div class="rt_img">
56 <a href="http://localhost/${pageContext.request.contextPath}/ftlogin"><img alt="鼠宝宝" src="././images/mouse.jpg" width="300px" title="已有帐号,去登陆"/></a>
57 </div>
58 </div>
59 </body>
60 </html>
三、处理注册信息的Servlet:RegistServlet.javahtml
1 package com.am.servlet; 2
3 import java.io.IOException; 4
5 import javax.servlet.ServletException; 6 import javax.servlet.annotation.WebServlet; 7 import javax.servlet.http.HttpServlet; 8 import javax.servlet.http.HttpServletRequest; 9 import javax.servlet.http.HttpServletResponse; 10 import javax.servlet.http.HttpSession; 11
12 import com.am.bean.User; 13 import com.am.service.UserService; 14
15 /**
16 * 处理注册的信息 17 * 将帐号和密码存入数据库 18 * Servlet implementation class RegistServlet 19 */
20 @WebServlet("/registreg") 21 public class RegistServlet extends HttpServlet { 22 private static final long serialVersionUID = -7336946611411448207L; 23 UserService us = new UserService(); 24 @Override 25 protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { 26 /**经过request获取姓名、帐号、密码、生日、年龄、性别**/
27 String name=req.getParameter("name"); 28 String username=req.getParameter("username"); 29 String password=req.getParameter("password"); 30 String birthday=req.getParameter("birthday"); 31 Integer age=Integer.parseInt(req.getParameter("age")); 32 String gender=req.getParameter("gender"); 33
34 /**将注册的帐号密码存入Session中,以便于登陆**/
35 HttpSession session = req.getSession(); 36 session.setAttribute("username",username); 37 session.setAttribute("password", password); 38
39 /**用user类储存注册的信息**/
40 User user=new User(name, username, password, birthday, age, gender); 41 /**经过service层将user添加到数据库**/
42 int rows = us.addUser(user); 43 if(rows>0) { 44 System.out.println(this.getClass().getSimpleName()+"提示: 注册了"+rows+"个帐号"); 45 /**跳转至登陆页面**/
46 req.getRequestDispatcher("ftlogin").forward(req, resp); 47
48 }else { 49 System.out.println(this.getClass().getSimpleName()+"提示: 注册失败"); 50 } 51 } 52 @Override 53 protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { 54
55 } 56 }
四、跳转到登陆页面的Servlet:ForwardToLoginServlet.javajava
1 package com.am.servlet; 2
3 import java.io.IOException; 4
5 import javax.servlet.ServletException; 6 import javax.servlet.annotation.WebServlet; 7 import javax.servlet.http.HttpServlet; 8 import javax.servlet.http.HttpServletRequest; 9 import javax.servlet.http.HttpServletResponse; 10
11 /**
12 * 跳转到登陆 13 * @author Honcker 14 */
15 @WebServlet("/ftlogin") 16 public class ForwardToLoginServlet extends HttpServlet{ 17 private static final long serialVersionUID = 4465872810151666786L; 18
19 @Override 20 protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { 21 req.getRequestDispatcher("WEB-INF/jsp/login.jsp").forward(req, resp); 22 } 23
24 @Override 25 protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { 26
27 } 28
29 }
五、登陆页面:login.jspmysql
1 <%@ page language="java" contentType="text/html; charset=UTF-8"
2 pageEncoding="UTF-8"%>
3 <!DOCTYPE html>
4 <html>
5 <head>
6 <meta charset="UTF-8">
7 <title>登陆</title>
8 <link rel="stylesheet" href="././css/account.css" type="text/css">
9 </head>
10 <body>
11 <div class="lr_allbg">
12 <div class="lr_bar">
13 <h2>帐号登陆</h2>
14 <hr size="3" color="brown">
15 </div>
16 <div class="formbox">
17 <form action="loginreg" method="get">
18 <div class="label">
19 帐号: 20 </div>
21 <div class="input_box">
22 <input type="text" name="username" class="input" value="${sessionScope.username}" placeholder="请输入帐号">
23 <span></span>
24 </div>
25 <div class="label">
26 密码: 27 </div>
28 <div class="input_box">
29 <input type="password" name="password" class="input" value="${sessionScope.password }" placeholder="请输入密码">
30 <span></span>
31 </div>
32 <div class="input_box submit_box">
33 <button type="submit">登陆</button>
34 </div>
35 </form>
36 </div>
37 <div class="lt_img">
38 <a href="http://localhost/${pageContext.request.contextPath}/regist"><img alt="小老鼠" src="././images/mouse2.jpg" title="没有帐号?点我" width="200px"></a>
39 </div>
40 </div>
41 </body>
42 </html>
六、处理登陆信息的Servlet:LoginServlet.javajquery
1 package com.am.servlet; 2
3 import java.io.IOException; 4 import java.io.PrintWriter; 5
6 import javax.servlet.ServletException; 7 import javax.servlet.annotation.WebServlet; 8 import javax.servlet.http.HttpServlet; 9 import javax.servlet.http.HttpServletRequest; 10 import javax.servlet.http.HttpServletResponse; 11 import javax.servlet.http.HttpSession; 12
13 import com.am.bean.User; 14 import com.am.dao.UserDao; 15 import com.am.service.UserService; 16
17 /**
18 * LoginServlet: 19 * 登陆验证 20 * @author Honcker 21 * 22 */
23 @WebServlet("/loginreg") 24 public class LoginServlet extends HttpServlet{ 25 private static final long serialVersionUID = -6376546296575630791L; 26 UserDao ud = new UserService(); 27
28 @Override 29 protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { 30 String username = req.getParameter("username"); 31 String password = req.getParameter("password"); 32 System.out.println("帐号:"+username+"密码:"+password); 33
34 /**获取到当前登陆的帐号**/
35 User user = ud.loginUser(username, password); 36 /**将登陆的帐户的信息存入Session**/
37 /**
38 * HttpSession session = req.getSession(); 39 * session.setAttribute("user",user); 40 */
41 /**校验帐号密码**/
42 if(user!=null) { 43 if(user.getUsername().equals(username)&&user.getPassword().equals(password)) { 44 System.out.println(this.getClass().getSimpleName()+"提示:\n"+user.getName()+"登陆成功!!!"); 45 req.getRequestDispatcher("ftindex").forward(req, resp); 46 } 47 }else { 48 PrintWriter pw = resp.getWriter(); 49 pw.print("帐户不存在"); 50 pw.flush(); 51 pw.close(); 52 } 53 } 54
55 @Override 56 protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { 57
58 } 59 }
七、跳转到首页的Servlet:ForwardToIndexServlet.javasql
1 package com.am.servlet; 2
3 import java.io.IOException; 4 import java.util.List; 5
6 import javax.servlet.ServletException; 7 import javax.servlet.annotation.WebServlet; 8 import javax.servlet.http.HttpServlet; 9 import javax.servlet.http.HttpServletRequest; 10 import javax.servlet.http.HttpServletResponse; 11 import javax.servlet.http.HttpSession; 12
13 import com.am.bean.User; 14 import com.am.dao.UserDao; 15 import com.am.service.UserService; 16
17 @WebServlet("/ftindex") 18 public class ForwardToIndexServlet extends HttpServlet{ 19 private static final long serialVersionUID = 4588762042246354545L; 20 UserDao ud = new UserService(); 21
22 @Override 23 protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { 24 /**获取全部的用户信息**/
25 List<User> list = ud.showAllUser(); 26
27 /**将存储全部用户信息的List<User>存储在Session中**/
28 HttpSession session = req.getSession(); 29 session.setAttribute("list", list); 30 /**
31 * User user = (User) session.getAttribute("user"); 32 * session.setAttribute("user",user); 33 */
34 // resp.sendRedirect("");
35 req.getRequestDispatcher("WEB-INF/jsp/index.jsp").forward(req, resp); 36 } 37
38 @Override 39 protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { 40
41 } 42 }
八、首页:index.jsp数据库
1 <%@ page language="java" contentType="text/html; charset=UTF-8"
2 pageEncoding="UTF-8"%>
3 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
4
5 <!DOCTYPE html>
6 <html>
7 <head>
8 <meta charset="UTF-8">
9 <title>帐户管理首页</title>
10 <!-- 引入CSS样式表 -->
11 <link rel="stylesheet" href="././css/index.css" type="text/css">
12 <!-- 引入Jquery包 -->
13 <script type="text/javascript" src="././js/jquery-3.4.1.min.js"></script>
14 <script type="text/javascript" src="././js/index.js"></script>
15 </head>
16 <body>
17 <div id="index_allbg">
18 <!-- 当前用户 -->
19 <div class="login_user">
20 <span>当前用户: <%-- ${sessionScope.user.name} --%></span>
21 </div>
22 <!-- 退出系统 -->
23 <div class="exit_box">
24 <a href="http://localhost/${pageContext.request.contextPath}/ftlogin"><button class="exit_btn">退出系统</button></a>
25 </div>
26 <div class="index_bar">
27 <h2>帐户管理</h2>
28 <hr size="3" color="brown">
29 </div>
30 <!-- 全部用户的表格 -->
31 <div class="amtb_box">
32 <table border="1">
33 <tr>
34 <td>序号</td>
35 <td>姓名</td>
36 <td>用户名</td>
37 <td>生日</td>
38 <td>年龄</td>
39 <td>性别</td>
40 <td>操做</td>
41 </tr>
42 <c:forEach items="${sessionScope.list}" var="user" varStatus="type">
43 <tr>
44 <td>${type.index+1}</td>
45 <td>${user.name}</td>
46 <td>${user.username}</td>
47 <td>${user.birthday}</td>
48 <td>${user.age}</td>
49 <td>${user.gender}</td>
50 <td colspan="2">
51 <a href="ftupdate?id=${user.id}"><button name="upt" class="btn">修改</button></a>
52 <button name="del" value="${user.id}" class="btn">删除</button>
53 </td>
54 </tr>
55 </c:forEach>
56 </table>
57 </div>
58 </div>
59 </body>
60 </html>
九、删除的Servlet:DeleteServlet.javasession
1 package com.am.servlet; 2
3 import java.io.IOException; 4 import java.util.List; 5
6 import javax.servlet.ServletException; 7 import javax.servlet.annotation.WebServlet; 8 import javax.servlet.http.HttpServlet; 9 import javax.servlet.http.HttpServletRequest; 10 import javax.servlet.http.HttpServletResponse; 11 import javax.servlet.http.HttpSession; 12
13 import com.am.bean.User; 14 import com.am.dao.UserDao; 15 import com.am.service.UserService; 16
17 /**
18 * 删除用户Servlet 19 * @author Honcker 20 * 21 */
22 @WebServlet("/delete") 23 public class DeleteServlet extends HttpServlet{ 24 private static final long serialVersionUID = -2553575351064163507L; 25 UserDao ud = new UserService(); 26
27 @Override 28 protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { 29 Integer id = Integer.parseInt(req.getParameter("id")); 30 int rows = ud.deleteUser(id); 31 HttpSession session = req.getSession(); 32 User user= (User)session.getAttribute("user"); 33 session.setAttribute("user", user); 34 if(rows>0) { 35 System.out.println(this.getClass().getSimpleName()+"提示: 删除"+rows+"个用户成功。。。"); 36 req.getRequestDispatcher("ftindex").forward(req, resp); 37 }else { 38 System.out.println("受影响行数:"+rows+"行,删除失败。。。"); 39 } 40 } 41 }
十、跳转到更新页面的Servlet:ForwardToUpdateServlet.javajsp
1 package com.am.servlet; 2
3 import java.io.IOException; 4
5 import javax.servlet.ServletException; 6 import javax.servlet.annotation.WebServlet; 7 import javax.servlet.http.HttpServlet; 8 import javax.servlet.http.HttpServletRequest; 9 import javax.servlet.http.HttpServletResponse; 10 import javax.servlet.http.HttpSession; 11
12 import com.am.bean.User; 13 import com.am.dao.UserDao; 14 import com.am.service.UserService; 15
16 @WebServlet("/ftupdate") 17 public class ForwardToUpdateServlet extends HttpServlet{ 18 private static final long serialVersionUID = -1511111251877011866L; 19 UserDao ud = new UserService(); 20 @Override 21 protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { 22 Integer id = Integer.parseInt(req.getParameter("id")); 23 User user = ud.showUser(id); 24
25 HttpSession session = req.getSession(); 26 session.setAttribute("user", user); 27 req.getRequestDispatcher("/WEB-INF/jsp/update.jsp").forward(req, resp); 28
29
30 } 31 }
十一、更新页面:update.jsp
1 <%@ page language="java" contentType="text/html; charset=UTF-8"
2 pageEncoding="UTF-8"%>
3 <!DOCTYPE html>
4 <html>
5 <head>
6 <meta charset="UTF-8">
7 <title>修改</title>
8 <link rel="stylesheet" href="././css/account.css" type="text/css">
9 </head>
10 <body>
11 <div class="lr_allbg">
12 <div class="lr_bar">
13 <h2>修改帐户</h2>
14 <hr size="3" color="brown">
15 </div>
16 <div class="formbox">
17 <form action="update" method="get">
18 <div class="label">用户名:</div>
19 <div class="input_box">
20 <input type="text" name="name" class="input" value="${sessionScope.user.name }" placeholder="请输入新的用户名">
21 <span></span>
22 </div>
23 <div class="label">帐号:</div>
24 <div class="input_box">
25 <input type="text" name="username" value="${sessionScope.user.username}" class="input">
26 <span></span>
27 </div>
28 <div class="label">密码:</div>
29 <div class="input_box">
30 <input type="text" name="password" class="input" value="${sessionScope.user.password }" placeholder="请输入新密码">
31 <span></span>
32 </div>
33 <div class="label">生日:</div>
34 <div class="input_box">
35 <input type="date" name="birthday" class="input" value="${sessionScope.user.birthday}">
36 <span></span>
37 </div>
38 <div class="label">年龄:</div>
39 <div class="input_box">
40 <input type="number" name="age" class="input" value="${sessionScope.user.age }" placeholder="请输入年龄">
41 <span></span>
42 </div>
43 <div class="label">性别:</div>
44 <div class="input_box">
45 <input type="radio" name="gender" value="男" checked>男 46 <input type="radio" name="gender" value="女">女 47 </div>
48 <div class="input_box submit_box">
49 <button type="submit" value="${sessionScope.user.id }" name="id">保存</button>
50 </div>
51 </form>
52 </div>
53 <div class="rt_img">
54 <a href="http://localhost/${pageContext.request.contextPath}/ftlogin"><img alt="鼠宝宝" src="././images/mouse.jpg" width="300px" title="已有帐号,去登陆"/></a>
55 </div>
56 </div>
57 </body>
58 </html>
十二、处理更新的Servlet:UpdateServlet.java
1 package com.am.servlet; 2
3 import java.io.IOException; 4
5 import javax.servlet.ServletException; 6 import javax.servlet.annotation.WebServlet; 7 import javax.servlet.http.HttpServlet; 8 import javax.servlet.http.HttpServletRequest; 9 import javax.servlet.http.HttpServletResponse; 10
11 import com.am.bean.User; 12 import com.am.dao.UserDao; 13 import com.am.service.UserService; 14
15 /** 16 * 17 * 修改用户信息 18 * @author Honcker 19 * 20 */ 21 @WebServlet("/update") 22 public class UpdateServlet extends HttpServlet{ 23 private static final long serialVersionUID = 2663414008874647347L; 24 UserDao ud = new UserService(); 25
26 @Override 27 protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { 28 Integer id = Integer.parseInt(req.getParameter("id")); 29 String name = req.getParameter("name"); 30 String username = req.getParameter("username"); 31 String password = req.getParameter("password"); 32 String birthday = req.getParameter("birthday"); 33 Integer age = Integer.parseInt(req.getParameter("age")); 34 String gender = req.getParameter("gender"); 35 User user = new User(id,name, username, password, birthday, age, gender); 36
37 int rows = ud.updateUser(user); 38 if(rows>0) { 39 System.out.println("修改为功。。。"); 40 req.getRequestDispatcher("ftindex").forward(req, resp); 41
42 }else { 43 System.out.println(this.getClass().getSimpleName()+"提示: 修改失败。。。"); 44 } 45
46
47 } 48
49
50
51 }