RequestDispatcher:Servlet映射无法正常工作

时间:2013-03-26 09:16:39

标签: java java-ee dispatcher

令人困惑。不要有任何想法在这里发生什么:

我想部署一个简单的WAR项目。两个HttpServlet,一个只是将请求转发给另一个:

...
String[] selectedOptionsLabels = ...
req.setAttribute("checkedLabels", selectedOptionsLabels);
try {
   req.getRequestDispatcher("/confirmationservlet.do").forward(req, resp);
}
...

当我尝试在表单上设置一些值时,它在没有调度程序的情况下工作得很好,但是当我尝试这个例子时,我的浏览器无法处理servlet。它试图下载文件confirmationservlet.do。混乱。

似乎存在映射问题,但我无法弄清楚,因为部署也可以正常工作。

你有什么想法吗?

这是我的web.xml(没有外部web-app-tag)< ---仅用于测试目的,知道有注释。

<servlet>
    <servlet-name>FormHandlerServlet</servlet-name>
    <servlet-class>
      de.lancom.formhandling.FormHandlerServlet
    </servlet-class>    
</servlet>

<servlet-mapping>
    <servlet-name>FormHandlerServlet</servlet-name>
    <url-pattern>/formhandlerservlet.do</url-pattern>
</servlet-mapping>

<servlet>
    <servlet-name>ConfirmationServlet</servlet-name>
    <servlet-class>
      de.lancom.formhandling.ConfirmationServlet
    </servlet-class>    
</servlet>

<servlet-mapping>
    <servlet-name>ConfirmationServlet</servlet-name>
    <url-pattern>/confirmationservlet.do</url-pattern>
</servlet-mapping> 

<welcome-file-list>
  <welcome-file>dataentry.html</welcome-file>
</welcome-file-list>

1 个答案:

答案 0 :(得分:1)

尝试以下方法:

    HttpServletResponse#sendRedirect()

发送重定向。

     response.sendRedirect("/confirmationservlet.do");