错误情景:
使用tomcat部署程序,用web.xml配置后,启动程序,可以进入到登录页面,但是请求servlet报404错误,路径文件均存在,且能进到过滤器,但是无法跳转到制定路径文件
需要对tomcat配置以下几点:
- apache-tomcat-6.0.20\conf\web.xml中放开以下两段代码
<servlet>
<servlet-name>invoker</servlet-name>
<servlet-class>
org.apache.catalina.servlets.InvokerServlet
</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>invoker</servlet-name>
<url-pattern>/servlet/*</url-pattern>
</servlet-mapping>
原理:
简单的web程序,每写一个servlet都需要在web.xml中声明一下,对于企业级程序
来说,显然是不可能的,此时tomcat或者weblogic都提供了一个中间件 invoker,只要
声明该servlet,就可以将所有servlet进行注册。第二段代码是注册的映射路径。
- 针对tomcat6或者其他版本,有可能开启以上配置后,还是无法找到资源路径,此时需要在apache-tomcat-6.0.20\conf\context.xml配置以下代码
<Context reloadable="true" privileged="true">
<WatchedResource>WEB-INF/web.xml</WatchedResource>
</Context>
该代码只需要在原有的基础上增加两个属性配置:reloadable="true" privileged="true"
- 在apache-tomcat-6.0.20\conf\server.xml文件中有以下代码需要配置
这里需要配置的是docbase的值,该值指向项目打包的根目录。根目录的层级规范为: 第一层:各种静态文件(HTML,jsp),和web-inf 第二层:web-inf下面各种xml配置文件,jar包,classes文件夹 第三层:classes文件夹下面为各种编译的class文件