xml配置error-page问题

xml配置error-page问题

我在一个项目中xml配置一个error-page,路径没问题,错误页面也添加了isErrorPage="true",但是测试时就是不跳转错误页面

<?xml version="1.0" encoding="UTF-8"?>

<web-app version="2.5" 

xmlns="http://java.sun.com/xml/ns/javaee" 

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 

xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 

http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

  <display-name></display-name>

  

  <filter>

  <filter-name>CharsetEncodingFilter</filter-name>

  <filter-class>com.imooc.filter.CharsetEncodingFilter</filter-class>

  <init-param>

  <param-name>encoding</param-name>

  <param-value>utf-8</param-value>

  </init-param>

  </filter>

  

  <filter-mapping>

  <filter-name>CharsetEncodingFilter</filter-name>

  <url-pattern>*.do</url-pattern>

  </filter-mapping>

  

  <servlet>

    <servlet-name>ProductServlet</servlet-name>

    <servlet-class>com.imooc.servlet.ProductServlet</servlet-class>

  </servlet>


  <servlet-mapping>

    <servlet-name>ProductServlet</servlet-name>

    <url-pattern>/product/list.do</url-pattern>

  </servlet-mapping>

  

  <welcome-file-list>

    <welcome-file>index.jsp</welcome-file>

  </welcome-file-list>

  

  <error-page>

  <error-code>404</error-code>

  <location>/WEB-INF/views/error/404.jsp</location>

  </error-page>

</web-app>



错误页面

<%@ page language="java" import="java.util.*" pageEncoding="utf-8" isErrorPage="true"%>

<%

String path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

  <head>

    <base href="<%=basePath%>">

    

    <title>My JSP '404.jsp' starting page</title>

    

<meta http-equiv="pragma" content="no-cache">

<meta http-equiv="cache-control" content="no-cache">

<meta http-equiv="expires" content="0">    

<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">

<meta http-equiv="description" content="This is my page">

<!--

<link rel="stylesheet" type="text/css" href="styles.css">

-->


  </head>

  

  <body>

    

This is 404 error!

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

xxxxxxxxxxxxxxxx

xxxxxxxxxxxx

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

  </body>

</html>


正在回答

登陆购买课程后可参与讨论,去登陆

3回答

看下图,这是我9-12下的1.jsp页面,我点击提交之后,就会跳转到404页面。

http://img1.sycdn.imooc.com//climg/5b98c1eb00018b9907350226.jpg

效果如下图,注意他们的路径前要有工程名,你没有工程名,9-12工程下的web.xml的errorpage是无法启动的,建议跟着这个思路去修改你的代码,

http://img1.sycdn.imooc.com//climg/5b98c2210001050a07540162.jpg

如下是我的代码,你也可以试试,祝学习愉快~

  1. jsp代码

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>登录</title>
</head>
<body>
    <center>
        <!-- form表单中用到method="post"就post请问方式 -->
        <form action="http://localhost:8080/9-12/LoginServlet"
            method="post">
            <p>
                用户名:<input type="text" name="username">
            </p>
            <p>
                密&nbsp;&nbsp;码:<input type="password" name="password">
            </p>
            <p>
                <input type="submit" name="登录"> <input type="reset"
                    name="重置">
            </p>
        </form>
    </center>
</body>
</html>


chrismorgen 2018-09-12 14:01:20

你好同学,因为并不知道你操作的过程,所以我们只能一点一点排查问题,建议同学不要想着一下就把问题解决的,经过调试你的代码,我在你的web.xml中将过滤器的配置信息去掉,然后输入一个错误的路径,就可以启动errorpage了,你可以按照我的试一试,我模拟了你的errorpage路径

http://img1.sycdn.imooc.com//climg/5b98ab670001799602600342.jpg

web.xml的配置信息

<?xml version="1.0" encoding="UTF-8"?>

<web-app version="2.5" 

    xmlns="http://java.sun.com/xml/ns/javaee" 

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 

    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 

    http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">



  

  <welcome-file-list>

    <welcome-file>index.jsp</welcome-file>

  </welcome-file-list>

  

  <error-page>

      <error-code>404</error-code>

      <location>/WEB-INF/views/error/404.jsp</location>

  </error-page>

</web-app>

此处输入错误的访问路径,执行效果如下图,祝学习愉快~

http://img1.sycdn.imooc.com//climg/5b98ab9a0001d97a07010121.jpg

  • 提问者 qq_张黎明_2 #1
    如果只是输入错误的路径是可以访问错误页面,但是要在一个页面上设置一个按钮,但是按钮没有配置正确的路径,点击按钮只会跳转至Tomcat错误信息的404.如何跳转至错误页面???
    2018-09-12 14:47:38
chrismorgen 2018-09-12 11:31:26

这种问题之前发生过,可能是浏览器设置的问题,请问同学用的是什么浏览器,建议你使用火狐浏览器试试。祝学习愉快~

  • 提问者 qq_张黎明_2 #1
    我都试了,都没用,回答的一点意义都没有?
    2018-09-12 11:32:52
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
Java数据库开发与实战应用2018版
  • 参与学习           人
  • 提交作业       277    份
  • 解答问题       4297    个

Java数据库开发的必备技能,从流行的MySQL数据库开始,到Java原生的数据库管理接口JDBC的使用,再到常用的数据持久化框架MyBatis,让你向Java工程师的目标又迈进了一步!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师