基于servlet应用程序的前端控制器的工作,但无法了解如何从前端contoller转发到常规控制器。
这是我的web.xml:
<servlet>
<servlet-name>FrontServlet</servlet-name>
<servlet-class>FrontServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>IndexServlet</servlet-name>
<servlet-class>application.controllers.IndexServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>FrontServlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>FrontServlet
public class FrontServlet extends HttpServlet {
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
ServletContext context= getServletContext();
RequestDispatcher rd = context.getRequestDispatcher("IndexServlet");
rd.forward(request, response);
}
}此代码返回:java.lang.NullPointerException。我使用的是WebLogic服务器。
发布于 2014-04-12 23:05:12
我根本没有尝试使用任何扩展,而是使用.do或。但是我会让它与.do一起工作,然后尝试改变它
发布于 2014-04-12 23:21:55
您没有为servletMapping提供IndexServlet和requestDispatcher工作在URL上。
在servletMapping中给出一个适当的web.xml,如下所示:
<servlet>
<servlet-name>FrontServlet</servlet-name>
<servlet-class>FrontServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>IndexServlet</servlet-name>
<servlet-class>application.controllers.IndexServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>FrontServlet</servlet-name>
<url-pattern>/frontServlet.html</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>FrontServlet</servlet-name>
<url-pattern>/indexServlet.html</url-pattern>
</servlet-mapping>在您的FrontServlet.java中,将url指定为"/indexServlet.html“。看起来不错。如果您正在转发的视图不可访问,则将引发NullPointerException。您的IndexServlet.java转发请求是否指向jsp/html?在这种情况下,检查jsp/html是否可以使用http://{webapp}/loginjsp.jsp访问。
https://stackoverflow.com/questions/23036384
复制相似问题