采用thymealf渲染
login界面
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>login</title>
</head>
<body>
<form action="/login" method="post">
<input type="text" name="id">
<button type="submit">提交</button>
</form>
<div th:text="${msg}"></div>
</body>
</html>
success 界面
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<a>这里是success界面</a>
</body>
</html>
自定义拦截器
package com.example.springbootstudy_02.Interceptor;
import lombok.extern.slf4j.Slf4j;
import org.aopalliance.intercept.Interceptor;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
@Slf4j//打印日志注解
public class MyInterceptor implements HandlerInterceptor {
@Override//在请求处理前拦截
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
log.info("拦截的请求",request);//打印拦截的请求
HttpSession session = request.getSession();
if (session.getAttribute("user") != null){
return true;
}else{
request.setAttribute("msg","请先登录");
request.getRequestDispatcher("/").forward(request,response);
}
return false;
}
@Override//控制器方法结束后执行
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
log.info("postHandle",modelAndView);
}
@Override//视图渲染完成后执行
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
log.info("afterCompletion",ex);
}
}
配置拦截器
package com.example.springbootstudy_02.configure;
import com.example.springbootstudy_02.Interceptor.MyInterceptor;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class myConfigure implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new MyInterceptor())//添加拦截器
.addPathPatterns("/**")//设置拦截的请求/**默认拦截所有请求
.excludePathPatterns("/","/login");//部分请求不拦截,如login,css,js等
}
}
controller
package com.example.springbootstudy_02.Controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpSession;
import java.util.HashMap;
import java.util.Map;
@Controller
public class TestController {
@GetMapping(value = "/")
public String login(){
return "login";
}
@PostMapping(value = "/login")
public String postLogin(@RequestParam("id") String id, Model model, HttpSession session){
if(id.equals("123456")){
session.setAttribute("user",id);
return "redirect:/success";
}else{
model.addAttribute("msg","用户登录错误");
return "login";
}
}
@GetMapping(value = "/success")
public String success(){
return "success";
}
}