请教一个关于在servlet中配置Web.xml的问题
我在eclipse中创建了一个tomcat project,默认放在workplace的testservlet文件夹然后我创建了一个servlet文件Test.java,放在testservlet\WEB-INF\src下,编译后的类文件放在testservlet\WEB-INF\classes下,修改WEB-INF下的Web.xml文件为:
<?xml version= "1.0 " encoding "ISO-8859-1 "?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN "
"http://java.sun.com/j2ee/dtds/web-app_2_2.dtd ">
<web-app>
<servlet>
<servlet-name> Test </servlet-name>
<servlet-class> Test </servlet-class>
</servlet>
<servlet-mapping>
<servlet-name> Test </servlet-name>
<url-pattern> /Test </url-pattern>
</servlet-mapping>
</web-app>
最后在浏览器下输入http://localhost:8080/testservlet/Test ,但结果却是:
HTTP Status 404 - /testservlet/Test
------------------------------------
type Status report
message /testservlet/Test
description The requested resource (/testservlet/Test) is not available.
------------------------------------
Apache Tomcat/6.0.10
后来我又把testservlet的整个文件复制到 tomcat的安装目录的webapps目录下,重新在浏览器输入http://localhost:8080/testservlet/Test ,结果还是一样,请问这是为什么??
顺便说一下,server.xml已经被eclise自动加上了
<Context path= "/testservlet " reloadable= "true " docBase= "D:\eclipse\workspace\testservlet " workDir= "D:\eclipse\workspace\testservlet\work " />
而且我的Test.java文件是绝对没有错的.请问是不是我的Web.xml配置错了?还是其它的错误?
------解决方案--------------------改为:
<web-app>
<servlet>
<servlet-name> Test </servlet-name>
<servlet-class> Test </servlet-class>
</servlet>
<servlet-mapping>
<servlet-name> Test </servlet-name>
<url-pattern> /testservlet/Test </url-pattern>
</servlet-mapping>
</web-app>
------解决方案--------------------你看一下你的工程目录结构就会发现eclipse把所有的 CLASS文件放在了一个和你源文件目录结构相同的一系列目录下了,那个结构下所有的文件都是CLASS文件
TOMCAT在运行SERVLET的时候直接用的是CLASS文件,而不是你的源文件,如果在我说的那个目录下没有CLASS文件就会报错
------解决方案--------------------看一下你的 testServlet/WEB-INF/classes 中有没有那个class 文件!!
------解决方案--------------------对
------解决方案--------------------servlet文件Test.java,放在testservlet\WEB-INF\src下有问题
不该把Test.java放在WEB-INF\src
把src提出来,servlet文件不该放在WEB-INF下,当编译servlet文件时,自动把.class 文件放到
WEB-INF下的classes下了!
试试看!