SpringMvc学习笔记(一)介绍与环境搭建.doc_第1页
SpringMvc学习笔记(一)介绍与环境搭建.doc_第2页
SpringMvc学习笔记(一)介绍与环境搭建.doc_第3页
SpringMvc学习笔记(一)介绍与环境搭建.doc_第4页
SpringMvc学习笔记(一)介绍与环境搭建.doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

springmvc学习笔记(一)介绍与环境搭建一、springmvc的介绍(一)、介绍springmvc是一种基于java的实现了web mvc设计模式的请求驱动类型的轻量级web框架,即使用了mvc架构模式的思想,springmvc结构简单,而且性能也非常优秀。相信很多人和我一样,学习springmvc之前多多少少学习过struts2。struts2也是比较优秀的mvc架构,比如良好的结构,包括它的多层拦截器,多实例的action性能都很好。只是相比springmvc,struts2的值栈、ognl表达式、struts2标签库等,会导致应用的性能下降。所以相比之下,springmvc会比sturts2更快,更便于使用,这也是现在越来越多的团队使用springmvc的原因。(二)、springmvc请求流程具体执行步骤如下:1、 首先用户发送请求前端控制器,前端控制器根据请求信息(如url)来决定选择哪一个页面控制器进行处理并把请求委托给它,即以前的控制器的控制逻辑部分;图2-1中的1、2步骤;2、 页面控制器接收到请求后,进行功能处理,首先需要收集和绑定请求参数到一个对象,这个对象在spring web mvc中叫命令对象,并进行验证,然后将命令对象委托给业务对象进行处理;处理完毕后返回一个modelandview(模型数据和逻辑视图名);图2-1中的3、4、5步骤;3、 前端控制器收回控制权,然后根据返回的逻辑视图名,选择相应的视图进行渲染,并把模型数据传入以便视图渲染;图2-1中的步骤6、7;4、 前端控制器再次收回控制权,将响应返回给用户,图2-1中的步骤8;至此整个结束。(三)、 springmvc结构核心架构的具体流程步骤如下:1、 首先用户发送请求dispatcherservlet,前端控制器收到请求后自己不进行处理,而是委托给其他的解析器进行处理,作为统一访问点,进行全局的流程控制;2、 dispatcherservlethandlermapping, handlermapping将会把请求映射为handlerexecutionchain对象(包含一个handler处理器(页面控制器)对象、多个handlerinterceptor拦截器)对象,通过这种策略模式,很容易添加新的映射策略;3、 dispatcherservlethandleradapter,handleradapter将会把处理器包装为适配器,从而支持多种类型的处理器,即适配器设计模式的应用,从而很容易支持很多类型的处理器;4、 handleradapter处理器功能处理方法的调用,handleradapter将会根据适配的结果调用真正的处理器的功能处理方法,完成功能处理;并返回一个modelandview对象(包含模型数据、逻辑视图名);5、 modelandview的逻辑视图名 viewresolver, viewresolver将把逻辑视图名解析为具体的view,通过这种策略模式,很容易更换其他视图技术;6、 view渲染,view会根据传进来的model模型数据进行渲染,此处的model实际是一个map数据结构,因此很容易支持其他视图技术;7、返回控制权给dispatcherservlet,由dispatcherservlet返回响应给用户,到此一个流程结束。(三)、springmvc的优点1、清晰的角色划分:前端控制器(dispatcherservlet)、请求到处理器映射(handlermapping)、处理器适配器(handleradapter)、视图解析器(viewresolver)、处理器或页面控制器(controller)、验证器( validator)、命令对象(command 请求参数绑定到的对象就叫命令对象)、表单对象(form object 提供给表单展示和提交到的对象就叫表单对象)。2、分工明确,而且扩展点相当灵活,可以很容易扩展,虽然几乎不需要;3、由于命令对象就是一个pojo,无需继承框架特定api,可以使用命令对象直接作为业务对象;4、和spring 其他框架无缝集成,是其它web框架所不具备的;5、可适配,通过handleradapter可以支持任意的类作为处理器;6、可定制性,handlermapping、viewresolver等能够非常简单的定制;7、功能强大的数据验证、格式化、绑定机制;8、利用spring提供的mock对象能够非常简单的进行web层单元测试;9、本地化、主题的解析的支持,使我们更容易进行国际化和主题的切换。10、强大的jsp标签库,使jsp编写更容易。还有比如restful风格的支持、简单的文件上传、约定大于配置的契约式编程支持、基于注解的零配置支持等等。以上大部分是从网上摘取,归纳过来的。更多关于springmvc介绍的文章这里推荐几个:1. /sunitjy/article/details/67824312. /blog/1594806二、环境搭建:第一个helloworld(一)、环境与资源准备1. 下载spring框架spring-framework-3.1.1.release-with-docs.zip。下载地址是:/download2. 这里使用ide的是eclipse-jee-juno,服务器tomcat6.0。3. 新建web工程springmvc_01,导入依赖的包:(1) spring框架jar包:为了简单,将spring-framework-3.1.3.release-with-docs.zip/dist/下的所有jar包拷贝到项目的web-inf/lib目录下;(2) spring框架依赖的jar包:需要添加apache commons logging日志,此处使用的是commons.logging-1.1.1.jar;需要添加jstl标签库支持,此处使用的是jstl-1.2.jar和standard.jar;4. 配置web.xml文件我们在web.xml中进行如下配置:helloorg.springframework.web.servlet.dispatcherservlet!- contextconfiglocation /web-inf/applicationcontext.xml - 1hello/-load-on-startup:表示启动容器时初始化该servlet;url-pattern:表示哪些请求交给spring web mvc处理, “/” 是用来定义默认servlet映射的。也可以如“*.html”表示拦截所有以html为扩展名的请求。如果你没有指定init-param里面contextcofiglocation的值中对应的xml文件的话,那么像本段代码对应在springmvc中的配置文件就应该是/web-inf/hello-servlet.xml这样的文件。5.创建hello-servlet.xml文件像上一步所说的,在/web-inf目录下创建hello-servlet.xml文件。 -(1) beannameurlhandlermapping:表示将请求的url和bean名字映射,如url为 “上下文/hello”,则spring配置文件必须有一个名字为“/hello”的bean,上下文默认忽略。(2) internalresourceviewresolver:用于支持servlet、jsp视图解析; viewclass:jstlview表示jsp模板页面需要使用jstl标签库,classpath中必须包含jstl的相关jar包; prefix和suffix:查找视图页面的前缀和后缀(前缀逻辑视图名后缀),比如传进来的逻辑视图名为hello,则该该jsp视图页面应该存放在“content根目录下”;(3) name=/hello.htm:前边配置的beannameurlhandlermapping,表示如过请求的url为 “上下文/hello”,则将会交给该bean进行处理。6. 创建控制器类public class hellocontroller implements controller public modelandview handlerequest(httpservletrequest req, httpservletresponse resp) throws exception modelandview mav = new modelandview(); /添加模型数据 mav.addobject(name, 张艳羽); /设置逻辑视图名,视图解析器会根据该名字解析到具体的视图页面 mav.setviewname(hello); return mav; 7. 在webcontent下创建页面hello.jsp hello helloworld! 你好,$name 8. 部署,启动tomcat,访问localhost:8080/springmvc_01/hello。会出现下面的页面。三、环境搭建:基于注解实现springmvc很大的一个优点就是基于注解的零配置支持,也就是说,我们可以用注解的方式实现上节的例子。1. 在hello-servlet.xml中加上这两行配置(加在前面):2. 新建index.jsp springmvc示例-注解 springmvc传值 -3. 改造hellocontroller:controllerpublic class hellocontroller requestmapping(/hello2)public string hello2(string username,model model)system.out.println(username);model.addattribute(username, username);return hello;controller 表示这是一个控制器类requestmapping 表示用哪个url来对应string username表示从页面获取username的值model表示传值的对

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论