SpringMVC前端控制器的配置理解
一、SpringMVC
SpringMVC是一个基于MVC模式的web/表现层框架,是spring的的一部分。
二、SpringMVC的工作流程
1.前端控制器(DispacherServlet):负责转发请求,接受用户的请求,申请处理后,将响应返回给客户
2.处理器映射器(HandlerMapping):前端控制器把请求转发给处理器映射器。处理器映射器根据请求中的URL,找到对应的Handler(相当于struts2的Action),返回给前端控制器。
3.处理器适配器(HandlerAdapter):前端控制器知道要执行哪个Handler,但是它只是把信息转发给处理器适配器,处理器适配器调用程序写好的Handler,Handler执行完,返回一个ModelAndView对象给适配器,处理器适配器再把这个对象返回给前端控制器
4.视图解析器(View resolver):前端控制器会把逻辑视图发送给视图解析器请求解析,视图解析器处理后返图物理视图(view)给前端控制器
5.前端控制器把视图响应返回给用户.
三.前端控制器
由SpringMVC的工作流程可以看出,前端控制器起到一个核心的作用,所有的请求响应都要经过前端控制器,那么前端控制器的配置是如何的?在web-xml中配置前端控制器
<!-- 配置前端控制器 :统一接收请求,然后分配--><servlet><servlet-name>DispatcherServlet</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><!--加载springmvc核心配置文件 --><!-- 如果不配置contextConfigLocation,默认加载的是/WEB-INF/servlet名称-servlet.xml --><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:applicationContext-mvc.xml</param-value></init-param><!-- 启动就加载 --><load-on-startup>1</load-on-startup></servlet><!-- 第一种 *.action 访问以.action结尾的DispatcherServlet进行解析-->限制性太强,范围太小第二种/,不会拦截jsp,但是会拦截除了jsp之外所有静态资源,第三种/*,拦截所有静态资源包括jsp,会出现访问jsp视图时被Spring的DispatcherServlet拦截,导致找不到请求资源引入的404错误--><servlet-mapping><servlet-name>DispatcherServlet</servlet-name><url-pattern>/</url-pattern></servlet-mapping>
以上配置中servlet-mapping中url的路径配置仅仅不会拦截jsp,其他的静态资源文件还是会被拦截,如何解决?
在applicationContext-mvc.xml中配置
<!-- 开启注解扫描 --><context:component-scan base-package="cn.itsource"></context:component-scan><!-- 放行静态资源html等 --><mvc:default-servlet-handler/><!-- 使注解生效 --><mvc:annotation-driven></mvc:annotation-driven>
SpringMVC前端控制器的配置理解相关推荐
- SpringMVC: 前端控制器
在SpringMVC中, 开发者不在需要关心Servlet等组件的机制. 只需要按照SpringMVC的约定(框架使用方法): 在控制器中添加方法并声明可以处理的请求, 将数据保存至Model中返回视 ...
- springmvc处理器及前端控制器介绍
处理器 (1)非注解的处理器映射器和适配器 处理器映射器 第一种非注解的映射器 <bean class="org.springframework.web.servlet.handler ...
- 管理springmvc组件——前端控制器、控制器映射器和适配器、视图解析器、文件上传的、拦截器||消息转化
管理springmvc组件 概述 在使用springmvc时要配置哪些东西 前端控制器 控制器映射器和适配器 映射器 Map<Set<String>,Object> Set& ...
- SpringMVC——MVC思想、前端控制器、SpringMVC概述、编写第一个SpringMVC程序
目录 一.什么是MVC 二.前端控制器(中心控制器) 1.什么是前端控制器 2.前端控制器原理 三.什么是SpringMVC 1.SpringMVC简介 2.SpringMVC和Struts2 四.S ...
- springmvc入门和前端控制器匹配方式url-patten
springmvc是Spring中的web模块,它需要导入spring的核心包和依赖包. springmvc底层是servlet,按照学习servlet的方式去学习它 话不多说 直接上干货 创建web ...
- springboot 启动分析【难点】——如何自动扫描 @SpringBootApplication||如何加载自动配置类 @EnableAutoConfiguration||如何加载前端控制器
springboot 启动分析[难点] 自动扫描的特点 默认扫描与 启动类 同级的所有包及其子包都可以自动扫描 如果不可要使用@ComponentScan(basePackage={"&qu ...
- springMVC(一) --前端控制器(DispatcherServlet)的作用
SpringMVC是Spring中的模块,它实现了mvc设计模式的web框架,首先用户发出请求,请求到达SpringMVC的前端控制器(DispatcherServlet),前端控制器根据用户 ...
- 初学SpringMVC注册前端控制器DispatcherServlet:org.springframework.web.servlet.DispatcherServlet报红
第一次导入的依赖是 <!-- SpringMVC --> <dependency> <groupId>org.springframework</groupId ...
- SpringBoot约定大于配置理解
约定大于配置是一种开发原则,就是减少人为的配置,直接用默认的配置就能获得我们想要的结果. SpringBoot的约定大于配置,按我的理解是:对比SpringMVC,需要在web.xml里面配置前端控制 ...
最新文章
- 识别MNIST数据集:用Python实现神经网络
- Linux查看tomcat 控制台输出命令, WebSphere中间件日志
- 升级asp.net1.0到1.1
- 期末考试前的预习,科目:化工设备与反应器(2)
- java接口方法实现_Java接口的简单定义与实现方法示例
- MacBook搭建go语言开发环境
- 转://工作中 Oracle 常用数据字典集锦
- Oracle11g手动创建数据库方法
- update-apt-xapian-index 意外关闭
- python tkinter 窗口 隐藏 显示_【Python GUI】隐藏窗体和弹窗窗体的探索
- 项目管理手记(八) SaaS模式的DRP系统是否适用?
- MSP430 DM430-A开发板学习笔记(二)MSP430f149与hc06蓝牙模块的使用
- CRM和SCRM,到底有什么区别?
- 收藏一些非常不错的学习资源
- 使用AD软件绘制PCB的过程
- 如何使用Python打开一个TXT文件
- 干货:服务器网卡组技术原理与实践
- Third1: Basic Web applications BASIC NFS services triggering mount | Cloud computing
- File xxx specified for property 'resourceFile' does not exist.解决方法
- Android案例手册 - 实现一个华容道拼图游戏