• 验证用户是否登录 (认证用户)


    实现思路

    1. 有一个登陆页面,需要写一个controller访问页面。
    2. 登陆页面有一提交表单的动作。需要在controller中处理。判断用户名密码是否正确。如果正确,向session中写入用户信息。返回登陆成功。
    3. 拦截用户请求,判断用户是否登陆。如果用户已经登陆。放行, 如果用户未登陆,跳转到登陆页面

    测试:

    (1)创建一个jsp包,创建main.jsp和login.jsp  

     login.jsp

     main.jsp

     

    (2)编写一个登陆页面,一个主界面         login.jsp和main.jsp

    login.jsp

    1. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    2. <html>
    3. <head>
    4. <title>Titletitle>
    5. head>
    6. <body>
    7. <%--在web-inf下面的页面或者资源,只能通过controller,或者servlet进行访问--%>
    8. <h1>登录页面h1>
    9. <form action="${pageContext.request.contextPath}/user/login" method="post">
    10. 用户名:<input type="text" name="username"/>
    11. 密码:<input type="text" name="password"/>
    12. <input type="submit" value="提交"/>
    13. form>
    14. body>
    15. html>

     

    main.jsp(后续需要添加注销操作)

    1. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    2. <html>
    3. <head>
    4. <title>Titletitle>
    5. head>
    6. <body>
    7. <h1>首页h1>
    8. body>
    9. html>

     

    (3)编写一个Controller处理请求

    1. package com.gt.controller;
    2. import org.springframework.stereotype.Controller;
    3. import org.springframework.ui.Model;
    4. import org.springframework.web.bind.annotation.RequestMapping;
    5. import javax.servlet.http.HttpSession;
    6. @Controller
    7. @RequestMapping("/user")
    8. public class LoginController {
    9. @RequestMapping("/main")
    10. public String main() {
    11. // 主页
    12. return "main";
    13. }
    14. @RequestMapping("/goLogin")
    15. public String login() {
    16. // 跳转视图--登录页面
    17. return "login";
    18. }
    19. @RequestMapping("/login")
    20. public String login(HttpSession session, String username, String password, Model model) {
    21. System.out.println("login==>" + username);
    22. // 把用户的信息存在session中:
    23. session.setAttribute("userLoginInfo", username);
    24. model.addAttribute("username", username);
    25. // 登录成功后跳转到主页面
    26. return "main";
    27. }
    28. @RequestMapping("/goOut")
    29. public String goOut(HttpSession session) {
    30. // 移除(注销)
    31. session.removeAttribute("userLoginInfo");
    32. return "main";
    33. }
    34. }

     

    (4)因为在LoginController里面编写了移除注销所以在main里面需要添加注销操作 

    1. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    2. <html>
    3. <head>
    4. <title>Titletitle>
    5. head>
    6. <body>
    7. <h1>首页h1>
    8. <span>${username}span>
    9. <p>
    10. <a href="${pageContext.request.contextPath}/user/goOut">注销a>
    11. p>
    12. body>
    13. html>

     

  • 相关阅读:
    课件演示用什么软件?万兴录演:多种录屏方式任你选
    因果图,鱼骨图,石川图
    竞赛 大数据分析:基于时间序列的股票预测于分析
    有趣的设计模式——两脚插头也能使用三孔插板
    Ubuntu20.04以上 如何清理内存遇到报错如何处理[WARN]Free memory 1234(M)may be NOT ENOUGH
    java常见集合遍历的空指针情况
    C++继承
    速览muduo组成结构
    零基础产品经理如何迅速学习Axure原型制作?快速上手攻略!
    [记忆化dfs][排序]leetcode1387:将整数按权重排序(medium)
  • 原文地址:https://blog.csdn.net/qq_46423017/article/details/126872730