目录
- 导言
- 具体实现
- 结果展示
- 代码编写时遇到的坑
-
- 1. Controller返回的页面视图(jsp页面)要放在webapp下的/WEB-INF/${jspPackageName}/中,并且在配置文件中配置jsp页面的前后缀。
- 2.Controller在判断用户是否存在之前需要先判断用户信息是否为空,否则数据库查询会出现exception。
- 3.Interceptor的拦截表达式中/*只能拦截一层url,形如/a,但是/a/b就不能拦截了。/**可以拦截多层,如/a/b/c。
- 4.拦截器中需要排除跳转到登录界面的url,否则会一直跳转无法登陆成功。还需要排除所有的静态资源文件,如css,js,img等,最好把他们都放在一个文件夹下,如res,这样可以通过一个表达式/res/**全部排除。否则无法加载这些静态资源。
- 5.静态资源放到/src/java/resources/static下。(springboot默认设置)
导言
在web app项目中,如果用户没有登录,但是想要访问业务界面,我们就需要把页面转发或重定向到我们的登录界面。这个需求在Spring Boot中是使用拦截器实现的。拦截器的流程图如下:
具体实现
1.登录界面实现
首先我们要有一个index.jsp来包含一个登陆表单。我的项目中用到了bootstrap框架,看起来有点复杂,可以根据自己项目简单写一个表单也能完成。
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- 引入 Bootstrap -->
<!-- 新 Bootstrap 核心 CSS 文件 -->