我有一个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>
答案 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
功能会触发新的请求。