java servlet。重定向到静态页面不起作用

时间:2013-11-09 20:04:57

标签: java tomcat servlets

我有一个servlet,最初应该重定向到静态html页面(example.html)

public class TestServlet extends HttpServlet{

        public void doGet(HttpServletRequest request, HttpServletResponse response)
                throws IOException{

            response.sendRedirect("/example.html");
        }

}

但它不起作用,因为在重定向时它再次请求servlet而不是静态页面,然后重定向等。

为什么它总是要求servlet,我应该改变什么才能让它简单地重定向到我的example.html页面。

托管在Tomcat 7上的应用程序

UPD1:映射如下所示:

<servlet>
    <servlet-name>TestServlet</servlet-name>
    <servlet-class>com.web.TestServlet</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>TestServlet</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping> 

2 个答案:

答案 0 :(得分:1)

将此行添加到web.xml文件

<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.html</url-pattern>
</servlet-mapping>

它之前无法正常工作的原因,因为您只为请求配置了单个映射,然后由servlet处理。添加此映射,告诉您的应用程序要以不同(默认)方式处理html文件。

答案 1 :(得分:0)

您不需要修改web.xml。而是为sendRedirect函数参数提供正确的URL。请记住,sendRedirect功能会触发新的请求。