为了提高我的 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 "/*" 来解决这个问题?
- 有没有办法在没有性能损失的情况下在 Servlet 中呈现 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>
- 这样对吗?
谢谢 !