13. Spring Boot 拦截器
2024-10-07 21:09:31
1.thymeleaf 页面修改后可能不会实时反馈到Web,做2步骤:
1)禁用掉tymleaf 缓存: spring.thymeleaf.cache=false
2)IDE编辑器:Ctrl + F9 重新编译页面源码文件
2.if不为空判断:
string也又isEmpty()方法 详见文档
防止表单重复提交:重定向
自定义拦截器:
/**
* 登陆检查,
*/
public class LoginHandlerInterceptor implements HandlerInterceptor {
//目标方法执行之前
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
Object user = request.getSession().getAttribute("loginUser");
if(user == null){
//未登陆,返回登陆页面
request.setAttribute("msg","没有权限请先登陆");
request.getRequestDispatcher("/index.html").forward(request,response);
return false;
}else{
//已登陆,放行请求
return true;
} } @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 { }
}
2.配置拦截器;
//使用WebMvcConfigurerAdapter可以来扩展SpringMVC的功能
//@EnableWebMvc 不要接管SpringMVC
@Configuration
public class MyMvcConfig implements WebMvcConfigurer { /**
* 浏览器发送addViewTest请求,来到success页面
* 发请求到页面,就没有必要在Controller里写空方法了,直接来做视图映射
*/
@Override
public void addViewControllers(ViewControllerRegistry registry) {
// super.addViewControllers(registry);
//浏览器发送 /atguigu 请求来到 success
registry.addViewController("/atguigu").setViewName("success");
} //所有的WebMvcConfigurerAdapter组件都会一起起作用
@Bean //将组件注册在容器
public WebMvcConfigurer webMvcConfigurer(){
WebMvcConfigurer adapter = new WebMvcConfigurer() {
@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/").setViewName("login");
registry.addViewController("/index.html").setViewName("login");
registry.addViewController("/main.html").setViewName("dashboard");
registry.addViewController("/cancleInvoice.html").setViewName("cancleInvoice");
registry.addViewController("/addInvoice.html").setViewName("add");
} //注册拦截器
@Override
public void addInterceptors(InterceptorRegistry registry) {
//super.addInterceptors(registry);
//静态资源; *.css , *.js,springMvc需要配置
//SpringBoot已经做好了静态资源映射,但是经检验,SpringBoot2.0.5得配置静态资源,可能是1.5版本不需要吧
registry.addInterceptor(new LoginHandlerInterceptor()).addPathPatterns("/**")
.excludePathPatterns("/index.html","/","/user/login","/static/**","/webjars/**","/asserts/**");
}
};
return adapter;
} @Bean
public LocaleResolver localeResolver(){
return new MyLocaleResolver();
} }
在html页面中判断是否有值,有的话则显示session中的友情提示
<span id="cardOpenStatus" th:text="${session.cardInfo.message}" th:if="${not #strings.isEmpty(session.cardInfo.message)}"></span>
最新文章
- 浅谈SQL注入风险 - 一个Login拿下Server
- 《转载》Spring MVC之@RequestParam @RequestBody @RequestHeader 等详解
- wex5中的星星评分
- Codeforces 699D Fix a Tree 并查集
- iOS 常用的向上,向下取整, 四舍五入函数
- 关于rank、dense_rank、ROW_NUMBER及OVER(PARTITION BY)、OVER(ORDER BY)的一些用法
- 简单使用SQLite 的增删改查
- 【转载】改善数据质量从数据剖析(Data Profiling)开始
- oralce之存储过程
- What is Object Oriented Design? (OOD)
- sqlCacheDependency 更新缓存Cache
- jq选择器对象筛选
- Leetcode 12——Integer to Roman
- Linux IO 模型
- 面向面试编程代码片段之GC
- 前端 CSS语法
- Linux重要命令总结
- View的相关原理(读书笔记)
- 故障排错-ping dup!
- 如何做出一个更好的Machine Learning预测模型【转载】