1、Controller
package com.springboot.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.io.PrintWriter;
/**
* @author dc
* @date 2020/5/18 - 14:17
*/
@RestController
public class MyController {
@RequestMapping("/login")
public String loginController(HttpServletRequest request){
HttpSession session = request.getSession();
session.setAttribute("userName", "dc");
session.setAttribute("password", "123456");
return "<h1>成功登录</h1>";
}
@RequestMapping("/logout")
public String logoutController(HttpServletRequest request){
HttpSession session = request.getSession();
session.removeAttribute("userName");
session.removeAttribute("password");
return "<h1>退出登录</h1>";
}
@RequestMapping("/index")
public void indexController(HttpServletResponse response) throws IOException {
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
out.println("这里是主页面,只有登录之后才能看见!");
}
}
2、Interceptor
package com.springboot.interceptors;
import org.springframework.boot.autoconfigure.web.servlet.WebMvcRegistrations;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
/**
* @author dc
* @date 2020/5/18 - 14:30
*/
public class MyInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
System.out.println("------------------拦截器被访问了--------------------");
HttpSession session = request.getSession();
String userName = (String) session.getAttribute("userName");
String password = (String) session.getAttribute("password");
System.out.println(userName);
System.out.println(password);
if ("dc".equals(userName) && "123456".equals(password)){
return true;
}
return false;
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
}
}
3、配置类
package com.springboot.config;
import com.springboot.interceptors.MyInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
/**
* @author dc
* @date 2020/5/18 - 14:38
*/
@Configuration //表明该类为一个配置类
public class MyConfig implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new MyInterceptor()).addPathPatterns("/**").excludePathPatterns("/login");
}
}