先来看一张图:
首先我们要新建一个springMVC配置文件(默认的spring配置文件即可),然后配置web.xml中的拦截器,代码如下:
<servlet>
<servlet-name>springmvc</servlet-name>
<!--将拦截到的内容交给DispatcherServlet(中央处理器)处理-->
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!--将配置文件引入-->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc-servlent.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<!--表示拦截不带后缀的请求-->
<url-pattern>/</url-pattern>
</servlet-mapping>
然后我们进行springmvc配置文件的编写,具体如下:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<!--配置HandlerMapping(处理器映射器)-->
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
<!--HandlerAdapter处理器适配器-->
<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>
<!--配置视图解析器-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!--配置前缀-->
<property name="prefix" value="/WEB-INF/jsp/"/>
<!--配置后缀-->
<property name="suffix" value=".jsp"/>
</bean>
</beans>
编写Controller类(类比原来的servlet):
//继承Controller接口并实现方法
public class Ttt implements Controller {
@Override
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
ModelAndView modelAndView = new ModelAndView();
//传入携带的数据
modelAndView.addObject("csdn","csdn");
//指定转发资源名
modelAndView.setViewName("mydemo");
return modelAndView;
}
}
将Controller类注册到spring容器中,注意:此处的id名称是访问时的名称
<!--把Controller类注册-->
<bean id="/ttt" class="com.qian.control.Ttt"/>
执行看结果:
![在这里插入图片描述](https://img-blog.csdnimg.cn/a01a649a330647bc83e1483c7d0e0101.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6Z2i6K-V6KKr6JmQ55qE5bCPbGFsYQ==,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
最后我们来梳理一下执行流程:
用户发送请求至前端控制器DispatcherServlet
DispatcherServlet收到请求调用HandlerMapping处理器映射器。
处理器映射器根据请求url找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。
1、DispatcherServlet通过HandlerAdapter处理器适配器调用处理器
2、执行处理器(Controller,也叫后端控制器)。
3、Controller执行完成返回ModelAndView
4、HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet
5、DispatcherServlet将ModelAndView传给ViewReslover视图解析器
6、ViewReslover解析后返回具体View
7、DispatcherServlet对View进行渲染视图(即将模型数据填充至视图中)。
8、DispatcherServlet响应用户。