【问题标题】:Master web.xml to use in all webapp projects掌握 web.xml 以在所有 webapp 项目中使用
【发布时间】:2016-11-01 06:58:36
【问题描述】:

我正在使用 java 1.7 在 Eclipse Mars 2 中开发多个 Web 应用程序。我使用 Maven 构建文件并使用 jboss (WildFly) 插件对其进行测试。他们每个人都使用 web.xml 并共享 90% 的逻辑。它们都使用 spring,它们都使用相同的会话配置、相同的过滤器等。不同之处在于授权检查和安全角色。

最近我不得不做一些更新,单独更新所有 web.xml 是负担。我正在寻找一种解决方案来定义一个包含所有常见逻辑的“web.xml”父文件或主文件,然后注入小的特定部分。我有什么选择?

【问题讨论】:

    标签: java eclipse maven web.xml


    【解决方案1】:

    我会尽可能多地从 web.xml 移到类的注释中。例如,在过滤器上,您可以执行以下操作:

    import javax.servlet.Filter;
    import javax.servlet.annotation.WebFilter;
    import javax.servlet.annotation.WebInitParam;
    
    @WebFilter(filterName = "TimeOfDayFilter",
    urlPatterns = {"/*"},
    initParams = {
        @WebInitParam(name = "mood", value = "awake")})
    public class TimeOfDayFilter implements Filter {
    

    (取自here

    通过这种方式,您已将 web.xml 中完成的大部分传统配置移至 Java 类中。 servlet 也可以做到这一点。

    请注意,这并不总是正确的答案。例如,在过滤器中,如果您使用的是 web.xml,则可以对它们进行排序(即,有一个过滤器链)。但是,您可以从 web.xml 中移出越多越好。

    【讨论】:

    • 关于过滤器顺序:你是说所有过滤器都被执行,但顺序是随机的/由servlet容器决定?或者你的意思是只有一个过滤器会运行?如果是后者,是哪一个?
    • 顺序不确定 - 在 web.xml 中,过滤器按照它们声明的顺序运行。带注释,是随机的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-26
    • 2012-06-02
    • 1970-01-01
    • 2011-12-29
    • 2011-05-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多