静态资源一般放在static目录下
当静态资源放在非static目录下且无法访问到时 此时需要设置一个WebMvcConfig类
继承 WebMvcConfigurationSupport 并重写 addResourceHandlers 方法
registry.addResourceHandler("/backend/**").addResourceLocations("classpath:/backend/");
DigestUtils.md5DigestAsHex(password.getBytes());
此段代码是通过DigestUtils来实现md5加密传入的参数是字节码
mybatis-plus:
configuration:
#在映射实体或者属性时,将数据库中表名和字段名中的下划线去掉,按照驼峰命名法映射
map-underscore-to-camel-case: true
global-config:
db-config:
id-type: ASSIGN_ID //主键自增
配置拦截器
首先需要定义一个类使其继承Filter 添加@WebFilter(filterName = "loginCheckFilter",urlPatterns = "/*")注解
重写doFilter方法
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException
通过request获取uri
String uri = request.getRequestURI();
将不需要拦截的路径写入String数组
String[] urls = new String[]{
"/employee/login", "/employee/logout", "/backend/**","/front/**"
};
写一个方法check将不需要拦截的路径数组和获取的uri传入方法内
循环遍历数组 返回结果
public static final AntPathMatcher PATH_MATCHER = new AntPathMatcher();
通过路径匹配器提供的api来实现判断
public boolean check(String[] urls,String url){
for (String s : urls) {
boolean match = PATH_MATCHER.match(s, url);
if (match){
return true;
}
}
return false;
}
当返回为true时说明不要拦截直接放行
check = check(urls,uri);
if (check){
log.info("本次请求不需要处理",uri);
filterChain.doFilter(request,response);
return;
}
否则判断session中是否有数据来判断是否已经登录
if(request.getSession().getAttribute("employee")!=null){
log.info("用户已登录:{}",request.getSession().getAttribute("employee"));
filterChain.doFilter(request,response);
return;
}
ELSE就需要拦截
response.getWriter().write(JSON.toJSONString(R.error("NOTLOGIN")));
return;
通过给前端返回一个未登录的错误信息从而从前端实现页面的转跳