V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
tail2
V2EX  ›  程序员

Java 过滤器的问题

  •  
  •   tail2 · 2019-04-12 11:07:03 +08:00 · 1310 次点击
    这是一个创建于 2077 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

    3 条回复    2019-04-12 11:51:00 +08:00
    wolfie
        1
    wolfie  
       2019-04-12 11:26:58 +08:00
    打断点看看 JSP 编译时间。
    都放到 `WEB-INF` 下了还怕篡改吗。
    tail2
        2
    tail2  
    OP
       2019-04-12 11:37:32 +08:00
    @wolfie 我觉得 jsp 编译的时间点就是启动服务器之后, 处理请求之前, 因为 jsp 已经提前编译好了, 所以不管怎么修改, 返回的都是之前的没有修改的 jsp, 那我怎么解决这个问题呀
    wolfie
        3
    wolfie  
       2019-04-12 11:51:00 +08:00
    @tail2 #2
    JSP 有修改会重新编译,Tomcat 就是这样。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3391 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 11:08 · PVG 19:08 · LAX 03:08 · JFK 06:08
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.