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