在每个页面java-ee上执行一个脚本

时间:2013-05-01 16:00:30

标签: java-ee multilingual

我正在尝试构建一个multilang网站,为此我必须识别用户lang

脚本没问题,但我不知道如何在我的所有页面上执行我的脚本。

我有两个想法,但我认为有更好的解决方案。

1)在我的标签文件中执行我的脚本,这是我的页面模板,并在我的所有页面中使用。

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

你可以看到我的解决方案很糟糕

感谢您的帮助

2 个答案:

答案 0 :(得分:0)

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

在父类的构造函数结束时,调用一个新方法init()。在孩子中使用init()而不是构造函数

答案 1 :(得分:0)

好的,我找到了解决方案,我使用过滤器

这是一个解释的样本

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>
相关问题