JavaWeb小实例

174 阅读5分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

前端代码

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="(9)" method="post"> -->
    <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="(10)"> -->
            <input type="password" id="upwd" name="upwd">
        </div>
        <input type="submit" value="注册">
    </form>
</body>
</html>

fail.html

<!-- <!(43) html> -->
<!DOCTYPE html>
<html>
<head>
<!-- <meta (44)="UTF-8"> -->
<meta charset="UTF-8">
<title>操作失败</title>
</head>
<body>
    <h1>操作失败</h1>
    <!-- <a href="(45)">返回首页</a> -->
    <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();
		// TODO Auto-generated constructor stub
	}
}

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 = "(1)://localhost:3306/smart";
	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) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	public static Connection getConnection() throws SQLException {
		//return (2).getConnection(url, username, password);
		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 (3) pst = null; */
	private PreparedStatement pst = null;
	private ResultSet rs = null;
	
	// 添加用户
	public int addUser(User user) {
		int result = 0;
		try {
			//conn = DBUtil.(4);
			conn = DBUtil.getConnection();
			String sql = "insert into user(username,password) values(?,?)";
			
			//pst = conn.prepareStatement((5));
			pst = conn.prepareStatement(sql);
			
			//pst.(6)(1, user.getUsername());
			pst.setString(1, user.getUsername());
			pst.setString(2, user.getPassword());
			
			//result = pst.(7);
			result = pst.executeUpdate();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			try {
				DBUtil.release(conn, pst, rs);
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		return result;
	}
	
	// 删除用户
	public int delUser(int id) {
		int result = 0;
		try {
			//conn = DBUtil.(4);
			conn = DBUtil.getConnection();
			
			String sql = "delete from user where id=?";
			
			//pst = conn.prepareStatement((5));
			pst = conn.prepareStatement(sql);
			
			pst.setInt(1, id);
			
			result = pst.executeUpdate();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			try {
				DBUtil.release(conn, pst, rs);
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		return result;
	}
	
	// 更新用户信息
	public int updateUser(User user) {
		int result = 0;
		try {
			//conn = DBUtil.(4);
			conn = DBUtil.getConnection();
			
			String sql = "update user set username=?,password=? where id=?";
			
			//pst = conn.prepareStatement((5));
			pst = conn.prepareStatement(sql);
			//System.out.println("执行到这里");
			pst.setString(1, user.getUsername());
			pst.setString(2, user.getPassword());
			pst.setInt(3, user.getId());
			//System.out.println("执行到这里1");
			result = pst.executeUpdate();
			//System.out.println("执行到这里2");
			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) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			try {
				DBUtil.release(conn, pst, rs);
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		return result;
	}
	
	// 获取所有用户信息
	public List<User> getUsers() {
		List<User> users = new ArrayList<User>();
		try {
			//conn = DBUtil.(4);
			conn = DBUtil.getConnection();
			
			String sql = "select * from user";
			
			//pst = conn.prepareStatement((5));
			pst = conn.prepareStatement(sql);
			
			//rs = pst.(8);
			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) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			try {
				DBUtil.release(conn, pst, rs);
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		return users;
	}
	
	// 根据用户名查找用户
	public User getUser(String username) {
		User user = new User();
		try {
			//conn = DBUtil.(4);
			conn = DBUtil.getConnection();
			String sql = "select * from user where username=?";
			
			//pst = conn.prepareStatement((5));
			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) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			try {
				DBUtil.release(conn, pst, rs);
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		return user;
	}
	
	// 根据用户ID查找用户
	public User getUser(int id) {
		User user = new User();
		try {
			//conn = DBUtil.(4);
			conn = DBUtil.getConnection();
			String sql = "select * from user where id=?";
			
			//pst = conn.prepareStatement((5));
			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) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			try {
				DBUtil.release(conn, pst, rs);
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				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);
	}
	
	// 根据用户ID查找用户
	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("(11)");
		String username = request.getParameter("uname");
		String password = request.getParameter("upwd");
		
		User user = new User(username, password);
		
		UserService userService = new UserService();
		//int result = userService.(12)(user);
		int result = userService.register(user);
		String url = "fail.html";
		
		if (result>0) {
			//url = "(13)";
			url = "login.jsp";
		}
		//response.(14)(url);
		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("(21)");
		String password = request.getParameter("password");
		//String[] saveCookie = request.getParameterValues("(22)");
		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.(23)(60);
			usernameCookie.setMaxAge(60);
			passwordCookie.setMaxAge(60);
		} else {
			usernameCookie.setMaxAge(0);
			passwordCookie.setMaxAge(0);
		}
		
		/*(24).addCookie(usernameCookie);
		response.addCookie((25));*/
		
		response.addCookie(usernameCookie);
		response.addCookie(passwordCookie);
		
		String url = "fail.html";
		
		UserService userService = new UserService();
		//User user = userService.(26)((27));
		User user = userService.getUser(username);
		if (user!=null) {
			if (password.equals(user.getPassword())) {
				//url = "(28)";
				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();
		//(35).setAttribute("userList", (36));
		session.setAttribute("userList", users);
		//response.sendRedirect("(37)");
		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;

/**
 * @author guojinan
 * @version 创建时间:2021年6月29日  上午6:07:14
 */
@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.(38)(idTmp);
		int id = Integer.parseInt(idTmp);
		String url = "fail.html";
		
		UserService userService = new UserService();
		//User user = userService.getUser((39));
		User user = userService.getUser(id);
		if (user!=null) {
			request.setAttribute("user", user);
			//url = "(40)";
			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("(11)");
		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.(12)(user);
		int result = userService.updateUser(user);
		
		String url = "fail.html";
		
		if (result>0) {
			//url = "(13)";
			url = "UserListController";
		}
		//response.(14)(url);
		response.sendRedirect(url);
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		doGet(request, response);
	}
}