SpringMVC-登录验证判断

简介: `SpringMVC`登录验证实现:创建`LoginInterceptor`拦截器检查`session`中的`LoginInfo`,未登录则重定向至登录页。配置拦截器,路径为`/**`和`/user/**`。`LoginController`处理登录、注销请求,登录成功后将用户信息存入`session`。未登录访问受限页面时,显示登录页面。

SpringMVC-登录验证判断

1.拦截器

package com.kuang.config;

import org.springframework.web.servlet.HandlerInterceptor;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

public class LoginInterceptor implements HandlerInterceptor {
   
   
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
   
   

        HttpSession session=request.getSession();

        //登录页面要放行
        if (request.getRequestURI().contains("goLogin")){
   
   
            return true;
        }
        //提交登录
        if (request.getRequestURI().contains("login")){
   
   
            return true;
        }
        //什么情况下登录了
        if (session.getAttribute("LoginInfo")!=null){
   
   
            return true;
        }

        //判断什么情况下没有登录
        request.getRequestDispatcher("/WEB-INF/jsp/login.jsp").forward(request,response);
        return false;
    }
}

2.拦截器文件配置

 <!--拦截器配置-->
    <mvc:interceptors>
        <mvc:interceptor>
            <!--拦截该目录下的所有请求-->
            <mvc:mapping path="/**"/>
            <bean class="com.kuang.config.MyInterceptor"/>
        </mvc:interceptor>
        <mvc:interceptor>
            <mvc:mapping path="/user/**"/>
            <bean class="com.kuang.config.LoginInterceptor"/>
        </mvc:interceptor>
    </mvc:interceptors>

3.controller

package com.kuang.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

import javax.servlet.http.HttpSession;

@Controller
@RequestMapping("/user")
public class LoginController {
   
   

   //登录
    @RequestMapping("/login")
    public String login(HttpSession session, String username, String password, Model model){
   
   

        //将用户信息存放在session中
        session.setAttribute("LoginInfo",username);
        model.addAttribute("username",username);
       return "main";
    }

    @RequestMapping("/main")
    public  String main(){
   
   
        return "main";
    }

    @RequestMapping("/goLogin")
    public  String goLogin(){
   
   
        return "login";
    }

    //注销
    @RequestMapping("/goOut")
    public String goOut(HttpSession session){
   
   
        session.removeAttribute("LoginInfo");
        return "main";
    }
}

4.效果
image.png

当用户没有登录时,就进行拦截跳转到登录页面。
好了,今天的分享就到这里了。

目录
相关文章
|
7月前
|
Java 应用服务中间件 Spring
SpringMVC快速入门加登录流程分析
SpringMVC快速入门加登录流程分析
87 0
|
存储 前端开发 Java
Spring MVC 实战:三种方式获取登录用户信息
前言 Web 项目中,维持用户登录状态的常用方式有三种,分别是 Cookie、Session、Token,不管哪种方案,都需要获取到用户信息供业务层使用。
495 0
Spring MVC 实战:三种方式获取登录用户信息
|
前端开发 Java 数据安全/隐私保护
SpringMVC拦截器实现登录权限控制
SpringMVC的处理器拦截器,类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理。 依赖于web框架,在实现上基于Java的反射机制,属于面向切面编程(AOP)的一种运用。由于拦截器是基于 web框架的调用,因此可以使用Spring的依赖注入(DI)进行一些业务操作,同时一个拦截器实例在一个 controller生命周期之内可以多次调用。
SpringMVC 如何使用注解完成登录拦截
SpringMVC 如何使用注解完成登录拦截
SpringMVC 如何使用注解完成登录拦截
|
Java 数据安全/隐私保护
SpringMVC+Spring+Mybatis实现登录注册Demo
SpringMVC+Spring+Mybatis实现登录注册Demo
333 0
SpringMVC+Spring+Mybatis实现登录注册Demo
|
前端开发 JavaScript Java
java SpringMVC Filter登录拦截器
java SpringMVC Filter登录拦截器
171 0
|
前端开发 索引
springmvc-ajax-jquery 异步校验登录【亲测可用】
前言 一直以来都是直接提交form跳转登录,但是存在一些问题就是当密码错误的时候,又得重新跳转回来。感觉不是很理想。故采用异步校验是比较稳妥的一种处理的方式。 具体过程 jsp页面的编写 关键性代码如下 &lt;form name="subinfo" class="form" method="post"&gt; &lt;div&gt;
1892 0
|
XML 前端开发 Java
SpringMVC登录案例
学习了一周的springMVC 今天搭建一个SpringMVC的登录案例 主要是用来巩固一下拦截器的是使用。 1.首先配置web.xml 配置 主要是配置encodingfilter和dispatcher &lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;web-app xmlns="http://xmlns.jcp.
1335 0