有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java设计Servlet页面重定向系统

在设计一个需要为应用程序动态添加页面重定向规则的系统时,我需要一些帮助

每当请求到达servlet时(所有请求都到达这个servlet),我必须通过查看某个数据库或其他资源来检查url是否存在以进行重定向,并相应地重定向它

要做到这一点,最好的解决方案是通过apache重写规则,但每当我们对其进行更改时,它都需要部署,因此我们不寻找这样的解决方案

因此,我们希望移动一种方法,在db中配置这些规则(可以在运行时配置),我的应用程序将获取这些规则。为了减少应用程序和数据库之间的连接延迟,我们计划实现边缘缓存

你能就这个方法提出你的想法吗


共 (1) 个答案

  1. # 1 楼答案

    选项#1

    所有java解决方案,不需要apache,只需要像Tomcat这样的servlet容器。如果您还记得规范,您需要在web中定义映射。xml,所以一旦代码被执行,要更改有关传入请求URL的任何内容都为时已晚,映射已经发生

    • 子选项a:您不使用任何MVC框架,比如Spring或Struts。将代码放入拦截器过滤器,并根据规则发出http重定向。它有一个缺点,就是额外的http请求会增加延迟
    • 子选项b:如果您确实使用某个MVC引擎,它已经通过某个封送servlet路由所有请求,该servlet决定调用哪些过滤器和servlet。扩展此逻辑以注入重写规则。此解决方案具有尽可能好的延迟,但不能在MVC引擎之间转移

    选项2(我可能会先实施)

    有一个cron作业,从数据库中读取规则,形成一个新的。htaccess文件,并将其放入相应的文件夹中。您不需要重新启动Apache,它会在每次请求时读取它。是的,它会稍微慢一点,但我打赌你无论如何都不会注意到,开发成本最多约1小时