版本:
如何解决: 1.Servlet调用问题 对于很多程序员开发的Servlet,如继承于HttpServlet的程序,想通过URL调用进行直接调用, 但是发现通过如:http://localhost:8080/mywebapp/servlet/com.aaa.bbb.MyServletTest 会出现错误,Tomcat提示找不到相应的资源,那是因为TOMCAT的缺省配置是禁止通过全类名 进行Servlet的调用的,如何打开此选项,看TOMCAT_HOME/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> <!-- The mapping for the invoker servlet --> <servlet-mapping> <servlet-name>invoker</servlet-name> <url-pattern>/servlet/*</url-pattern> </servlet-mapping> 对于第二段配置是关键,那是告诉TOMCAT所有/servlet/****的请求全部发向invoker的servlet, TOMCAT缺省是注释掉的,把它打开就行那,所有的WEBAPP都可以通过全路径进行调用servlet啦。 而对于invoker到底是什么,看第一段配置代码,所以当你对Tomcat的invoker实现不满意的话, 可以替换第一段配置代码中invoker的相应实现类。 注:对于tomcat中的Examples是可以通过全路径调用SERVLET那是因为,在Examples的web.xml 中使用了filter继续,截获了TOMCAT的缺省动作,相当于覆盖了TOMCAT的全局设置。对于web container的行为,请参见SUN规范。 <filter-mapping> <filter-name>Servlet Mapped Filter</filter-name> <servlet-name>invoker</servlet-name> </filter-mapping> <filter-mapping> <filter-name>Path Mapped Filter</filter-name> <url-pattern>/servlet/*</url-pattern> </filter-mapping> 2.JSP实时编译问题 <servlet> <servlet-name>jsp</servlet-name> <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class> <init-param> <param-name>logVerbosityLevel</param-name> <param-value>WARNING</param-value> </init-param> <init-param> <param-name>reloading</param-name> <param-value>true</param-value> </init-param> <init-param> <param-name>javaEncoding</param-name> <param-value>GBK</param-value> </init-param> <load-on-startup>3</load-on-startup> </servlet>
<servlet-mapping> <servlet-name>jsp</servlet-name> <url-pattern>*.jsp</url-pattern> </servlet-mapping> 3.乱码问题 <servlet> <servlet-name>jsp</servlet-name> <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class> <init-param> <param-name>logVerbosityLevel</param-name> <param-value>WARNING</param-value> </init-param> <init-param> <param-name>reloading</param-name> <param-value>true</param-value> </init-param> <init-param> <param-name>javaEncoding</param-name> <param-value>GBK</param-value> </init-param> <load-on-startup>3</load-on-startup> </servlet>
4.JSP编译调试问题 |