初始Spring mvc
转自:http://elf8848.iteye.com/blog/875830很棒的一篇博客,想了解SpringMvc的入门选手可以去看看。
一,核心类与接口:
DispatcherServlet - 前端控制器
HandlerMapping接口 - 处理请求的映射
HandleMapping接口的实现类:
SimpleUrlHandlerMapping通过配置文件将一个URL映射到Controller
DefaultAnnotationHandleMapping通过注解,将一个URL映射到Controller类上
HandlerAdapter接口 - 处理请求的映射
AnnotationMethodHandlerAdapter类,通过注解,把一个URL映射到Controller类的方法上
Controller接口 - 控制器
由于使用了@controller注解,添加了@Controller注解的类就可以担任控制器(Action)的职责
HandlerInterceptor 接口 - 拦截器
ViewResolver接口的实现类
UrlBasedViewResolver类通过配置文件,把一个视图名交给到一个View来处理
InternalResourceViewResolver类,比上面的类,加入了JSTL的支持。
View接口
JstlView类
LocalResolver接口
HandlerExceptionResolver接口 - 异常处理
SimpleMappingExceptionResolver实现类
ModelAndView类
二,核心流程
三,DispacherServlet说明
使用SpringMvc配置Dispatch而Servlet是第一步。
DispatcherServlet是一个Servlet,所以可以配置多个DispatcherServlet
DispatcherServlet是前置控制器,配置在web.xml中。拦截匹配的请求,Servlet拦截匹配规则要自己定义,把拦截下来的请求,依靠某某规则分发到目标Controller我们写的(Action)来处理。
分发到Controller的某某规则根据你使用了哪个HandlerMapping接口的实现类的不同而不同。
- <web-app>
- <servlet>
- <servlet-name>example</servlet-name>
- <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
- <load-on-startup>1</load-on-startup> //是启动顺序,让这个Servlet随Servlettp容器一起启动
- </servlet>
- <servlet-mapping>
- <servlet-name>example</servlet-name> //servlet的名字,可以有多个DispatcherServlet,是通过名字来区分的,每个DispatcherServlet都有自己的WebAppliContext上下文对象。同时保存在ServletContext中和Request对象中。
- <url-pattern>*.form</url-pattern> //拦截所有以.form结尾的请求。
- </servlet-mapping>
- </web-app>
在DispatcherServlet的初始化过程中,框架会在web应用的WEB-INF文件夹下寻找名为【servlet-name】-servlet.xml的配置文件,生成文件中定义的bean。
- <servlet>
- <servlet-name>springMVC</servlet-name>
- <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
- <init-param>
- <param-name>contextConfigLocation</param-name>
- <param-value>classpath*:/springMVC.xml</param-value>
- </init-param>
- <load-on-startup>1</load-on-startup>
- </servlet>
- <servlet-mapping>
- <servlet-name>springMVC</servlet-name>
- <url-pattern>/</url-pattern>
- </servlet-mapping>
指明了配置文件的文件名,不使用默认配置文件名,而是用springMvc.xml配置文件。
其中<param-value>**.xml</param-value>这里可以使用多种写法
1,不写,使用默认值:/WEB-INF/<servlet-name>-servlet.xml 比如说你的servlet-name是example那么找的那个文件就是example-servlet.xml
2,<param-value>/WEB-INF/classes/springMvc.xml<param-value>
3,<param-vlue>classpath*.springMvc-mvc.xml</param-value>
4,多个值用都好分隔。
初始Spring mvc的更多相关文章
- 初始Spring MVC——练手小项目
初始Spring MVC 前几天开始了我的spring学习之旅,由于之前使用过MVC模式来做项目,所以我先下手的是 Spring MVC,做个练手项目,非常简单 项目介绍: 用户输入信息 -> ...
- java之spring mvc之初始spring mvc
1. mvc : mvc框架是处理 http请求和响应的框架 2. mvc 做的事情有哪些: 将 url 映射到一个java的处理方法上 将表单数据提交到 java 类中 将后台 java 类处理的结 ...
- spring mvc 初始
今天带领大家开始第一天的spring mvc学习 首先我们要下载maven然后配置IDE 然后选择new 新建项目 然后选择maven,然后选择maven的webapp 然后创建springmvc ...
- Maven+Spring MVC Spring Mybatis配置
环境: Eclipse Neon JDK1.8.0 Tomcat8.0 先决条件: Eclipse先用maven向导创建web工程.参见本站之前随笔. 本机安装完成mysql5:新建用户xuxy03设 ...
- [Spring MVC] - JSON
Spring MVC中使用JSON,先必需引用两个包:jackson-core-asl-1.9.13.jar.jackson-mapper-asl-1.9.13.jar 因为需要使用到jquery测试 ...
- Java框架搭建-Maven、Mybatis、Spring MVC整合搭建
1. 下载eclipse 到网站下载 http://www.eclipse.org/downloads/packages/eclipse-ide-java-ee-developers/marsr 选择 ...
- Spring MVC 学习总结(六)——Spring+Spring MVC+MyBatis框架集成
与SSH(Struts/Spring/Hibernate/)一样,Spring+SpringMVC+MyBatis也有一个简称SSM,Spring实现业务对象管理,Spring MVC负责请求的转发和 ...
- 用Spring MVC开发简单的Web应用
这个例子是来自于Gary Mak等人写的Spring攻略(第二版)第八章Spring @MVC中的一个例子,在此以学习为目的进行记录. 问题:想用Spring MVC开发一个简单的Web应用, 学习这 ...
- Spring MVC 解读——<context:component-scan/>
转自:http://my.oschina.net/HeliosFly/blog/203149 作者:GoodLoser. Spring MVC 解读---<context:component-s ...
随机推荐
- 追求极致的用户体验ssr(基于vue的服务端渲染)
首先这篇博客并不是ssr建议教程,需要ssr入门的我建议也不要搜索博客了,因为官网给出了详细的入门步骤,只需要step by step就可以了,这篇博客的意义是如何使用ssr,可能不同的人有不同的意见 ...
- 【mysql】mysql触发器使用示例
mysql触发器 时间点:before/after 触发事件: update/delete/insert 时间点+触发事件:构成一个完整的触发器的触发时机: 一个触发时机最多只能由1个Trigger: ...
- python:推导式套路
推导式套路 列表推导式为例的推导式详细格式,同样适用于其他推导式 variable = [out_exp_res for out_exp in input_list if out_exp == 2] ...
- 云存储的未来:Scale Up还是Scale Out?
云存储的几十年发展历程,其计算架构模型,也从Scale Up走向Scale Out.但是展望未来数字世界的海量需求,目前流行的模型还能够持续满足吗?本文通过对云存储历史的回顾,及对Scale Up ...
- 5、Zookeeper命令操作
一.Zookeeper的四字命令 Zookeeper支持某些特定的四字命令字母与其的交互.他们大多数是查询命令,用来获取Zookeeper服务的当前状态及相关信息.用户在客户端可以通过telnet或n ...
- Docker搭建PXC集群
如何创建MySQL的PXC集群 下载PXC集群镜像文件 下载 docker pull percona/percona-xtradb-cluster 重命名 [root@hongshaorou ~]# ...
- python网页爬虫开发之六-Selenium使用
chromedriver禁用图片,禁用js,切换UA selenium 模拟chrome浏览器,此时就是一个真实的浏览器,一个浏览器该加载的该渲染的它都加载都渲染,所以爬取网页的速度很慢.如果可以不加 ...
- Nios II Host-Based File System
Nios II Host-Based File System 允许运行在Nios II的程序,在Debug模式下,通过Altera download cable来读写PC上当前工程目录下(及其子目录) ...
- idea本地跑代码和链接开发机设置
- easy ui 关闭选项卡
var tab = window.parent.getCurrentTab(); var tabs = window.parent.getTabs(); var index = tabs.tabs(& ...