404错误的调试分析 - 运行JSP动态网页Tomcat老是报404错误(详解)
2015-05-23 15:48
639 查看
一、开发JSP动态网页时,我们通过浏览器请求服务器上的某个资源的时候,或许会经常遇到报404错误的bug。
问题分析:出现这个bug的原因可能处在JSP网页里面,也可能是Servlet里面。假如要访问的资源不存在,就会产生404错误。
(1)404错误可能是应用本身的问题。例如没有正常部署、web.xml部署时Servlet名字写错了
(2)也可能是文件的问题,JSP文件不存在、JSP名字打错了,或者Servlet没有配置
二、关于servlet配置参数url-pattern(Servlet路径)的几种不同表示法,或者讲Servlet的几种访问方式,下面以代码的形式展示并介绍:
三、404错误常见案集棉:
【1】url-pattern标签/参数不对,此时查看tomcat的work\Catalina\localhost目录,看不到该JSP编译后的java源文件和类文件。如:
"<url-pattern>/ShowContact</url-pattern>"误写成"<servlet-url>/ShowContact</servlet-url>"
(ps:一般的IDE工具中web.xml文件都是在创建工程的时候自动生成的,然后Servlet配置也是在创建Servlet的时候自动生成的。也许有时候是我们自己在配置,又或许不小心改了点东西)
【2】web.xml配置Servlet的时候,Servlet的名字打错了,与Servlet文件的名字不一致(较为常见)
【3】web.xml配置Servlet的时候,servlet-class参数(应当是Servlet的完整类名)不对,即Servlet的类的完整路径不对
下面与大家分享一下获取Servlet完整类名的快捷方式:
1、打开需要配置Servlet的Servlet文件,找到servlet类名(Public class修饰的)
2、光标移到servlet类名上面,双击它(这时它会变颜色)
3、然后鼠标右击,会出现一个下拉菜单,点击“Copy Qualified Name”(类似复制的操作)
4、然后回到要配置其类路径的地方,粘贴即可(其实现在任意地方粘贴都会出现该Servlet类的完整类名)。
(操作实例:双击某Servlet的文件(ShowContact.java)的类名ShowContact ---> 鼠标右击它 ---> 点击“Copy Qualified Name” ---> 粘贴。接下来就会出现该Servlet类的完整类名“cn.ccsu.web.ShowContact”,而不是该Servlet的名字了)
【4】web.xml中welcome-file-list未配置;或者配置了,但其中welcome-file的参数错了。即其参数值*.jsp或者*.htm或者*.html的名字不对,与网页文件的名字不一致
【5】找不到资源,即文件不存在(较为常见),即路径中的资源名字不对,打错了;或者该资源本来就没有。
问题分析:出现这个bug的原因可能处在JSP网页里面,也可能是Servlet里面。假如要访问的资源不存在,就会产生404错误。
(1)404错误可能是应用本身的问题。例如没有正常部署、web.xml部署时Servlet名字写错了
(2)也可能是文件的问题,JSP文件不存在、JSP名字打错了,或者Servlet没有配置
二、关于servlet配置参数url-pattern(Servlet路径)的几种不同表示法,或者讲Servlet的几种访问方式,下面以代码的形式展示并介绍:
<?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> <servlet> <servlet-name>TestServlet</servlet-name> <servlet-class>com.ccsu.zlWeb.TestServlet</servlet-class> </servlet> <!-- 默认方式访问,使用单个斜杠("/")作为url-pattern参数值 --> <servlet-mapping> <servlet-name>TestServlet</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <!-- url-pattern参数值为[*.扩展名 ](扩展名是任意的)访问 <servlet-mapping> <servlet-name>TestServlet</servlet-name> <url-pattern>/zl.ksgfj</url-pattern> </servlet-mapping> --> <!-- 路径映射访问,url-pattern参数值为[/*/*],"*"可取任意值 <servlet-mapping> <servlet-name>TestServlet</servlet-name> <url-pattern>/xdy/fhdsdjklf</url-pattern> </servlet-mapping> --> <!-- 精确匹配路径访问,url-pattern参数值为对应于web应用程序上下根的路径 <servlet-mapping> <servlet-name>TestServlet</servlet-name> <url-pattern>/servlet/TestServlet</url-pattern> </servlet-mapping> --> <!-- 注意,采用默认方式访问,需把此参数删掉,另外还需把index.jsp也删掉 <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> --> </web-app>
三、404错误常见案集棉:
【1】url-pattern标签/参数不对,此时查看tomcat的work\Catalina\localhost目录,看不到该JSP编译后的java源文件和类文件。如:
"<url-pattern>/ShowContact</url-pattern>"误写成"<servlet-url>/ShowContact</servlet-url>"
(ps:一般的IDE工具中web.xml文件都是在创建工程的时候自动生成的,然后Servlet配置也是在创建Servlet的时候自动生成的。也许有时候是我们自己在配置,又或许不小心改了点东西)
【2】web.xml配置Servlet的时候,Servlet的名字打错了,与Servlet文件的名字不一致(较为常见)
【3】web.xml配置Servlet的时候,servlet-class参数(应当是Servlet的完整类名)不对,即Servlet的类的完整路径不对
下面与大家分享一下获取Servlet完整类名的快捷方式:
1、打开需要配置Servlet的Servlet文件,找到servlet类名(Public class修饰的)
2、光标移到servlet类名上面,双击它(这时它会变颜色)
3、然后鼠标右击,会出现一个下拉菜单,点击“Copy Qualified Name”(类似复制的操作)
4、然后回到要配置其类路径的地方,粘贴即可(其实现在任意地方粘贴都会出现该Servlet类的完整类名)。
(操作实例:双击某Servlet的文件(ShowContact.java)的类名ShowContact ---> 鼠标右击它 ---> 点击“Copy Qualified Name” ---> 粘贴。接下来就会出现该Servlet类的完整类名“cn.ccsu.web.ShowContact”,而不是该Servlet的名字了)
【4】web.xml中welcome-file-list未配置;或者配置了,但其中welcome-file的参数错了。即其参数值*.jsp或者*.htm或者*.html的名字不对,与网页文件的名字不一致
【5】找不到资源,即文件不存在(较为常见),即路径中的资源名字不对,打错了;或者该资源本来就没有。
相关文章推荐
- eclipse上tomcat运行动态网页404的解决方法(并不完美但有效)
- Tomcat7调试运行环境搭建与源代码分析入门
- eclipse下的Tomcat配置及jsp网页调试
- JSP第一次运行tomcat7.0的404错误
- 我在eclipse中启动Tomcat8.5之后,运行项目下的JSP文件,总是报404错误,但是访问http://localhost:8080/地址却可以正常访问
- 关于部署好tomcat的环境下 jsp文件在eclipse中能运行,但是在浏览器打开时显示404错误的个人笔记
- Tomcat7调试运行环境搭建与源代码分析入门
- Tomcat5.5.23中关于动态网页(JSP,JSF)的BUG!!!
- eclipse下的Tomcat配置及jsp网页调试
- Tomcat7调试运行环境搭建与源代码分析
- Eclipse里添加Tomcat并且部署JSP项目(动态网页)
- JSP动态网页程序设计详解
- web开发(脚本和动态语言) java / jsp tomcat 启动分析
- JSP动态网页程序设计详解
- jsp tomcat7.0 网页post/get乱码 详细分析
- Tomcat7调试运行环境搭建与源代码分析入门
- Tomcat7调试运行环境搭建与源代码分析入门
- Tomcat7调试运行环境搭建与源代码分析入门 Tomcat7的核心架构图
- eclipse下的Tomcat配置及jsp网页调试
- GZIP压缩原理分析(27)——第五章 Deflate算法详解(五18) 动态哈夫曼编码分析(07) LZ77过程(06)