Tomcat中配置自定义404错误页面

404,50x这种错误经常遇到。

如果%CATALINA_HOME%\conf\web.xml和具体应用中都有设置%CATALINA_HOME%\webapps\ROOT\WEB-INF\web.xml

则应用中的生效。

如何设置一个友好的用户体验,以windows环境为例:

添加发生异常时,默认的文件,文件位置如下(如果没有设置reloadable为true或autoDeploy="true",则需要重启tomcat让更改的web.xml生效):

(1)%CATALINA_HOME%\conf\web.xml中web-app节点中添加

    <error-page>
        <error-code>404</error-code>
        <location>/notFileFound.jsp</location> <!--定义的页面,必须以“/”开头-->
    </error-page>

效果展示:
正常情况:

出现404时的场景:

%CATALINA_HOME%\webapps\ROOT\notFileFound.jsp

(2)%CATALINA_HOME%\webapps\ROOT\WEB-INF\web.xml中web-app节点中添加和(1)中相同格式的内容,
为了方便演示,此处使用404.html


看看不存在时的效果:

360浏览器对tomcat的配置的404有屏蔽作用:

如果想让报404时直接跳转,则可以在404.html中增加一个跳转的动作即可:

<html>
<head>
<meta http-equiv="Content-Language" content="zh-CN">
<meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb2312">
<meta http-equiv="refresh" content="0.1;url=http://www.cnblogs.com"> 
<title></title>
</head>
<body>
</body>
</html> 

3.不仅可以根据html的错误代码来条转页面,也可以按异常类型来进行跳转,例如:

<error-page>      <exception-type>javax.servlet.ServletException</exception-type>      <location>/errorhandler.jsp</location>  </error-page>  

不仅可以使用jsp内置exception对象来取得异常,也可以取得request中的attribute。例如:

<%@page contentType="text/html;charset=Big5" isErrorPage="true"%>  <html>  <head><title>错误信息</title></head>  <body>       错误码: <%=request.getAttribute("javax.servlet.error.status_code")%> <br>       信息: <%=request.getAttribute("javax.servlet.error.message")%> <br>       异常: <%=request.getAttribute("javax.servlet.error.exception_type")%> <br>  </body>  </html>  

http://www.cnblogs.com/yjhrem/articles/2206878.html

时间: 2024-10-23 23:35:46

Tomcat中配置自定义404错误页面的相关文章

在ASP.NET MVC3项目中,自定义404错误页面

在Web开发中,用户体验是至关重要的,一个友好的网站自然少不了自定义404错误页面. 让笔者为大家介绍404错误页面在ASP.NET MVC3项目中的配置: 第一步,在项目的Web.config文件中找到节点<system.web> 在此节点下添加配置        <customErrors mode="On" defaultRedirect="~/Index/Error404">          <error statusCode

Nginx配置error_page 404错误页面

问题由来 昨天一网友在segmentfault.com上提问,无法做404重定向 打开对方的网站随便输入一个错误的地址发现给出了404代码,但是页面完全空白,并没有显示404页面的设定内容 当时就明白啥情况了,只要在nginx.conf配置文件上加上一句 fastcgi_intercept_errors on,就可以了 如果没这句的不管是error_page 还是nginx自带的404跳转都不能正常显示(访问不存在的php页面时可能会显示“No input file specified.”) 什

nginx自定义404错误页面

在Nginx环境下配置自定义的404错误页面转向,避免给用户展示生硬.不友好的错误信息.可以给出如下提示:很抱歉,您访问的页面不存在或已被删除. 注意事项: 一.修改nginx.conf之前做好备份,避免出现问题. 二.定义页面时注意路径是否正确. ①首先创建一个404错误时显示的页面,如放在你的网站根目录下的404.html.(内容随便) ②在nginx.conf中的http区域加入fastcgi_intercept_errors on: http { ... fastcgi_intercep

apache下自定义404错误页面

404页面的目的是:告诉浏览者其所请求的页面不存在或链接错误,同时引导用户使用网站其他页面而不是关闭窗口离开. 很多开源系统包括CMS系统.Blog系统等不提供404页面或提供的404页面并未达到SEO的要求,这让网站的权威性大打折扣. 404页面该达到怎么样的效果才符合SEO要求? 搜索引擎通过Http状态码来识别网页的状态.当搜索引擎获得了一个错误链接时,网站应该返回404状态码,告诉搜索引擎放弃对该链接的索引.而如果返回200或302状态码,搜索引擎就会为该链接建立索引,这导致大量不同的链

win server 企业 2008 iis自定义404错误页面

今天客户找来在2008中让设置404错误...说的我好纠结.下面是步骤: 先进入iis管理,点击网页右边出现iis框中选中错误页 勾中右边编辑 因为客户的网页是动态的,所以选择第二个.选择后点确定 最后完成 有一个静态供参考: http://jingyan.baidu.com/article/046a7b3ec43d42f9c27fa93a.html

lnmp 在nginx中配置相应的错误页面error_page

1. 创建自己的404.html页面 2.更改nginx.conf在http定义区域加入: fastcgi_intercept_errors on; 3.更改nginx.conf(或单独网站配置文件,例如在nginx -> sites-enabled下的站点配置文件 ) 中在server 区域加入: error_page 404 = /404.html 或者 error_page 404 = http://www.xxx.com/404.html 4.更改后重启nginx,,测试nginx.co

ASP.NET 在IIS7.5下自定义404错误页面的方法

.net 4.0 本机调试时一切正常,配置如下 <customErrors redirectMode="ResponseRewrite" mode="On" defaultRedirect="~/PageStatus/Page_404.aspx">      <error statusCode="404" redirect="~/PageStatus/Page_404.aspx" />

NGINX 配置404错误页面转向

什么是404页面 如果碰巧网站出了问题,或者用户试图访问一个并不存在的页面时,此时服务器会返回代码为404的错误信息,此时对应页面就是404页面.404页面的默认内容和具体的服务器有关.如果后台用的是NGINX服务器,那么404页面的内容则为:404 Not Found 为什么要自定义404页面 在访问时遇到上面这样的404错误页面,我想99%(未经调查,估计数据)的用户会把页面关掉,用户就这样悄悄的流失了.如果此时能有一个漂亮的页面能够引导用户去他想去的地方必然可以留住用户.因此,每一个网站都

nginx下配置404错误页面

1.创建自己的404.html页面,并放于网站根目录. 2.更改nginx.conf在http定义区域加入: fastcgi_intercept_errors on; 3.更改nginx.conf(或单独的网站配置文件) 在server 区域加入: error_page 404 /404.html 或者 error_page 404 http://www.xxx.com/404.html(不建议用这个绝对路径,有人反映会返回200,但是我测试是可以的,两边不要=) 4.测试nginx.conf正