当前位置: 首页 > news >正文

网站域名做固定资产怎么处理佛山seo联系方式

网站域名做固定资产怎么处理,佛山seo联系方式,建筑工程网格化管理实施方案,安徽两学一做专题网站最近学习使用filter过滤器完成对敏感词汇的过滤,在判断方法名是getParameterMap时出现如下如下报错的问题: java.lang.IllegalStateException: No modifications are allowed to a locked ParameterMap 结果查了一下发现这是由于 javax.servlet.ServletRequest get…

最近学习使用filter过滤器完成对敏感词汇的过滤,在判断方法名是getParameterMap时出现如下如下报错的问题:
java.lang.IllegalStateException: No modifications are allowed to a locked ParameterMap

结果查了一下发现这是由于 javax.servlet.ServletRequest getParameterMap method 返回的是一个不可变(immutable)的对象,

什么是Immutable class?

创建一个Immutable 类需要满足以下条件

  1. 用final 声明类,使类不可以被继承

  2. 所有的属性字段都用private 修饰,以至于不能直接访问属性

  3. 不提供setter 方法

  4. 使所有的mutable fields 用final 修饰, 以至于这个值只能被分配一次

  5. 用构造函数 深度copy 和初始化所有的字段

  6. 在Getter方法里通过clone 对象,相当于返回一个实际对象的引用。 原文链接:https://blog.csdn.net/gaozhiqiang111/article/details/52440152

而我在拦截了getParameterMap的数据后,由于要将含敏感词汇的单词变为"***",因此我是使用map.put来进行改变的,这就违反了第四条原则,该值只能被分配一次,而解决办法便是在 对应的filter方法中创建一个新的map,将拦截的map赋值给这个新的map,再返回这个被赋值的map就可以了

代码如下(其中包含了拦截getParameter方法的)

/*** 敏感词汇过滤器*/
@WebFilter("/*")
public class SensitiveWordsFilter implements Filter {private List<String> list = new ArrayList<String>();//敏感词汇集合private Map<String,String[]> map;//创建一个map,用于返回public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException {//1.创建代理对象,增强getParameter方法ServletRequest proxy_req = (ServletRequest) Proxy.newProxyInstance(req.getClass().getClassLoader(), req.getClass().getInterfaces(), new InvocationHandler() {@Overridepublic Object invoke(Object proxy, Method method, Object[] args) throws Throwable {//增强getParameter方法//判断是否是getParameter方法if(method.getName().equals("getParameter")){//增强返回值//获取返回值String value = (String) method.invoke(req,args);if(value != null){for (String str : list) {if(value.contains(str)){value = value.replaceAll(str,"***");}}}return  value;}//判断方法名是否是 getParameterMapif(method.getName().equals("getParameterMap")){Map<String,String[]> maps = (Map<String, String[]>) method.invoke(req,args);map=maps;Set set = map.keySet();Iterator it = set.iterator();while (it.hasNext()){String xh = (String) it.next();String[] value = map.get(xh);for(String str:list){if (value[0].contains(str)){value[0] = value[0].replaceAll(str,"***");}}}return map;}return method.invoke(req,args);}});//2.放行chain.doFilter(proxy_req, resp);}public void init(FilterConfig config) throws ServletException {try{//1.获取文件真实路径ServletContext servletContext = config.getServletContext();String realPath = servletContext.getRealPath("/WEB-INF/classes/敏感词汇.txt");//2.读取文件BufferedReader br = new BufferedReader(new FileReader(realPath));//3.将文件的每一行数据添加到list中String line = null;while((line = br.readLine())!=null){list.add(line);}br.close();System.out.println(list);}catch (Exception e){e.printStackTrace();}}public void destroy() {}}
http://www.lbrq.cn/news/2486593.html

相关文章:

  • 私服网站去哪买空间啊北京网站seo公司
  • 做二手车按揭的网站详情页页面页面
  • 单纯做seo能否提升网站流量东莞疫情最新消息今天又封了
  • 北京建设工程交易网seo刷词
  • 网站建设环保seo的中文含义是什么意思
  • 网站图片轮播怎么弄引流用什么话术更吸引人
  • 岳阳网站制作石家庄新闻网头条新闻
  • 有什么做服装的网站好优化外包服务公司
  • 东莞品牌网站建设学校网站建设哪家好
  • wordpress主题安装后不一样seo网址大全
  • 网站开发机构重庆seo全面优化
  • 定制网站公司哪家好客源软件哪个最好
  • 北京市委宣传部西安百度网站排名优化
  • 宣传册设计及网站建设做网站要多少钱
  • 建网站的重要性百度首页快速排名系统
  • 做视频上传到网站怎么赚钱如何推广一款app
  • 网站建好怎么发布seo优化技术
  • 如何建wap网站百度网页推广怎么做
  • 网站设计公司网页设计比较好的网络推广平台
  • 北京c2b网站建设如何做好推广引流
  • 腾讯云 门户网站建设今日军事新闻最新消息
  • 网站制作过程合理的步骤是网络平台怎么创建
  • 开发公司人事行政经理工作总结及计划安康地seo
  • 在ps中网站界面应做多大全网
  • 专业的开发网站建设百度广告代运营
  • 个人网站制作软件郑州seo优化培训
  • 佛山著名网站建设公司如何建立独立网站
  • 怎么做优惠卷网站公关团队
  • 在线音乐网站开发教程重庆森林为什么不能看
  • 济南企业建站sem优化托管
  • C语言中:形参与实参的那些事
  • 自定义定时任务功能详解
  • 2025年02月11日 Go生态洞察:Go 1.24 发布亮点全面剖析
  • 机器学习(重学版)基础篇(概念与评估)
  • 协作机器人掀起工厂革命:码垛场景如何用数据重塑制造业命脉?
  • php算法-- 关联数组使用,优化sip账号去重