2016-04-26 112 views
-1

所以,我看到了有关如何通过添加在web.xml中有以下重定向404名错误的请求自定义JSP页面的多个线程:将404错误重定向到Servlet而不是JSP页面?

<error-page> 
    <error-code>404</error-code> 
    <location>/404page.jsp</location> 
</error-page> 

这种方法的问题在于,URL显示在以下页面这种结构:

www.mydomain.com/404page.jsp 

.JSP部分烧伤我出去,因为所有其他网页都通过Servlet的映射,因此的.jsp是不是在它们可见。

如何将用户重定向到Servlet而不是404page.jsp JSP页面?这样的网址是:

www.mydomain.com/404 

这可能吗?如果没有,隐藏URL的.jsp部分的方法是什么?

+0

你试图把/404? – Bax

+0

这个问题很奇怪。通常,错误页面的URL不会显示在浏览器的地址栏中,因为它默认由** forward **而不是重定向显示。此外,错误页面应放置在'/ WEB-INF'文件夹中,以防止最终用户直接访问(和书签/共享/索引)它们。我建议你退后一步,调查为什么在你的情况下,他们的行为就好像他们被重定向一样。这首先是错误的。 – BalusC

回答

1

您可以创建一个404Handler Servlet和映射它像下面

<servlet-mapping> 
     <servlet-name>404Handler</servlet-name> 
     <url-pattern>/404</url-pattern> 
</servlet-mapping> 
<error-page> 
    <error-code>404</error-code> 
    <location>/404</location> 
</error-page> 
+0

什么是'404'?那是Servlet的名字吗? – Dinuka

+1

404Handler是Servlet的名称。/404是指向它的网址。 – Sanj

+0

它的工作表示感谢! :)但是,当我输入错误的URL时,我的404不会被调用。它仍然显示一个基于浏览器的错误,说'错误404'。为什么它没有检测到404错误? – Dinuka

相关问题