SpringMVC配置web.xml中welcome-file-list不起作用

本文介绍了解决SpringMVC应用中出现404错误的方法,主要通过两种方式实现:一是使用<mvc:default-servlet-handler/>来处理静态资源请求;二是利用<mvc:resources/>进行静态资源处理并提供额外功能。

问题描述:访问http://10.22.34.28/SpringMVC_Spring_mybatis报404页面找不到错误

定位:是web.xml中配置的welcome-file-list不起作用?
解决方式:在spring-mvc.xml配置文件中加上<mvc:default-servlet-handler />

原理

方法1.采用<mvc:default-servlet-handler />

<mvc:default-servlet-handler />
在springMVC-servlet.xml中配置<mvc:default-servlet-handler />后,会在Spring MVC上下文中定义一个org.springframework.web.servlet.resource.DefaultServletHttpRequestHandler,
它会像一个检查员,对进入DispatcherServlet的URL进行筛查,如果发现是静态资源的请求,就将该请求转由Web应用服务器默认的Servlet处理,如果不是静态资源的请求,才由DispatcherServlet继续处理。

一般Web应用服务器默认的Servlet名称是"default",因此DefaultServletHttpRequestHandler可以找到它。如果你所有的Web应用服务器的默认Servlet名称不是"default",则需要通过default-servlet-name属性显示指定:

<mvc:default-servlet-handler default-servlet-name="所使用的Web服务器默认使用的Servlet名称" />

方法2.采用<mvc:resources />

<mvc:default-servlet-handler />将静态资源的处理经由Spring MVC框架交回Web应用服务器处理。而<mvc:resources />更进一步,由Spring MVC框架自己处理静态资源,并添加一些有用的附加值功能。

转载于:https://www.cnblogs.com/xxj-bigshow/p/7196243.html

<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.3" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_3.xsd"> <display-name>Archetype Created Web Application</display-name> <welcome-file-list> <welcome-file>login.jsp</welcome-file> </welcome-file-list> <!-- 配置spring资源 --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:application.xml</param-value> </context-param> <!-- 乱码问题 --> <filter> <filter-name>CharacterEncodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>utf-8</param-value> </init-param> </filter> <init-param> <param-name>forceEncoding</param-name> <param-value>true</param-value> </init-param> <filter-mapping> <filter-name>CharacterEncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!--配置springmvc DispatcherServlet接收到的http请求通过DispatcherServlet进行分发。--> <servlet> <servlet-name>note</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <!--Sources标注的文件夹下需要新建一个spring文件夹--> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring/spring-mvc.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>note</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> </web-app>检查代码修改正确
06-07
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <display-name>ssm</display-name> <!-- 编码过滤器开始 --> <filter> <filter-name>charset</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>charset</filter-name> <!-- <url-pattern>*.action</url-pattern> --> <servlet-name>springmvc</servlet-name> </filter-mapping> <!-- 编码过滤器结束 --> <!-- 配置spring容器的监听器 开始 目地:在启用tomcat的时候加载 applicationContext.xml ApplicationContext context=new ClassPathXmlApplicationContext("classpath:applicationContext.xml') --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <!-- 配置上下文的参数 contextConfigLocation 在org.springframework.web.context.ContextLoader里面--> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext.xml</param-value> </context-param> <!-- 配置spring容器的监听器 结束--> <!-- 配置前端控制器开始 --> <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!--配置contextConfigLocation --> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:springmvc.xml</param-value> </init-param> <!-- load-on-startup 1 代表当tomcat启动加web.xml里就创建 DispatcherServlet的对象 --> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springmvc</servlet-name> <!-- *.action:所以的在xxxx.action结尾的请求都交给DispatcherServlet /* 所以的请求都交给DispacherServlet 包含静态文件的地址 js css png gif,使用此种方式可以实现 RESTful风格的url --> <url-pattern>*.html</url-pattern> </servlet-mapping> <!-- 配置前端控制器结束 --> <!--欢迎页面 当tomcat启动的时候 直接执行的页面--> <welcome-file-list> <welcome-file>index.html</welcome-file> </welcome-file-list> </web-app> classpath填什么?
最新发布
08-08
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值