如果只配置拦截类似于*.do格式的url,则对静态资源的访问是没有问题的,但是如果配置拦截了所有的请求(如我们上面配置的“/”),就会造成js文件、CSS文件、图片文件等静态资源无法访问
一般Web应用服务器默认的Servlet名称是"default",所以这里我们激活Tomcat的defaultServlet来处理静态文件
Tomcat, Jetty, JBoss, and GlassFish 默认 Servlet的名字 -- "default" Resin 默认 Servlet的名字 -- "resin-file" WebLogic 默认 Servlet的名字 -- "FileServlet" WebSphere 默认 Servlet的名字 -- "SimpleFileServlet" 如果你所有的Web应用服务器的默认Servlet名称不是"default",则需要通过default-servlet-name属性显示指定
<filter> <filter-name>struts2</filter-name> <!-- org.apache.struts2.dispatcher.FilterDispatcher --> <!-- org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter --> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>*.action</url-pattern> </filter-mapping> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.action</url-pattern> <url-pattern>/js/*</url-pattern> <url-pattern>/css/*</url-pattern> <url-pattern>/images/*</url-pattern> <url-pattern>/image/*</url-pattern><!-- <url-pattern>/article/*</url-pattern> --></servlet-mapping> <!-- springmvc配置 --> <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:springmvc-servlet.xml</param-value> </init-param> <load-on-startup>2</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springmvc</servlet-name> <url-pattern>/selfhelp/*</url-pattern> </servlet-mapping>
新闻热点
疑难解答