日期:2014-05-18  浏览次数:20709 次

请教一个关于在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下了!

试试看!