学习JSP/Servlet的过程中,都认为servlet必须要在web.xml中做映射,然后才能访问!这几天在看别人的代码的时候,发现没在 web.xml中做映射。感觉很奇怪,这怎么能访问呢!请教了个同事,下面就说说,具体怎么做,才能在在Tomcat中访问没有做映射的Servlet。
Tomcat有一个类org.apache.catalina.servlets.InvokerServlet,他负责处理那些没有做映射的 Servlet。在Tomcat安装目录下的conf/web.xml中,系统默认把 org.apache.catalina.servlets.InvokerServlet的注册与映射注释了。
所以,去掉注释后,重新启动Tomcat。然后就可以按照:http://localhost:8080/应用程序路径(path)/servlet/yourservlet的格式来访问没有进行映射的servlet了。
如果在在启动Tomcat时报错,说
org.apache.catalina.servlets.InvokerServlet is privileged and cannot be loaded by this web application.
使tomcat应用无法加载.可以按照以下解决办法处理:
在conf/context.xml中的<Context>标签中添加参数privileged="true",即将其修改为
<Context reloadable="true" privileged="true">
重启Tomcat.