1、创建一个登陆拦截器SecurityInterceptor,它继承HandlerInterceptorAdapter类
package com.cn.commodity.config; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.springframework.web.servlet.handler.HandlerInterceptorAdapter; public class SecurityInterceptor extends HandlerInterceptorAdapter { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { HttpSession session = request.getSession(); if (session.getAttribute(WebSecurityConfig.SESSION_KEY) != null) { return true; } // 跳转登录-------controller类中的登陆方法 String url = "/login"; response.sendRedirect(url); return false; } }
2、创建一个URL拦截器WebSecurityConfig类,主要在这个类中实现URL拦截。注意:具体的拦截依据项目而定。
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.InterceptorRegistration; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; @Configuration public class WebSecurityConfig extends WebMvcConfigurerAdapter { public static final String SESSION_KEY = "user"; @Bean public SecurityInterceptor getSecurityInterceptor() { return new SecurityInterceptor(); } @Override public void addInterceptors(InterceptorRegistry registry) { InterceptorRegistration addInterceptor = registry.addInterceptor(getSecurityInterceptor()); // 排除配置--对下面的不进行拦截 addInterceptor.excludePathPatterns("/index"); addInterceptor.excludePathPatterns("/login"); // addInterceptor.excludePathPatterns("/user/**"); addInterceptor.excludePathPatterns("/start/**"); // 拦截配置 addInterceptor.addPathPatterns("/**"); } }
3、自己写一个controller和一些jsp,就可以实现了。
import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @Controller public class JspController { @RequestMapping("/index") public String index(){ return "index"; } @RequestMapping("/login") public String login(){ return "login"; } }
4、jsp目录和配置图