本文已参与「新人创作礼」活动,一起开启掘金创作之路。
前端代码
login.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>登录</title>
</head>
<body>
<%
//Cookie[] cookies = request.(15);
/*通过request的getCookies方法能够获取到所有的cookie
*返回类型为Cookie类型的数组
*/
Cookie[] cookies = request.getCookies();
String usernameTmp = null;
String passwordTmp = null;
if(cookies != null){
for(Cookie cookie:cookies){
//if("username".equals(cookie.(16))){
if("username".equals(cookie.getName())){
usernameTmp = cookie.getValue();
}
if("password".equals(cookie.getName())){
//passwordTmp = cookie.(17);
passwordTmp = cookie.getValue();
}
}
}
//pageContext.setAttribute("(18)", usernameTmp);
//(19).setAttribute("password", passwordTmp);
pageContext.setAttribute("username", usernameTmp);
pageContext.setAttribute("password", passwordTmp);
%>
<form action="UserLoginController" method="post">
<div>
<label for="uname">Username: </label>
<input type="text" id="uname" name="username" value="${username }">
</div>
<div>
<label for="upwd">Password: </label>
<input type="password" id="upwd" name="password" value="${password }">
</div>
<div>
<!-- <input type="checkbox" name="saveCookie" value="(20)">记住我 -->
<input type="checkbox" name="saveCookie" value="yes">记住我
</div>
<input type="submit" value="登录">
</form>
</body>
</html>
register.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>注册</title>
</head>
<body>
<form action="UserRegisterController" method="post">
<div>
<label for="uname">Username: </label>
<input type="text" id="uname" name="uname">
</div>
<div>
<label for="upwd">Password: </label>
<input type="password" id="upwd" name="upwd">
</div>
<input type="submit" value="注册">
</form>
</body>
</html>
fail.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>操作失败</title>
</head>
<body>
<h1>操作失败</h1>
<a href="login.jsp">返回首页</a>
</body>
</html>
index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>首页</title>
</head>
<body>
<table cellpadding="5" cellspacing="0" border="1">
<caption>用户信息表</caption>
<thead>
<tr>
<th>ID</th>
<th>用户名</th>
<th>密码</th>
<th colspan="2">操作</th>
</tr>
</thead>
<tbody>
<%-- <(29) items="${sessionScope.(30) }" var="(31)"> --%>
<c:forEach items="${sessionScope.userList }" var="user">
<tr>
<td>${user.id }</td>
<td>${user.username }</td>
<td>${user.password }</td>
<%-- <td><a href="(32)?id=(33)">编辑</a></td>
<td><a href="(34)?id=${user.id }">删除</a></td> --%>
<td><a href="UserUpdatePageController?id=${user.id }">编辑</a></td>
<td><a href="UserDeleteController?id=${user.id }">删除</a></td>
</tr>
</c:forEach>
</tbody>
</table>
</body>
</html>
update.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>更新</title>
</head>
<body>
<form action="UserUpdateController" method="post">
<div>
<label for="id">ID: </label>
<input type="text" id="id" name="id" value="${user.id }" readonly="readonly">
</div>
<div>
<label for="uname">Username: </label>
<input type="text" id="uname" name="uname" value="${user.username }">
</div>
<div>
<label for="upwd">Password: </label>
<input type="password" id="upwd" name="upwd" value="${user.password }">
</div>
<input type="submit" value="更新">
</form>
</body>
</html>
后台代码
User.java
package cn.cyber.Entity;
public class User {
private int id;
private String username;
private String password;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public User(int id, String username, String password) {
super();
this.id = id;
this.username = username;
this.password = password;
}
public User(String username, String password) {
super();
this.username = username;
this.password = password;
}
public User() {
super();
}
}
DBUtil.java
package cn.cyber.Utils;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class DBUtil {
private static String username = "root";
private static String password = "3344179a";
private static String url = "jdbc:mysql://localhost:3306/user";
private static String driver = "com.mysql.cj.jdbc.Driver";
static {
try {
Class.forName(driver);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
public static Connection getConnection() throws SQLException {
return DriverManager.getConnection(url, username, password);
}
public static void release(Connection conn, PreparedStatement pst, ResultSet rs) throws SQLException {
if (rs != null) {
rs.close();
}
if (pst != null) {
pst.close();
}
if (conn != null) {
conn.close();
}
}
}
UserDao.java
package cn.cyber.Dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import cn.cyber.Entity.User;
import cn.cyber.Utils.DBUtil;
public class UserDao {
private Connection conn = null;
private PreparedStatement pst = null;
private ResultSet rs = null;
public int addUser(User user) {
int result = 0;
try {
conn = DBUtil.getConnection();
String sql = "insert into user(username,password) values(?,?)";
pst = conn.prepareStatement(sql);
pst.setString(1, user.getUsername());
pst.setString(2, user.getPassword());
result = pst.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
DBUtil.release(conn, pst, rs);
} catch (SQLException e) {
e.printStackTrace();
}
}
return result;
}
public int delUser(int id) {
int result = 0;
try {
conn = DBUtil.getConnection();
String sql = "delete from user where id=?";
pst = conn.prepareStatement(sql);
pst.setInt(1, id);
result = pst.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
DBUtil.release(conn, pst, rs);
} catch (SQLException e) {
e.printStackTrace();
}
}
return result;
}
public int updateUser(User user) {
int result = 0;
try {
conn = DBUtil.getConnection();
String sql = "update user set username=?,password=? where id=?";
pst = conn.prepareStatement(sql);
pst.setString(1, user.getUsername());
pst.setString(2, user.getPassword());
pst.setInt(3, user.getId());
result = pst.executeUpdate();
if(result>0) {
System.out.println("更新成功");
}else {
System.out.println("更新失败");
System.out.println(user.getUsername());
System.out.println(user.getPassword());
System.out.println(user.getId());
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
DBUtil.release(conn, pst, rs);
} catch (SQLException e) {
e.printStackTrace();
}
}
return result;
}
public List<User> getUsers() {
List<User> users = new ArrayList<User>();
try {
conn = DBUtil.getConnection();
String sql = "select * from user";
pst = conn.prepareStatement(sql);
rs = pst.executeQuery();
while (rs.next()) {
User user = new User();
user.setId(rs.getInt("id"));
user.setUsername(rs.getString("username"));
user.setPassword(rs.getString("password"));
users.add(user);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
DBUtil.release(conn, pst, rs);
} catch (SQLException e) {
e.printStackTrace();
}
}
return users;
}
public User getUser(String username) {
User user = new User();
try {
conn = DBUtil.getConnection();
String sql = "select * from user where username=?";
pst = conn.prepareStatement(sql);
pst.setString(1, username);
rs = pst.executeQuery();
rs.next();
user.setId(rs.getInt("id"));
user.setUsername(rs.getString("username"));
user.setPassword(rs.getString("password"));
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
DBUtil.release(conn, pst, rs);
} catch (SQLException e) {
e.printStackTrace();
}
}
return user;
}
public User getUser(int id) {
User user = new User();
try {
conn = DBUtil.getConnection();
String sql = "select * from user where id=?";
pst = conn.prepareStatement(sql);
pst.setInt(1, id);
rs = pst.executeQuery();
rs.next();
user.setId(rs.getInt("id"));
user.setUsername(rs.getString("username"));
user.setPassword(rs.getString("password"));
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
DBUtil.release(conn, pst, rs);
} catch (SQLException e) {
e.printStackTrace();
}
}
return user;
}
}
UserService.java
package cn.cyber.Service;
import java.util.List;
import cn.cyber.Dao.UserDao;
import cn.cyber.Entity.User;
public class UserService {
private UserDao userDao = new UserDao();
public int register(User user) {
return userDao.addUser(user);
}
public int delUser(int id) {
return userDao.delUser(id);
}
public int updateUser(User user) {
return userDao.updateUser(user);
}
public List<User> getUsers() {
return userDao.getUsers();
}
public User getUser(String username) {
return userDao.getUser(username);
}
public User getUser(int id) {
return userDao.getUser(id);
}
}
UserRegisterController.java
package cn.cyber.Controller;
import java.io.IOException;
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 cn.cyber.Entity.User;
import cn.cyber.Service.UserService;
@WebServlet("/UserRegisterController")
public class UserRegisterController extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String username = request.getParameter("uname");
String password = request.getParameter("upwd");
User user = new User(username, password);
UserService userService = new UserService();
int result = userService.register(user);
String url = "fail.html";
if (result>0) {
url = "login.jsp";
}
response.sendRedirect(url);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
UserLoginController.java
package cn.cyber.Controller;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import cn.cyber.Entity.User;
import cn.cyber.Service.UserService;
@WebServlet("/UserLoginController")
public class UserLoginController extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html; charset=UTF-8");
String username = request.getParameter("username");
String password = request.getParameter("password");
String[] saveCookie = request.getParameterValues("saveCookie");
Cookie usernameCookie = new Cookie("username", username);
Cookie passwordCookie = new Cookie("password", password);
if (saveCookie!=null && "yes".equals(saveCookie[0])) {
usernameCookie.setMaxAge(60);
passwordCookie.setMaxAge(60);
} else {
usernameCookie.setMaxAge(0);
passwordCookie.setMaxAge(0);
}
response.addCookie(usernameCookie);
response.addCookie(passwordCookie);
String url = "fail.html";
UserService userService = new UserService();
User user = userService.getUser(username);
if (user!=null) {
if (password.equals(user.getPassword())) {
url = "UserListController";
}
}
request.getRequestDispatcher(url).forward(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
UserListController.java
package cn.cyber.Controller;
import java.io.IOException;
import java.util.List;
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 cn.cyber.Entity.User;
import cn.cyber.Service.UserService;
@WebServlet("/UserListController")
public class UserListController extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
UserService userService = new UserService();
List<User> users = userService.getUsers();
HttpSession session = request.getSession();
session.setAttribute("userList", users);
response.sendRedirect("index.jsp");
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
UserDeleteController.java
package cn.cyber.Controller;
import java.io.IOException;
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 cn.cyber.Service.UserService;
@WebServlet("/UserDeleteController")
public class UserDeleteController extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html; charset=UTF-8");
String idTmp = request.getParameter("id");
int id = Integer.parseInt(idTmp);
UserService userService = new UserService();
int result = userService.delUser(id);
String url = "fail.html";
if (result>0) {
url = "UserListController";
}
request.getRequestDispatcher(url).forward(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
UserUpdatePageController.java
package cn.cyber.Controller;
import java.io.IOException;
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 cn.cyber.Entity.User;
import cn.cyber.Service.UserService;
@WebServlet("/UserUpdatePageController")
public class UserUpdatePageController extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html; charset=UTF-8");
String idTmp = request.getParameter("id");
int id = Integer.parseInt(idTmp);
String url = "fail.html";
UserService userService = new UserService();
User user = userService.getUser(id);
if (user!=null) {
request.setAttribute("user", user);
url = "update.jsp";
}
request.getRequestDispatcher(url).forward(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
UserUpdateController.java
package cn.cyber.Controller;
import java.io.IOException;
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 cn.cyber.Entity.User;
import cn.cyber.Service.UserService;
@WebServlet("/UserUpdateController")
public class UserUpdateController extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String username = request.getParameter("uname");
String password = request.getParameter("upwd");
int id=Integer.parseInt(request.getParameter("id"));
User user = new User(id,username, password);
UserService userService = new UserService();
int result = userService.updateUser(user);
String url = "fail.html";
if (result>0) {
url = "UserListController";
}
response.sendRedirect(url);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}