在JSP+Servlet模式中,创建了新的Servlet后经常会出现无法访问该Servlet的问题,即HTTP Status404错误:找不到网页或资源。
1、创建Servlet需要更新配置WEB-INF下的web.xml,关于配置web.xml:
<description>,<display-name>
____________________________________________
<description>站台描述</discription>
对站台做出描述.
<display-name>站台名称</display-name>
定义站台的名称
<servlet>
_____________________________________________
servlet元素包含两个子元素servlet-name和servlet-class.用来定义servlet类.
<servlet-name>Servlet的名称</servlet-name>
<servlet-class>包名.Servlet的名称</servlet-class>
范例:
<servlet>
<description>This is the descriptionof my J2EEcomponent</description>
<display-name>This is the displayname of my J2EEcomponent</display-name>
<servlet-name>SearchServlet</servlet-name>
<servlet-class>data.SearchServlet</servlet-class>
</servlet>
<servlet-mapping>
_____________________________________________
servlet-mapping元素包含两个子元素servlet-name和url-pattern.用来定义servlet所对应URL.
<servlet-name>Servlet的名称</servlet-name>
定义Servlet的名称.
<url-pattern>ServletURL</url-pattern>
定义Servlet所对应的RUL.例如:<url-pattern>/Servlet/Hello</url-pattern>
</servlet-mapping>
范例:
<servlet-mapping>
<servlet-name>LoginChecker</servlet-name>
<url-pattern>/LoginChecker</url-pattern>
</servlet-mapping>
<session-cofing>
__________________________________
<session-config>
session-config包含一个子元素session-timeout.定义web站台中的session参数.
<session-timeout>分钟</session-timeout>
定义这个web站台所有session的有效期限.单位为分钟.(默认为30分钟)
</session-config>
范例:
<session-config>
<session-timeout>20</session-timeout>
</session-config>
2.配置好了以后,确定你的访问路径是对的,http://localhost:8080/项目名/baseServlet.
3.看看WEB-INF/classes下有没有web.xml中所映射的类,注意你所写的Servlet如果带有包声明,在WEB-INF/classes下的类路径要带上完整的包结构路径。
4.如果以上都没有问题的话,到Tomcat的webapps目录下,找到你的那个项目,同样要配置里面的web.xml,并且这里的web.xml的配置内容要与WEB-INF下web.xml的配置内容一样。
一般来说,在Tomcat中webapps下的每个文件夹都是一个独立的Web应用,ROOT文件夹是Tomcat的一个默认的Web应用,你输入http://localhost:8888的时候,默认的访问就是ROOT文件夹下的index.html
对于一个简单的Web应用,你不能在ROOT这个Web应用嵌套另一个Web应用,对于静态页面来说,只要URL路径与真实的Web应用的目录结构路径一致,就能访问,但如果要访问Servlet,其class类文件必须放于Web应用(不要嵌套)的WEB-INF/classes目录下。