0

Jersey アプリケーションのコンテキスト ルートにアクセスするたびにウェルカム ページを作成したいと考えています。残念ながら、サーブレット マッピングは/*私の web.xml のように設定されており、このリンクによると、サーブレットとホームページを同じ場所に置くのは良くありません。現時点では、サーブレットの URL パターンを変更すると、多くのコードの変更が必要になるため、バックエンド コードを使用してウェルカム HTML ページを生成するだけで、悪い習慣を実行することになります。

これがすでに汚れた方法であることがわかったので、どうすればもう少しきれいにすることができるでしょうか? jsp および css ファイルをインポートするより良い方法はありますか? それらすべてを単一の文字列にハードコーディングしたくありません。:(

4

1 に答える 1

1

リクエストをインターセプトするフィルタを作成できます。フィルタでは、リクエスト URL が「/」であるかどうかを確認し、そうであれば、リクエストをウェルカム ページに転送します。

public class MyFilter implements Filter {
    private ServletContext servletContext;

    public void init(FilterConfig config) throws ServletException {
        servletContext = config.getServletContext();
    }

    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        String path = ((HttpServletRequest)request).getPathInfo();
        if(path.equals("/")){
            servletContext.getRequestDispatcher("/welcome.jsp").forward(request, response);
        } else {
            chain.doFilter(request,response);
        }
    }
}

web.xml でフィルターを適用します。

<filter>  
    <filter-name>welcomeFilter</filter-name>  
    <filter-class>the filter class</filter-class>  
</filter>  
<filter-mapping>  
    <filter-name>welcomeFilter</filter-name>  
    <url-pattern>/*</url-pattern>  
</filter-mapping>  
于 2013-05-14T04:38:39.613 に答える