1、导入依赖
spring坐标
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.0.5.RELEASE</version>
</dependency>
springmvc坐标
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.0.5.RELEASE</version>
</dependency>
servlet
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
</dependency>
jsp
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.2</version>
</dependency>
2、配置前端控制器
在web.xml文件中建立 ------>访问优先级最高的
<!-- 前端控制器-->
<servlet>
<servlet-name>dispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!-- 创建一个对象将对象放到前端控制器中-->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-mvc.xml</param-value>
</init-param> <!-- 读取配置文件并加载-->
<!-- 饿加载 tomcat启动立即加载出来--> ---->默认为懒加载
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping> <!-- 拦截所有请求-->
<servlet-name>dispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
3、创建一个配置文件
在resources目录下创建一个spring-mvc.xml文件
开启spring注解扫描
<context:compoent-scan base-package="com.*.web"></context:compoent-scan>
4、创建web包,UserWeb类
@Controller
@RequestMapping("/user") --->跟WebServlet注解一样写路径--->可以不写
public class UserWeb{
@RequestMapping("/t1")
public String t1(){
System.out.println("t1方法被访问了")
return "/WEB-INF/h1.jsp"; //----->请求转发到h1页面 h1放到webapp目录下
}
||
||
//能被访问的方法---->api接口
}
2.2springmvc原理
1,加载xml文件
2、将前端控制器放到spring容器中
3、前端控制器拦截所有请求
4、加载springmvc.xml文件,将类放到容器中
5、访问
6、处理器映射器查找有没有t1()方法
7、处理器适配器找t1()方法;并调用该方法,返回字符串
8、试图解析器接受返回字符串,寻找对应页面;返回给前端控制器;前端控制器返回给用户
2.4 重载试图解析器
在spring-mvc中定义前缀后缀
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="ViewResolver">
<property name="prefix" value="/WEB-INF/"></property>
<property name="suffix" value=".jsp"></property>
</bean>