主页面

需要登录才能进入,所以需要设置一个登录拦截的功能

//获取session作用域中的数据

Object obj = session.getAttribute(“loginUser”);

if(obj==null){

//没有登录,进入登录页面

response.sendRedirect(“login.jsp”);

return;//结束这个页面

}

  1. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
  2. <%@page import="com.mt.pojo.User" %>
  3. <%
  4. //获取session作用域中的数据
  5. Object obj = session.getAttribute("loginUser");
  6. if(obj==null){
  7. //没有登录,进入登录页面
  8. response.sendRedirect("login.jsp");
  9. return;//结束这个页面
  10. }
  11. %>
  12. <html>
  13. <head>
  14. <title>主页</title>
  15. </head>
  16. <body>
  17. <h1>后台管理的主页</h1>
  18. <h2>欢迎[<%=((User)obj).getUname()%>]</h2>
  19. </body>
  20. </html>

servlet

  1. 做一个登录的servlet,在登录的时候做一个查询用户,找到用户并且验证成功以后将用户添加到session作用域,重定向到主页面。如果验证失败就返回到登录界面;
  1. /**
  2. * @author:刘倩云
  3. * @createTime:2021-02-25
  4. */
  5. public class LoginServlet extends HttpServlet {
  6. @Override
  7. protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
  8. this.doPost(req,resp);
  9. }
  10. @Override
  11. protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
  12. //获取请求参数
  13. String uname = req.getParameter("uname");
  14. String password = req.getParameter("password");
  15. String remember = req.getParameter("remember");
  16. //获取用户
  17. User user = UserData.queryUserByName(uname);
  18. if(user!=null&&user.getPassword().equals(password)){
  19. //登录成功
  20. //获取session
  21. HttpSession session = req.getSession();
  22. //将用户对象信息放入session的作用域
  23. session.setAttribute("loginUser",user);
  24. //直接进入主页面
  25. resp.sendRedirect("main");
  26. }else {
  27. resp.sendRedirect("login.jsp");
  28. }
  29. }
  30. }

登录页面

  1. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>用户登录</title>
  6. <link rel="stylesheet" href="https://cdn.staticfile.org/twitter-bootstrap/4.3.1/css/bootstrap.min.css">
  7. <script src="https://cdn.staticfile.org/jquery/3.2.1/jquery.min.js"></script>
  8. <script src="https://cdn.staticfile.org/popper.js/1.15.0/umd/popper.min.js"></script>
  9. <script src="https://cdn.staticfile.org/twitter-bootstrap/4.3.1/js/bootstrap.min.js"></script>
  10. <style>
  11. form{
  12. margin: 0 auto;
  13. margin-top: 100px;
  14. width: 350px;
  15. }
  16. </style>
  17. </head>
  18. <%--判断客户端是否有数据--%>
  19. <%
  20. String uname = "";
  21. String utoken = "";
  22. //获取cookie
  23. Cookie[] cookies = request.getCookies();
  24. if(cookies!=null){
  25. for(Cookie cookie:cookies){
  26. if(cookie.getName().equals("uname")){
  27. uname = cookie.getValue();//记录在客户端的用户名
  28. }
  29. if(cookie.getName().equals("utoken")){
  30. utoken = cookie.getValue();//记录在客户端的token
  31. }
  32. }
  33. }
  34. %>
  35. <body>
  36. <div class="container">
  37. <form action="login" method="post">
  38. <div class="form-group">
  39. <label for="uname">用户名:</label>
  40. <input type="text" class="form-control" name="uname" id="uname" placeholder="用户名">
  41. </div>
  42. <div class="form-group">
  43. <label for="pwd">密码:</label>
  44. <input type="password" class="form-control" name="password" id="pwd" placeholder="密码">
  45. </div>
  46. <div class="form-check">
  47. <label class="form-check-label">
  48. <input class="form-check-input" type="checkbox" name="remember" value="1"> 记住密码
  49. </label>
  50. </div>
  51. <button type="submit" class="btn btn-primary">登录</button>
  52. </form>
  53. </div>
  54. </body>
  55. </html>

用户数据

  1. /**
  2. * @author:刘倩云
  3. * @createTime:2021-02-25
  4. */
  5. public class UserData {
  6. private static List<User> users = new ArrayList<>();
  7. static {
  8. addUser(new User("admin","123456",""));
  9. addUser(new User("xiaoliu","123456",""));
  10. addUser(new User("xiaowang","123456",""));
  11. addUser(new User("haha","123456",""));
  12. addUser(new User("Cherry","123456",""));
  13. addUser(new User("Tracer","123456",""));
  14. }
  15. //添加用户
  16. public static void addUser(User user){
  17. users.add(user);
  18. }
  19. //通过用户名查找
  20. public static User queryUserByName(String name){
  21. //遍历集合
  22. for(User user:users){
  23. if(user.getUname().equals(name)){
  24. return user;
  25. }
  26. }
  27. return null;
  28. }
  29. }