SpringMVC请求过程
时间:2022-07-22
本文章向大家介绍SpringMVC请求过程,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
springMVC框架原理
- 发起请求到前端控制器,
- 前端控制器请求handlerMapping查找Handler,xml配值,注解,
- 处理器映射器handlermapping返回handler
- 前端控制器请求处理器适配器执行handler,
- 执行handler
- 返回ModelAndView给适配器
- 适配器返回前端控制器,
- 请求视图解析器进行视图解析,
- 返回前端控制器view
- 前端控制器进行渲染,
- 前端控制器响应。
SpringMVC各组件配置
- 在web.xml配置前端控制器
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>
<!-- 让servlet随服务启动 -->
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
/代表的拦截所有,可以springmvc.xml中配值,静态资源地址,避免其拦截静态资源。
同时在web.xml中配值springmvc.xml配置文件的地址
<servlet>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>WEB-INF/springmvc.xml</param-value>
</init-param>
</servlet>
- 配置控制器
@Controller
public class IndexController{
@RequestMapping("/")
public String IndexPage(){
return "index";
}
}
springmvc的配值文件中解析前缀和后缀,会把视图名还原为实际的jsp地址
- SpringMVC配值
<!-- 配置适配器 -->
<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"></bean>
<!-- 处理器映射器 -->
<!-- 根据bean的 name 查找Handler , 将action的URL 配置在bean的name中-->
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean>
<!-- 配置处理器 -->
<bean name="/hello.action" class="com.mt.controller.Hello"></bean>
<!-- 配置视图解析器 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"></bean>
同时可以将请求定义在类基本上,这样就可以将RequestMapping进行拆分
- Python中的栈溢出及解决办法
- CentOS下Redis的安装
- 系统开发之设计模式
- centos7修改系统语言为简体中文
- vue之导入Bootstrap以及jQuery的两种方式
- SQLAlchemy中的自引用
- centos下安装pip2
- 修改mysql的时间/时区
- windows查看端口占用情况
- 大坑记录 - shell脚本删除操作
- mysql5.7 创建新表时提示时间戳非法
- #测试框架推荐# test4j,数据库测试
- C语言中的封装 - 答读者问
- pip is configured with locations that require TLS/SSL, however the ssl module in Python is not avail
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- SignalR 2.x入门(一):SignalR简单例子
- 设计模式(5)[JS版]-JavaScript如何实现工厂方法模式?
- 前端基础:CSS
- 实现一个分布式调用链路追踪Java探针你可能会遇到的问题
- 设计模式(6)[JS版]-JavaScript如何实现抽象工厂模式?
- 前端基础:JavaScript
- 设计模式(7)[JS版]-JavaScript设计模式之原型模式如何实现???
- SignalR 2.x入门(二):SignalR在MVC5中的使用
- SignalR简介
- 前端基础:jQuery
- Web API--入门--(一)ASP.NET Web API 2(C#)入门
- C# 关键字之 decimal
- 设计模式(8)[JS版]-JavaScript设计模式之如何实现适配器模式???
- Python3与OpenCV3.3 图像处理(二)--图像基本操作
- 前端基础:ECMAScript 6