Java 过滤器的问题

2019-04-12 11:07:03 +08:00
 tail2

我在用过滤器实现一个网页防篡改系统:

我在过滤器中对网页实现了修改, 然后把请求交给 servlet 返回网页, 但是第一次返回的 jsp 网页还是修改之前的网页, 需要再次刷新浏览器才能显示修改后的网页。

我应该如何做到第一次返回的网页就是修改后的网页?? 过滤器代码:

//摘要值不相等, 说明网页被修改, 需恢复 System.out.println("=====恢复中"); //恢复网页, 就是把修改后的网页文件删除, 再把备份文件复制到网页目录 WebpageUtil.retrievePage(url); chain.doFilter(request, response)

servlet 代码: request.getRequestDispatcher("/WEB-INF/views/page2.jsp").forward(request, response);

1310 次点击
所在节点    程序员
3 条回复
wolfie
2019-04-12 11:26:58 +08:00
打断点看看 JSP 编译时间。
都放到 `WEB-INF` 下了还怕篡改吗。
tail2
2019-04-12 11:37:32 +08:00
@wolfie 我觉得 jsp 编译的时间点就是启动服务器之后, 处理请求之前, 因为 jsp 已经提前编译好了, 所以不管怎么修改, 返回的都是之前的没有修改的 jsp, 那我怎么解决这个问题呀
wolfie
2019-04-12 11:51:00 +08:00
@tail2 #2
JSP 有修改会重新编译,Tomcat 就是这样。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/554370

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX