springmvc学习笔记(一)之简介
一、简介
SpringMVC 是一个MVC框架,是基于Model-View-Controller模式实现的。类似于Struts2等mvc框架使数据-业务-展现很好的隔离开。
每当用户在web浏览器点击链接或提交表单数据时,请求就开始工作了。SpringMVC处理请求的过程大致如下:
1、客户发送请求时,首先被前端控制器DispatherServlet拦截,DispatcherServlet会查询一个或多个控制器映射来确定由哪个Controller处理请求。(Handller mapping根据请求的URL确定相应的控制器)
2、DispatcherServlet将请求发送给相应的Controller进行处理
3、Controller处理后,将请求连同模型和视图名称发送回DispatcherServlet
4、DispatcherServlet将会用视图解析器来将逻辑视图匹配为特定的视图实现,它可能是jsp也可能不是。
二、搭建SpringMVC
SpringMVC的核心是DispatcherServlet。这个Servlet 充当SpringMVC的前端控制器。需在web.xml配置文件中配置如下:
<servlet>
<servlet-name>dispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- 初始化参数读取MVC配置文件 -->
<init-param>
<param-name>contextConfigLocation</param-name>
<!-- 多个配置文件用逗号隔开 -->
<param-value>classpath:applicationContext-mvc.xml</param-value>
</init-param>
<!-- servlet容器启动时加载dispatcherServlet-->
<!-- 1代表加载顺序 -->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<!-- 注意这样也会拦截静态资源,可在applicationContext-mvc.xml中配置加载静态资源 -->
<url-pattern>/</url-pattern>
</servlet-mapping>
解决静态资源的加载
<!-- 加载静态资源(方案一) -->
<mvc:resources mapping="/js/**" location="/static_resources/js/" />
<mvc:resources mapping="/css/**" location="/static_resources/css/" />
<mvc:resources mapping="/images/**" location="/static_resources/images/" />
<!-- 加载静态资源(方案二) -->
<!-- 自动注册DefaultAnnotationHandlerMapping、AnnotationMethodHandlerAdapter、AnnotationMethodHandlerExceptionResolver -->
<!-- 来注册handler method和request的mapping关系。 -->
<mvc:annotation-driven/>
<mvc:default-servlet-handler />
springmvc学习笔记(一)之简介的更多相关文章
- springmvc学习笔记(简介及使用)
springmvc学习笔记(简介及使用) 工作之余, 回顾了一下springmvc的相关内容, 这次也为后面复习什么的做个标记, 也希望能与大家交流学习, 通过回帖留言等方式表达自己的观点或学习心得. ...
- 史上最全的SpringMVC学习笔记
SpringMVC学习笔记---- 一.SpringMVC基础入门,创建一个HelloWorld程序 1.首先,导入SpringMVC需要的jar包. 2.添加Web.xml配置文件中关于Spring ...
- springmvc学习笔记--REST API的异常处理
前言: 最近使用springmvc写了不少rest api, 觉得真是一个好框架. 之前描述的几篇关于rest api的文章, 其实还是不够完善. 比如当遇到参数缺失, 类型不匹配的情况时, 直接抛出 ...
- springmvc学习笔记---面向移动端支持REST API
前言: springmvc对注解的支持非常灵活和飘逸, 也得web编程少了以往很大一坨配置项. 另一方面移动互联网的到来, 使得REST API变得流行, 甚至成为主流. 因此我们来关注下spring ...
- C#.NET学习笔记1---C#.NET简介
C#.NET学习笔记1---C#.NET简介 技术qq交流群:JavaDream:251572072 教程下载,在线交流:创梦IT社区:www.credream.com -------------- ...
- SpringMVC:学习笔记(8)——文件上传
SpringMVC--文件上传 说明: 文件上传的途径 文件上传主要有两种方式: 1.使用Apache Commons FileUpload元件. 2.利用Servlet3.0及其更高版本的内置支持. ...
- springmvc学习笔记(常用注解)
springmvc学习笔记(常用注解) 1. @Controller @Controller注解用于表示一个类的实例是页面控制器(后面都将称为控制器). 使用@Controller注解定义的控制器有如 ...
- SpringMVC学习笔记之二(SpringMVC高级参数绑定)
一.高级参数绑定 1.1 绑定数组 需求:在商品列表页面选中多个商品,然后删除. 需求分析:功能要求商品列表页面中的每个商品前有一个checkbok,选中多个商品后点击删除按钮把商品id传递给Cont ...
- springmvc学习笔记(13)-springmvc注解开发之集合类型參数绑定
springmvc学习笔记(13)-springmvc注解开发之集合类型參数绑定 标签: springmvc springmvc学习笔记13-springmvc注解开发之集合类型參数绑定 数组绑定 需 ...
- Linux学习笔记-Linux系统简介
Linux学习笔记-Linux系统简介 UNIX与Linux发展史 UNIX是父亲,Linux是儿子. UNIX发行版本 操作系统 公司 硬件平台 AIX IBM PowerPC HP-UX HP P ...
随机推荐
- nodejs 安装及部署遇到的问题
Error: ENOENT, stat 'C:\Users\PC_Name\AppData\Roaming\npm PC_Name是机器名 解决方法:在Roaming文件夹下创建一个叫npm的空文件夹 ...
- Report List Controls
Report风格的ListCtrl的扩展,原文链接地址:http://www.codeproject.com/Articles/5560/Another-Report-List-Control 1.列 ...
- html页面识别当前系统和语言
项目中需要一个下载功能,根据系统跳转到不同的页面,如iphone跳转到IOS页面,android跳转到android页面. 下面为页面判断页面: <!DOCTYPE HTML> <h ...
- Java锁(一)之内存模型
想要了解Java锁机制.引发的线程安全问题以及数据一致性问题,有必要了解内存模型,机理机制了解清楚了,这些问题也就应声而解了. 一.主内存和工作内存 Java内存模型分为主内存和工作内存,所有的变量都 ...
- HDU 4045 Machine scheduling (组合数学-斯特林数,组合数学-排列组合)
Machine scheduling Time Limit: 5000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Other ...
- javascript图片库
将图片发布到网上的办法很多,可以简单地把所有图片都放在一个网页中,但是会导致这个网页过于庞大.为每张图片分别创建一个网页的解决办法值得考虑,但是制作过程需要花费非常多的时间和精力. 如果想要两全其美, ...
- CentOS下SSH无密码登录的配置
1.确认本机sshd的配置文件(需要root权限) $ gedit /etc/ssh/sshd_config 找到以下内容,并去掉注释符"#" RSAAuthentication ...
- JavaScript吸顶灯的实现
吸顶灯是各站点常用的一个功能,它有两个特性 向下滚动到div位置时,该div一直固定在页面的顶部 向上滚动到div原有位置时,div又恢复到文档中的原位置 div可能是一个“分类菜单”,也可能是一个“ ...
- Python pass语句作用与用法
Python中的pass语句作用是什么?表示它不做任何事情,一般用做占位语句.pass语句具体作用及使用方法,我们往下看. pass语句在函数中的作用 当你在编写一个程序时,执行语句部分思路还没有完成 ...
- PHP Cannot redeclare class CLassName
可能导致Cannot redeclare class CLassName错误的原因: 1.在同一个文件中重复声明了两次同名的类: class Extend {} class Extend {} new ...