Jakarta ee 在JavaEE的每个页面上执行一个脚本

Jakarta ee 在JavaEE的每个页面上执行一个脚本,jakarta-ee,multilingual,Jakarta Ee,Multilingual,我正在尝试建立一个多语言网站,为此我必须识别用户lang 脚本还可以,但我不知道如何在所有页面上执行脚本 我有两个想法,但我认为有更好的解决办法 1) 在我的标签文件中执行我的脚本,该文件是我的页面模板,用于我的所有页面 2) 从galbal类扩展所有my类,galbal类在构造函数中执行脚本,并在所有子类中调用super 正如你所看到的,我的解决方案是不好的 感谢您的帮助此问题的一个常见解决方案更像是您的选项2 在父类的构造函数末尾调用一个新方法init()。在子函数中使用init()而不是构

我正在尝试建立一个多语言网站,为此我必须识别用户lang

脚本还可以,但我不知道如何在所有页面上执行脚本

我有两个想法,但我认为有更好的解决办法

1) 在我的标签文件中执行我的脚本,该文件是我的页面模板,用于我的所有页面

2) 从galbal类扩展所有my类,galbal类在构造函数中执行脚本,并在所有子类中调用super

正如你所看到的,我的解决方案是不好的


感谢您的帮助

此问题的一个常见解决方案更像是您的选项2


在父类的构造函数末尾调用一个新方法
init()
。在子函数中使用
init()
而不是构造函数好的,我找到了解决方案,我使用了过滤器

这是一个例子来解释

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

@WebFilter(filterName="Main")
public class ExempleFilter implements Filter {
    public void init( FilterConfig config ) throws ServletException {
        // ...
    }

    public void doFilter( ServletRequest request, ServletResponse response, FilterChain chain ) throws IOException,
        ServletException {
        // ...
        chain.doFilter(request, response);
    }

    public void destroy() {
        // ...
    }
}
所有的过滤代码都在doFIlter和chain.doFIlter(请求、响应)中;加载您的servlet

要完成此操作,必须将筛选器添加到路由器管理器(web.xml)


主要
/*

谢谢,但我无法在init或构造中引用HttpServletRequest请求,我需要它来使用我的cookie和会话。您能解释一下这个答案吗?如果其他用户也有同样的问题,详细的回答会很有帮助。
<filter-mapping>
    <filter-name>Main</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>