搜档网
当前位置:搜档网 › SpringMVC笔记1

SpringMVC笔记1

SpringMVC笔记1
SpringMVC笔记1

SpringMVC第一天基础知识

课程安排:

第一天:springMVC的基础知识

什么是sprinvmvc?

Springmvc框架原理(掌握)

前端控制器、处理器映射器、处理器适配器、视图解析器Springmvc入门程序

目的:对前端控制器、处理器映射器、处理器适配器、视图解析器学习。

非注解的处理器映射器、处理器适配器

注解的处理器映射器、处理器适配器。

注解的处理器映射器、处理器适配器(掌握)

Springmvc和mybatis整合(掌握)

常用的注解学习

参数绑定(简单类型、pojo、集合类型)

自定义参数绑定(掌握)

Springmvc和struts2区别

第二天:springmvc的高级应用

参数绑定(集合类型)

数据回显

上传图片

Json数据交互

RESTful支持

拦截器

1.S pringMVC框架

1.1什么是SpringMVC

Springmvc是spring框架的一个模块,springmvc和spring无需通过中间整合层进行整合。

Springmvc是一个基于mvc的web框架。

1.2.mvc在b/s系统下的应用

mvc 是一个设计模式,mvc 在b/s 系统下的应用。

1.3 springmvc 框架

第一步:发起请求到前端控制器(DispatherServlet)

第二步:前端控制器请求HandlerMapping查找Handler

可以根据xml配置、注解进行查找。

第三步:处理器映射器HandlerMapping向前端控制器返回Handler 第四步:前端控制器调用处理器适配器去执行Handler

第五步:处理器适配器去执行Handler

第六步:Handler执行完给适配器返回ModelAndView

第七步:处理器适配器向前端控制器返回ModelAndView ModelAndView是SpringMVC框架的一个底层对象,包括Model和View

第八步:前端控制器请求视图解析器去进行视图解析,根据逻辑视图名解析成真正的视图(jsp)

第九步:视图解析器向前端控制器返回View

第十步:前端控制器进行视图渲染

视图渲染将模型数据(在ModelAndView对象中)填充到request域。第十一步:前端控制器向用户响应结果。

组件:

1、前端控制器DispatcherServlet(不需要程序员开发)作用:接受

请求,响应结果,相当于转发器,中央处理器。有了

DispatherServlet减少了其他组件之间的耦合度。

2、处理器映射器(HandlerMapping)(不需要程序员开发),

作用:根据请求的url查找Handler。

3、处理器适配器(HandlerMapping)

作用:按照特定规则(HandlerMapping要求的规则)去执行

Handler。

4、处理器Handler(需要程序员开发)

注意:编写Handler时按照HandlerAdapter的要求去做,这样

适配器才可以去正确执行Handler。

5、视图解析器View resolver(不需要程序员开发)

作用:进行视图解析,根据逻辑视图名解析成真正的而视图

(view)

6、视图view(需要程序员开发jsp)

View是一个接口,实现类支持不同的view类型(jsp,freemaker,pdf……….)

2.入门程序

2.1需求

以案例作为驱动

Springmvc和mybatis使用同一个案例(商品订单案例)。

功能需求:商品列表查询

2.2环境准备

数据库环境:mysql5.1

Java环境:

Jdk1.7.0_72

Eclipse indigo

Springmvc版本:spring3.2

需要spring3.2所有jar(一定包括spring-webmvc-3.2.0.RELEASE.jar)

为了让建立的工程也能顺利导入到MyEclipse中,需要如下建立工程。

即如下所示:

2.3配置前端控制器

在web.xml中配置前端控制器。

2.4配置处理器适配器

在classpath下的springmvc.xml中配置处理器适配器。

通过查看源代码

此适配器能执行实现Controller接口的Handler

2.5开发Handler

需要实现controller接口,才能由org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter 适配器执行。

2.6视图编写

2.7配置Handler

将编写Handler在spring容器中加载。

2.8配置处理器映射器

在classpath下的springmvc.xml中配置处理器映射器。

2.9配置视图解析器

需要配置解析jsp的视图解析器。

2.10部署调试

访问地址:http://localhost:8080/SpringMVCFirst/query.action

处理器映射器根据url找不到Handler,报下边的错误。说明url错误。

处理器映射器根据url找到了Handler,转发的jsp页面找到,报下边的错误,说明jsp页面地址错误了。

3.非注解的处理器映射器和适配器

3.1非注解的处理器映射器

处理器映射器:

org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping 另一个处理器映射器:

org.springframework.web.servlet.handler.SimpleUrlHandlerMapping

多个映射器可以并存,前端控制器判断url能让哪些映射器映射,就让正确的映射器处理。

3.2非注解的处理器适配器

org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter 要求编写的Handler实现Controller接口

org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter

要求编写的Handler实现HttpRequestHandler接口

//使用此方法可以通过修改response,设置响应的数据格式,比如响应json 数据

/*

response.setCharacterEncoding("utf-8");

response.setContentType("application/json;charset=utf-8");

response.getWriter().write("json串");*/

4.D ispatcherServlet.properties

前端控制器从上边的文件中加载处理器映射器、适配器、视图解析器等组件,如果不在springmvc.xml中配置,就会使用默认加载的。

5.注解的处理器映射器和处理器适配器

在spring3.1之前使

org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHan dlerMapping注解映射器。

在spring3.1之后使用

org.springframework.web.servlet.mvc.method.annotation.RequestMapp ingHandlerMapping注解映射器

在spring3.1之前使用

org.springframework.web.servlet.mvc.annotation.AnnotationMethodHa ndlerAdapter注解适配器。

在spring3.1之后使用

org.springframework.web.servlet.mvc.method.annotation.RequestMapp ingHandlerAdapter注解适配器。

5.1配置注解映射器和适配器

5.2开发注解Handler

使用注解的映射器和注解的适配器(注解的映射器和注解的适配器必须配对使用。)

//使用Controller标识它是一个控制器

@Controller

public class ItemsController3 {

//商品查询列表

//@RequestMapping实现对queryItems方法和url进行映射,一个方法对应一个url

//一般建议将url和方法写成一样

@RequestMapping("/queryItems")

public ModelAndView queryItems()throws Exception{

//调用service查找数据库,查询商品列表,这里使用静态数据模拟

List itemsList = new ArrayList();

//向list中填充静态数据

Items items_1 = new Items();

items_1.setName("联想笔记本");

items_1.setPrice(6000f);

items_1.setDetail("ThinkPad T430 联想笔记本电脑!");

Items items_2 = new Items();

items_2.setName("苹果手机");

items_2.setPrice(5000f);

items_2.setDetail("iphone6苹果手机!");

itemsList.add(items_1);

itemsList.add(items_2);

//返回ModelAndView

ModelAndView modelAndView = new ModelAndView();

//相当于request的setAttribut,在jsp页面中通过itemsList取数据

modelAndView.addObject("itemsList", itemsList);

//指定视图

modelAndView.setViewName("/WEB-INF/jsp/items/itemsList.jsp" );

return modelAndView;

}

5.3在spring容器中加载Handler

base-package="cn.itcast.ssm.controller">

SpringMVC深入总结

一、前言: 大家好,Spring3 MVC是非常优秀的MVC框架,由其是在3.0版本发布后,现在有越来越多的团队选择了Spring3 MVC了。Spring3 MVC结构简单,应了那句话简单就是美,而且他强大不失灵活,性能也很优秀。 官方的下载网址是:https://www.sodocs.net/doc/b85536041.html,/download(本文使用是的Spring 3.0.5版本) Struts2也是比较优秀的MVC构架,优点非常多比如良好的结构。但这里想说的是缺点,Struts2由于采用了值栈、OGNL表达式、struts2标签库等,会导致应用的性能下降。Struts2的多层拦截器、多实例action性能都很好。可以参考我写的一篇关于Spring MVC与Struts2与Servlet比较的文章https://www.sodocs.net/doc/b85536041.html,/admin/blogs/698217 Spring3 MVC的优点: 1、Spring3 MVC的学习难度小于Struts2,Struts2用不上的多余功能太多。呵呵,当然这不是决定因素。 2、Spring3 MVC很容易就可以写出性能优秀的程序,Struts2要处处小心才可以写出性能优秀的程序(指MVC部分) 3、Spring3 MVC的灵活是你无法想像的,Spring的扩展性有口皆碑,Spring3 MVC当然也不会落后,不会因使用了MVC框架而感到有任何的限制。 Struts2的众多优点:略... (呵呵,是不是不公平?) 众多文章开篇时总要吹些牛,吸引一下读者的眼球,把读者的胃口调起来,这样大家才有兴趣接着往后看。本文也没能例外。不过保证你看了之后不会后悔定有收获。

SpringMVC配置的基本步骤

Springmvc框架配置步骤 小弟是个新手,有不对的地方请tell me,一起研究探讨。谢谢。 1062140832@https://www.sodocs.net/doc/b85536041.html, 配置springmvc框架其实不是很难,要现有一个总体的认识,确定要分几步,每一步主要是干什么,不要太盲目。 以为web.xml是项目的入口,所以所有的配置文件,都必须引入到wem.xml中,不然,配置了等于没用。所以,要先从入口入手。 配置web.xml 1、首先引入springmvc-servlet.xml文件 springMVC org.springframework.web.servlet.DispatcherServlet contextConfigLocation /WEB-INF/spring/mvc/springmvc-servlet.xml 1 2、将spring加载到web.xml中 org.springframework.web.context.ContextLoaderListener 3、配置上下文路径 contextConfigLocation /WEB-INF/spring/spring.xml,/WEB-INF/spring/spring-*.xml 说明:如果有很多的关于spring的配置文件,建议分开写,比如事务一个文件(spring-transaction.xml),springmvc-hibernate.xml一个配置文件,这样方便读写。

2.Spring-mvc框架结构及执行流程

Spring mvc架构及执行流程一、请求处理流程图 二、执行流程说明 三、组件说明

说明:在springmvc的各个组件中,处理器映射器、处理器适配器、视图解析器称为springmvc 的三大组件。 需要用户编写的组件有handler、view 四、Spring MVC配置 1、组件扫描器:使用组件扫描器省去在spring容器配置每个controller类,使用 自动扫描标记@controller的配置如下:

2、RequestMappingHandlerMapping:注解处理器映射器,对类中标记@RequestMapping 的方法进行映射,根据RequestMapping定义的url匹配RequestMapping标记的方 法,匹配成功返回HandlerMethod对象给前端控制器,HandlerMethod对象中封装 注解描述: @RequestMapping:定义请求url到处理器功能方法的映射 3、RequestMappingHandlerAdapter:注解式处理器适配器,对标记@RequestMapping 的方法进行适配。 从spring3.1版本开始,废除了AnnotationMethodHandlerAdapter的使用,推荐使用 4、:spring mvc 使用自动加载RequestMappingHandlerMapping和RequestMappingHandlerAdapter,可用在spring-mvc.xml 配置文件总使用替代注解处理器和适配器的配置。 5、视图解析器 InternalResourceViewResolver:支持JSP视图解析 viewClass:JstlView表示JSP模板页面需要使用JSTL标签库,所以classpath中必须包含jstl 的相关jar 包。此属性可以不设置,默认为JstlView。 prefix 和suffix:查找视图页面的前缀和后缀,最终视图的址为:

springmvc原理

1.springmvc请所有的请求都提交给DispatcherServlet,它会委托应用系统的其他模块负责负责对请求进行真正的处理工作。 2.DispatcherServlet查询一个或多个HandlerMapping,找到处理请求的Controller. 3.DispatcherServlet请请求提交到目标Controller 4.Controller进行业务逻辑处理后,会返回一个ModelAndView 5.Dispathcher查询一个或多个ViewResolver视图解析器,找到ModelAndView对象指定的视图对象 6.视图对象负责渲染返回给客户端。 为什么要使用Spring: AOP 让开发人员可以创建非行为性的关注点,称为横切关注点,并将它们插入到应用程序代码中。使用AOP后,公共服务(比如日志、持久性、事务等)就可以分解成方面并应用到域对象上,同时不会增加域对象的对象模型的复杂性。 IOC 允许创建一个可以构造对象的应用环境,然后向这些对象传递它们的协作对象。正如单词倒置所表明的,IOC 就像反过来的JNDI。没有使用一堆抽象工厂、服务定位器、单元素(singleton)和直接构造(straightconstruction),每一个对象都是用其协作对象构造的。因此是由容器管理协作对象(collaborator)。 Spring即使一个AOP框架,也是一IOC容器。Spring 最好的地方是它有助于您替换对象。有了Spring,只要用JavaBean属性和配置文件加入依赖性(协作对象)。然后可以很容易地在需要时替换具有类似接口的协作对象。 Spring 框架是一个分层架构,由7 个定义良好的模块组成。Spring模块构建在核心容器之上,核心容器定义了创建、配置和管理bean 的方式,如图 1 所示。 组成Spring 框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模块联合实现。每个模块的功能如下: 核心容器:核心容器提供Spring框架的基本功能。核心容器的主要组件是BeanFactory,它是工厂模式的实现。BeanFactory使用控制反转(IOC)模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。 Spring 上下文:Spring 上下文是一个配置文件,向Spring框架提供上下文信息。Spring 上下文包括企业服务,例如JNDI、EJB、电子邮件、国际化、校验和调度功能。 Spring AOP:通过配置管理特性,Spring AOP 模块直接将面向方面的编程功能集成到了Spring框架中。所以,可以很容易地使Spring 框架管理的任何对象支持AOP。Spring AOP

学习SpringMVC系列教程(一)Spring MVC入门

2.1、Spring Web MVC是什么 Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发,Spring Web MVC也是要简化我们日常Web开发的。 另外还有一种基于组件的、事件驱动的Web框架在此就不介绍了,如Tapestry、JSF等。 Spring Web MVC也是服务到工作者模式的实现,但进行可优化。前端控制器是DispatcherServlet;应用控制器其实拆为处理器映射器(Handler Mapping)进行处理器管理和视图解析器(View Resolver)进行视图管理;页面控制器/动作/处理器为Controller接口(仅包含ModelAndView handleRequest(request, response) 方法)的实现(也可以是任何的POJO类);支持本地化(Locale)解析、主题(Theme)解析及文件上传等;提供了非常灵活的数据验证、格式化和数据绑定机制;提供了强大的约定大于配置(惯例优先原则)的契约式编程支持。 2.2、Spring Web MVC能帮我们做什么 √让我们能非常简单的设计出干净的Web层和薄薄的Web层; √进行更简洁的Web层的开发;

√天生与Spring框架集成(如IoC容器、AOP等); √提供强大的约定大于配置的契约式编程支持; √能简单的进行Web层的单元测试; √支持灵活的URL到页面控制器的映射; √非常容易与其他视图技术集成,如Velocity、FreeMarker等等,因为模型数据不放在特定的API里,而是放在一个Model里(Map数据结构实现,因此很容易被其他框架使用); √非常灵活的数据验证、格式化和数据绑定机制,能使用任何对象进行数据绑定,不必实现特定框架的API; √提供一套强大的JSP标签库,简化JSP开发; √支持灵活的本地化、主题等解析; √更加简单的异常处理; √对静态资源的支持; √支持Restful风格。 2.3、Spring Web MVC架构

spring MVC配置详解

牧涛 --<-<-<@态度决定一切→_→。。。 ?博客园 ?首页 ?新闻 ?新随笔 ?联系 ?管理 ?订阅 随笔- 171 文章- 3 评论- 79 spring MVC配置详解 现在主流的Web MVC框架除了Struts这个主力外,其次就是Spring MVC了,因此这也是作为一名程序员需要掌握的主流框架,框架选择多了,应对多变的需求和业务时,可实行的方案自然就多了。不过要想灵活运用Spring MVC来应对大多数的Web开发,就必须要掌握它的配置及原理。 一、Spring MVC环境搭建:(Spring 2.5.6 + Hibernate 3.2.0) 1. jar包引入 Spring 2.5.6:spring.jar、spring-webmvc.jar、commons-logging.jar、cglib -nodep-2.1_3.jar Hibernate 3.6.8:hibernate3.jar、hibernate-jpa-2.0-api-1.0.1.Final.jar、a ntlr-2.7.6.jar、commons-collections-3.1、dom4j-1.6.1.jar、javassist-3.12.0.G A.jar、jta-1.1.jar、slf4j-api-1.6.1.jar、slf4j-nop-1.6.4.jar、相应数据库的驱动jar 包 SpringMVC是一个基于DispatcherServlet(分发器)的MVC框架,每一个请求最先访问的都是DispatcherServlet,DispatcherServlet负责转发每一个Request请求给相应的Handler,Handler处理以后再返回相应的视图(View)和模型(Model),返回的视图和模型都可以不指定,即可以只返回Model或只返回View或都不返回。 DispatcherServlet是继承自HttpServlet的,既然SpringMVC是基于DispatcherSe rvlet的,那么我们先来配置一下DispatcherServlet,好让它能够管理我们希望它管理的内容。HttpServlet是在web.xml文件中声明的。 spring org.springframework.web.servlet.DispatcherServlet< /servlet-class>