@RequestMapping拦截请求失败:
学习SpringMVC使用@RequestMapping注解,网页报错404找不到页面
@RequestMapping404:
我的出错:需要手动去File - Project Structure - Artifacts。在WEB-INF中手动建一个lib包,把jar包都添加进去。
还报错的可以试试自己写的Controller有没有没生效,就是用注解扫描时就没把它扫描进IOC中,相当于发起的hello请求都没过这个控制器,必然404。这个需要自己写一个Test类,测试一下IOC容器有没有正确生成,能不能从容器中拿到@Controller扫描的类。如果报错,就去看原因,大概率是配置文件写错,或者目录写错。
配置文件
web.xml
<!--SpringMVC思想是有一个前端控制器能拦截所有请求,并只能派发;
这个前端控制器是一个servlet;应该在web.xml中配置这个servlet来拦截所有请求
-->
<!-- The front controller of this Spring Web application,
responsible for handling all application requests -->
<servlet>
<servlet-name>springDispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<!-- contextConfigLocation:指定SpringMVC配置文件位置 -->
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
<!-- servlet启动加载,servlet原本是第一次访问创建对象;
load-on-startup:服务器启动的时候创建对象;值越小优先级越高,越先创建对象;
-->
<load-on-startup>1</load-on-startup>
</servlet>
<!-- Map all requests to the DispatcherServlet for handling -->
<servlet-mapping>
<servlet-name>springDispatcherServlet</servlet-name>
<!--
/*和/都是拦截所有请求; /:会拦截所有请求,但是不会拦截*.jsp;能保证jsp访问正常;
/*的范围更大;还会拦截到*.jsp这些请求;一但拦截jsp页面就不能显示了;
-->
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
springmvc.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">
<!--扫描所有组件-->
<context:component-scan base-package="SpringMVC"></context:component-scan>
<mvc:annotation-driven />
</beans>