SpringMvc学习笔记(一)介绍与环境搭建

上传人:z****2 文档编号:181741996 上传时间:2023-01-16 格式:DOCX 页数:10 大小:106.59KB
收藏 版权申诉 举报 下载
SpringMvc学习笔记(一)介绍与环境搭建_第1页
第1页 / 共10页
SpringMvc学习笔记(一)介绍与环境搭建_第2页
第2页 / 共10页
SpringMvc学习笔记(一)介绍与环境搭建_第3页
第3页 / 共10页
资源描述:

《SpringMvc学习笔记(一)介绍与环境搭建》由会员分享,可在线阅读,更多相关《SpringMvc学习笔记(一)介绍与环境搭建(10页珍藏版)》请在装配图网上搜索。

1、Springmvc 学习笔记(一)介绍与环境搭建一、Springmvc 的介绍(一)、介绍SpringMVC是一种基于Java的实现了 Web MVC设计模式的请求驱动类型 的轻量级Web框架,即使用了 MVC架构模式的思想,SpringMvc结构简单, 而且性能也非常优秀。相信很多人和我一样,学习SpringMvc之前多多少少学习过Struts2Struts2 也是比较优秀的MVC架构,比如良好的结构,包括它的多层拦截器,多实例的 Action性能都很好。只是相比SpringMvc,Struts2的值栈、OGNL表达式、struts2 标签库等,会导致应用的性能下降。所以相比之下,Sprin

2、gmvc会比sturts2更 快,更便于使用,这也是现在越来越多的团队使用Springmvc的原因。(二)、Springmvc 请求流程Web 容器:如TomumtN委托请梯处理器5i 返回 ModelAndViewZZ( t lodeLA.iwE lew L页面控制器,处理器人产些1发送请:7前端控制器,前端控制器根据请求信息(如 URL) 来决定选择哪一个页面控制器进行处理并把请求委托给它,即以前的控制器的控 制逻辑部分;图2-1 中的1、2步骤;2、页面控制器接收到请求后,进行功能处理,首先需要收集和绑定请求参数 到一个对象,这个对象在 Spring Web MVC 中叫命令对象,并进行

3、验证,然后将 命令对象委托给业务对象进行处理;处理完毕后返回一个ModelAndView (模型 数据和逻辑视图名);图2-1 中的3、4、5步骤;3、前端控制器收回控制权,然后根据返回的逻辑视图名,选择相应的视图进 行渲染,并把模型数据传入以便视图渲染;图 2-1 中的步骤 6、7;4、前端控制器再次收回控制权,将响应返回给用户,图2-1 中的步骤8;至此 整个结束。三)、 SpringMvc 结构Handler4、调用处聲 相应缺理角法:、屈酹应用户1、疑诱求Dispatcher ServletHan (He ill appingHancll er Adapt erII mi (IlerX

4、IUs etC anttdllerVievrRe solverView核心架构的具体流程步骤如下:1、 首先用户发送请求 DispatcherServlet,前端控制器收到请求后自己不 进行处理,而是委托给其他的解析器进行处理,作为统一访问点,进行全局的流 程控制;2、DispatcherServletHandlerMapping, HandlerMapping 将会把请求映射 为 HandlerExecutionChain 对象(包含一个 Handler 处理器(页面控制器)对象、 多个 HandlerInterceptor 拦截器)对象,通过这种策略模式,很容易添加新的映 射策略;3、Di

5、spatcherServletHandlerAdapter, HandlerAdapter 将会把处理器包装 为适配器,从而支持多种类型的处理器,即适配器设计模式的应用,从而很容易 支持很多类型的处理器;4、HandlerAdapter处理器功能处理方法的调用,HandlerAdapter将会根据适配的结果调用真正的处理器的功能处理方法,完成功能处理;并返回一个 ModelAndView 对象(包含模型数据、逻辑视图名);5、ModelAndView 的逻辑视图名 ViewResolver, ViewResolver 将把逻辑视图名解析为具体的View,通过这种策略模式,很容易更换其他视图技术

6、;6、View渲染,View会根据传进来的Model模型数据进行渲染,此处的Model实际是一个Map数据结构,因此很容易支持其他视图技术;7、返回控制权给DispatcherServlet,由DispatcherServlet返回响应给用户,到此 一个流程结束。(三)、 SpringMvc 的优点1、 清晰的角色划分:前端控制器(DispatcherServlet )、请求到处理器映射( HandlerMapping)、 处理器适配器( HandlerAdapter)、 视图 解析器 (ViewResolver)、处理器或页面控制器(Controller)、验证器(Validator)、命令

7、对象(Comma nd 请求参数绑定到的对象就叫命令对象)、表单对象(Form Object 提供给表单展示和提交到的对象就叫表单对象)。2、分工明确,而且扩展点相当灵活,可以很容易扩展,虽然几乎不需要;3、 由于命令对象就是一个POJ0,无需继承框架特定API,可以使用命令对象直 接作为业务对象;4、和Spring其他框架无缝集成,是其它Web框架所不具备的;5、可适配,通过 HandlerAdapter 可以支持任意的类作为处理器;6、可定制性, HandlerMapping、 ViewResolver 等能够非常简单的定制;7、功能强大的数据验证、格式化、绑定机制;8、利用Spring提

8、供的Mock对象能够非常简单的进行Web层单元测试;9、本地化、主题的解析的支持,使我们更容易进行国际化和主题的切换。10、强大的 JSP 标签库,使 JSP 编写更容易。还有比如 RESTful 风格的支持、简单的文件上传、约定大于配置的 契约式编程支持、基于注解的零配置支持等等。以上大部分是从网上摘取,归纳过来的。更多关于SpringMvc介绍的文章这里 推荐几个:1. 2. 二、环境搭建:第一个 HelloWorld(一)、环境与资源准备1. 下载 Spring 框架 spring-framework-3.1.1.RELEASE-with-docs.zip。下载地址是: http:/ww

9、w.springsource.org/dow nload2. 这里使用 IDE 的是 eclipse-jee-juno,服务器 tomcat6.0。3. 新建web工程springmvc_01,导入依赖的包: Spring框架jar包:为了简单,将 spr in g-framework-3.13RELEASE-with-docs.zip/dist下的所有 jar 包拷 贝到项目的WEB-INF/lib目录下;(2) Spring框架依赖的jar包:需要添加Apache commons logging日志,此处使用的 是commons.logging-1.1.1.jar;需要添加jstl标签库支

10、持,此处使用的是jstl-1.2.jar和 sta ndard.jar;杷coErnons-logging-l.l.l.jar油 jstl-1.2.jar站 org.springframework.aop-3.1.3.RELEASE.jar 划 org.springframework.asm-3.1.3.RELEASE.jarorg .sprin gfra m eworlc. a spects-3.1.3.RE LEASE .jar 护| org. springf ram ework, bea n s-3,1,3, RELEASE j 自 r 站 org.springframework.con

11、text.support-3.1.3.RELEASE.jar 划 org .sprin gfra m ework, context- 3.1.3.RE LEASE .jar 劍 org .sprin gfra m eworlc. core- 3.1.3.RE LEASE .jar 护| org .sprin gfra m ework, expressi on-3.1.3.RE LEASE .jar 护| org.springframework.instrument.tomcat-3.1.3.RELEASE.jarorg .sprin gfra m eworkri stru m ent- 3.1

12、.3.RE LEASE.jar 劍 org. s pri n gfra m eworlc.j d be- 3.1.3. RE LEASE .jar 护| org.springframework.jms-3.1.3.RELEASE.jar 闽 org. s pri n gf ram ework, orm-3.1.3. RE LEASE.jar 划 org.springframeworlc.oxim-3.1.3.RELEASE.jarorg.springframework.test-3.1.3.RELEASE.jar 护| org. s pri n gfra m ework.tra n s a c

13、li on - 3.1.3. RE LEASE .jar 闽 org.springframework.web.portlet-3.1.3.RELEASE.jar 杷org. s pri ngframeworlc. web. servlet-3.1.3. RE LEASE .jar 护| org.springframework.web.struts-3.13.RELEASE.jar 站 org. s pri ngf ram ework, web-3.1.3. RE LEASE.jar , standard jar4. 配置 web.xml 文件我们在 web.xml 中进行如下配置:hello

14、org.springframework.web.servlet.DispatcherServlet!- contextConfigLocation /WEB-INF/applicationContext.xml -1hello/ load-on-startup:表示启动容器时初始化该Servlet;url-pattern:表示哪些请求交给Spring Web MVC处理,“/”是用来定义默认 servlet映射的。也可以如“*.html”表示拦截所有以html为扩展名的请求。如果你没有指定in it-param里面con textCofigLocation的值中对应的XML文件的话, 那 么

15、像 本 段 代 码 对 应 在 springmvc 中 的 配 置 文 件 就 应 该 是 /WEB-INF/hello-servlet.xml 这样的文件。5. 创建 hello-servlet.xml 文件像上一步所说的,在/WEB-INF目录下创建hello-servlet.xml文件。 BeanNameUrlHandlerMapping:表示将请求的URL和Bean名字映射,如URL为上 下文/hello”,则Spring配置文件必须有一个名字为“/hello”的Bean,上下文默认忽略。(2) In ter nalResourceViewResolver:用于支持 Servlet、J

16、SP 视图解析; viewClass: JstlView表示JSP模板页面需要使用JSTL标签库,classpath中必须包 含jstl的相关jar包;prefix和suffix:查找视图页面的前缀和后缀(前缀逻辑视图名后缀),比如传进来 的逻辑视图名为hello,则该该jsp视图页面应该存放在Content根目录下”;(3) n ame=/hello.htm:前边配置的 Bea nN ameUrlHa ndlerMappi ng,表示如过请求的 URL 为“上下文/hello”,则将会交给该Bean进行处理。6. 创建控制器类public class HelloController impl

17、ements 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 helloHelloWor

18、ld!你好,$name8. 部署,启动 tomcat,访问 localhost:8080/springmvc_01/hello。会出现下面的页 面。HelioWorld!你好,张艳羽三、环境搭建:基于注解实现SpringMvc 很大的一个优点就是基于注解的零配置支持,也就是说,我们可以用 注解的方式实现上节的例子。1. 在 hello-servlet.xml 中加上这两行配置(加在前面): 2. 新建 index.jsp springmvc 示例-注解/titlespringmvc 传值vin put type=text n ame=user name/vin put type=submit

19、value=提交/v/formv/bodyv/html3. 改造 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 表示传值的对象model.addAttribute(username, username);相当于 request.setAttribute(“username”,username);return hello 表示返回的逻辑视图名称4. hello.jspTransitional/ENInsert title herehello:$username!访问 localhost:8080/springmvc_01/index.jspform提交到控制器,返回hello,跳转到hello.jsphello:adminI

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!