Java のスキルを向上させるために、単純な j2ee フレームワーク (MVC) を構築しようとしています。
FrontServlet ですべてのリクエストを処理するように構築しました。私が使用したマッピングは次のとおりです。
web.xml :
<servlet>
<servlet-name>Front</servlet-name>
<servlet-class>test.FrontServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Front</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
私の問題は、FrontServlet から JSP にリクエストを転送すると、JSP リクエストが FrontServlet によって処理され、ビューがレンダリングされないことです。
- url-pattern "/*" を保持することで、この問題を解決するにはどうすればよいですか?
- パフォーマンスを低下させずにサーブレットで JSP をレンダリングする方法はありますか?
お返事ありがとうございます!
- 解決策 1 (@Bryan Kyle)
私はあなたのアドバイスに従おうとしています。このフィルターを作成しました:
public void doFilter(ServletRequest request,
ServletResponse response, FilterChain chain)
throws IOException, ServletException
{
HttpServletRequest req = (HttpServletRequest) request;
if(!req.getRequestURL().toString().endsWith("jsp"))
{
// I changed the servlet url-pattern to "/front.controller"
req.getRequestDispatcher("/front.controller").forward(req, response);
/*chain.doFilter(req, resp);*/
}
}
<filter>
<filter-name>Filter</filter-name>
<filter-class>test.Filter</filter-class>
</filter>
<filter-mapping>
<filter-name>Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
- そうですか?
ありがとう !