我正在尝试建立一个多语言网站,为此我必须识别用户语言
脚本没问题,但我不知道如何在我的所有页面上执行我的脚本。
我有两个想法,但我认为有更好的解决方案。
1)在我的标签文件中执行我的脚本,这是我的页面模板并在我的所有页面中使用。
2) 从一个 galbal 类扩展我的所有类,该类在构造函数中执行脚本并在所有子类中调用 super
如您所见,我的解决方案很糟糕
谢谢您的帮助
我正在尝试建立一个多语言网站,为此我必须识别用户语言
脚本没问题,但我不知道如何在我的所有页面上执行我的脚本。
我有两个想法,但我认为有更好的解决方案。
1)在我的标签文件中执行我的脚本,这是我的页面模板并在我的所有页面中使用。
2) 从一个 galbal 类扩展我的所有类,该类在构造函数中执行脚本并在所有子类中调用 super
如您所见,我的解决方案很糟糕
谢谢您的帮助
好的,我找到了解决方案,我使用过滤器
这是一个解释的示例
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(request, response); 加载你的 servlet
要完成,您必须将过滤器添加到路由器管理器(web.xml)
<filter-mapping>
<filter-name>Main</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
此问题的一个常见解决方案更像您的选项 2。
在父类的构造函数结束时调用一个新方法init()
。并在孩子使用init()
而不是构造函数