1.编写页面放入项目生成的templates文件中
2.编写登陆页面后台controller代码
@Controller @SessionAttributes("loginUser")//方便拦截器中使用 public class EmployeeController { @PostMapping(value = {"/login"}) public String login(Map<String,Object> map, @RequestParam("username") String username, @RequestParam("password") String password){ System.out.println("进入登陆页面"); String url=null; if ("admin".equals(username)&&"admin".equals(password)){ map.put("loginUser",username); url="dashboard"; }else { url="login"; } return url; }} |
3.编写拦截器interceptor
public class LoginInterceptor implements HandlerInterceptor { /** * 访问前拦截 * @param request * @param response * @param handler * @return true 放行 false 拦截 * @throws Exception * */ @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { HttpSession session = request.getSession(); Object loginUser = session.getAttribute("loginUser"); if (loginUser==null){ //采取转发 request.getRequestDispatcher("/login").forward(request,response); return false; }else { return true;//放行 } } /** * 环绕拦截 * @param request * @param response * @param handler * @param modelAndView * @throws Exception */ @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { } /** * 访问后拦截 * @param request * @param response * @param handler * @param ex * @throws Exception */ @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { } } |
4.编写config代码,注册拦截器和页面跳转
@Configuration //@EnableAutoConfiguration //表示springBoot不再托管springMvc public class MyConfig extends WebMvcConfigurerAdapter { //注册添加拦截器 @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(new LoginInterceptor()).excludePathPatterns("/login","/","/index.html"); } //注册页面跳转 @Override public void addViewControllers(ViewControllerRegistry registry) { // super.addViewControllers(registry); registry.addViewController("/").setViewName("login"); registry.addViewController("/index.html").setViewName("login"); registry.addViewController("/dashboard.html").setViewName("dashboard"); } } |