一、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前端控制器的配置理解相关推荐

  1. SpringMVC: 前端控制器

    在SpringMVC中, 开发者不在需要关心Servlet等组件的机制. 只需要按照SpringMVC的约定(框架使用方法): 在控制器中添加方法并声明可以处理的请求, 将数据保存至Model中返回视 ...

  2. springmvc处理器及前端控制器介绍

    处理器 (1)非注解的处理器映射器和适配器 处理器映射器 第一种非注解的映射器 <bean class="org.springframework.web.servlet.handler ...

  3. 管理springmvc组件——前端控制器、控制器映射器和适配器、视图解析器、文件上传的、拦截器||消息转化

    管理springmvc组件 概述 在使用springmvc时要配置哪些东西 前端控制器 控制器映射器和适配器 映射器  Map<Set<String>,Object> Set& ...

  4. SpringMVC——MVC思想、前端控制器、SpringMVC概述、编写第一个SpringMVC程序

    目录 一.什么是MVC 二.前端控制器(中心控制器) 1.什么是前端控制器 2.前端控制器原理 三.什么是SpringMVC 1.SpringMVC简介 2.SpringMVC和Struts2 四.S ...

  5. springmvc入门和前端控制器匹配方式url-patten

    springmvc是Spring中的web模块,它需要导入spring的核心包和依赖包. springmvc底层是servlet,按照学习servlet的方式去学习它 话不多说 直接上干货 创建web ...

  6. springboot 启动分析【难点】——如何自动扫描 @SpringBootApplication||如何加载自动配置类 @EnableAutoConfiguration||如何加载前端控制器

    springboot 启动分析[难点] 自动扫描的特点 默认扫描与 启动类 同级的所有包及其子包都可以自动扫描 如果不可要使用@ComponentScan(basePackage={"&qu ...

  7. springMVC(一) --前端控制器(DispatcherServlet)的作用

        SpringMVC是Spring中的模块,它实现了mvc设计模式的web框架,首先用户发出请求,请求到达SpringMVC的前端控制器(DispatcherServlet),前端控制器根据用户 ...

  8. 初学SpringMVC注册前端控制器DispatcherServlet:org.springframework.web.servlet.DispatcherServlet报红

    第一次导入的依赖是 <!-- SpringMVC --> <dependency> <groupId>org.springframework</groupId ...

  9. SpringBoot约定大于配置理解

    约定大于配置是一种开发原则,就是减少人为的配置,直接用默认的配置就能获得我们想要的结果. SpringBoot的约定大于配置,按我的理解是:对比SpringMVC,需要在web.xml里面配置前端控制 ...

最新文章

  1. 识别MNIST数据集:用Python实现神经网络
  2. Linux查看tomcat 控制台输出命令, WebSphere中间件日志
  3. 升级asp.net1.0到1.1
  4. 期末考试前的预习,科目:化工设备与反应器(2)
  5. java接口方法实现_Java接口的简单定义与实现方法示例
  6. MacBook搭建go语言开发环境
  7. 转://工作中 Oracle 常用数据字典集锦
  8. Oracle11g手动创建数据库方法
  9. update-apt-xapian-index 意外关闭
  10. python tkinter 窗口 隐藏 显示_【Python GUI】隐藏窗体和弹窗窗体的探索
  11. 项目管理手记(八) SaaS模式的DRP系统是否适用?
  12. MSP430 DM430-A开发板学习笔记(二)MSP430f149与hc06蓝牙模块的使用
  13. CRM和SCRM,到底有什么区别?
  14. 收藏一些非常不错的学习资源
  15. 使用AD软件绘制PCB的过程
  16. 如何使用Python打开一个TXT文件
  17. 干货:服务器网卡组技术原理与实践
  18. Third1: Basic Web applications BASIC NFS services triggering mount | Cloud computing
  19. File xxx specified for property 'resourceFile' does not exist.解决方法
  20. Android案例手册 - 实现一个华容道拼图游戏

热门文章

  1. 30个Kafka常见错误小集合
  2. 学习计划和个人提升(一个月内完成)
  3. 2020浙江大学软件学院预推免经验
  4. MySQL 是什么?
  5. 清除WAS的僵死进程
  6. 如何更换Tomcat默认主页
  7. 一些根本不用数据结构的题。。(积木大赛、焚风现象)
  8. 西方投资组合理论及其新发展综述
  9. 3D云打印系统OctoPrint,中文化详细图文教程
  10. 【sql注入】二次注入