404错误的调试分析 - 运行JSP动态网页Tomcat老是报404错误(详解)

一、开发JSP动态网页时,我们通过浏览器请求服务器上的某个资源的时候,或许会经常遇到报404错误的bug。

问题分析:出现这个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】找不到资源,即文件不存在(较为常见),即路径中的资源名字不对,打错了;或者该资源本来就没有。

时间: 2024-10-12 08:55:30

404错误的调试分析 - 运行JSP动态网页Tomcat老是报404错误(详解)的相关文章

登陆tomcat首页报404的问题

1.问题描述: 将server启动以后,却发现输入http://localhost:8080/或http://127.0.0.1:8080/报404错误.访问动态web工程也会如此. 2.解决方法: ①首先,找到servers标签(找不到的话见图一所示),在已经配置好的tomcat中Remove掉所有项目. 图一 ②然后,双击"Tomcat v6.0 server at localhost",这时,在你的编辑窗口会出来一个关于tomcat配置的UI界面 图二 接下来,如图二所示,在这个

JSP页面中EL表达式语言的使用详解

JavaBean在JSP中的局限 获取JavaBean属性必须要实例化 强制类型转化 <% Employee employee = (Employee)request.getAttribute("employee"); Computer comp = employee.getComputer(); String manufacturer = comp.getManufacturer(); %> 如果页面编写出现逻辑错误,将会导致代码执行错误,并且JSP页面编译页面时也会产生

解决eclipse项目在浏览器中启动时老是报404错误可是路径没错

首先在服务器上启动,即点击下面圈住位置,再到浏览器上运行 成功

在LAMP环境下搭建JSP动态网页

开发环境Linux的版本号Linux localhost.localdomain 2.6.32-358.el6.x86_64 #1 SMP Tue Jan 29 11:47:41 EST 2013 x86_64 x86_64 x86_64 GNU/Linux? 1.先下载下面软件:? Apache-Tomcat? eclipse-j2ee? 注意:要是你的Linux没有安装jdk,请先自行安装,并配置好环境变量? Apache-Tomcat?下载http://yunpan.cn/cwmP7UGB

【转】VS2013动态库文件的创建及其使用详解

一.VS2013动态库文件的创建 1.新建项目,win32,win32项目,输入项目名称,例如MakeDll. 2.”确定“——”下一步“,选择”DLL“选项,再点”完成“: 3.菜单栏选择”项目“——>”添加新项“,来创建头文件MakeDll.h. 在MakeDll.h中输入以下例子代码: 1 #ifdef DLL_API//如果已经定义就什么都不做 2 //nothing to do 3 #else //否则定义DLL_API 4 #define DLL_API __declspec(dll

Docker入门 安装Tomcat以及报404解决方案

时间:2020/1/18 17:34:09 浏览:24 来源:互联网 记录简单的在Docker 上安装Tomcat 首先我是在云服务器上(Centos系统)安装的Docker,我们需要在https://hub.docker.com/ 上查找Tomcat镜像 [[email protected]_0_17_centos ~]# docker pull tomcat 拉取完官方的Tomcat的镜像后,我们可以在本地镜像列表里查到 REPOSITORY 为 tomcat 的镜像, [[email pr

jsp 九大内置对象和其作用详解

JSP中一共预先定义了9个这样的对象,分别为:request.response.session.application.out.pagecontext.config.page.exception 1.request对象 request 对象是 javax.servlet.httpServletRequest类型的对象. 该对象代表了客户端的请求信息,主要用于接受通过HTTP协议传送到服务器的数据.(包括头信息.系统信息.请求方式以及请求参数等).request对象的作用域为一次请求. 2.res

Vue.js 源码分析(十七) 指令篇 v-if、v-else-if和v-else 指令详解

v-if 指令用于条件性地渲染一块内容.这块内容只会在指令的表达式返回 truthy 值的时候被渲染. v-else-if,顾名思义,充当 v-if 的“else-if 块”,可以连续使用: 也可以使用 v-else 指令来表示 v-if 的“else 块”: 挺好理解的,就和大多数的语言的if()....else if()...else逻辑语句是一样的,例如: <!DOCTYPE html> <html lang="en"> <head> <

Java Web学习(2):静态网页与动态网页

一静态网页 (1)静态网页概述 在网站设计中,纯粹HTML(标准通用标记语言下的一个应用)格式的网页通常被称为"静态网页",静态网页是 标准的HTML文件,它的文件扩展名是.htm..html,可以包含文本.图像.声音.FLASH动画.客户端脚本和ActiveX 控件及JAVA小程序等.静态网页是网站建设的基础,早期的网站一般都是由静态网页制作的. 静态网页是相对于动态网页而言,是指没有后台数据库.不含程序和不可交互的网页.静态网页相对更新起来比 较麻烦,适用于一般更新较少的展示型网站