JAVA全系列 教程
3762个小节阅读:7091.8k
目录
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
接下来我们编写一个拦截器案例,需求如下:
在系统中,我们需要将所有响应中的一些敏感词替换为***
,此时可以使用拦截器达到要求:
编写控制器方法
xxxxxxxxxx
@RequestMapping("/t3")
public String t3(Model model){
model.addAttribute("name","大笨蛋");
return "result";
}
编写敏感词拦截器
xxxxxxxxxx
// 敏感词拦截器
public class SensitiveWordInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
return true;
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
// 敏感词列表
String[] sensitiveWords = {"坏人","暴力","笨蛋"};
// 获取Model中所有数据
Map<String, Object> model = modelAndView.getModel();
Set<Map.Entry<String, Object>> entries = model.entrySet();
// 遍历Model,将Model值和敏感词列表遍历比对,如果Model值包含敏感词,则替换
for (Map.Entry<String, Object> entry : entries) {
String key = entry.getKey();
String value = entry.getValue().toString();
for (String sensitiveWord : sensitiveWords) {
if (value.contains(sensitiveWord)){
String newStr = value.replace(sensitiveWord, "***");
model.put(key,newStr);
}
}
}
}
}
配置拦截器
xxxxxxxxxx
<!-- 配置拦截器-->
<mvc:interceptors>
<!-- 敏感词拦截器 -->
<mvc:interceptor>
<mvc:mapping path="/**"/>
<bean class="com.itbaizhan.interceptor.SensitiveWordInterceptor"></bean>
</mvc:interceptor>
</mvc:interceptors>