springmvc01standard.docx

上传人:b****2 文档编号:23156842 上传时间:2023-05-08 格式:DOCX 页数:23 大小:855.71KB
下载 相关 举报
springmvc01standard.docx_第1页
第1页 / 共23页
springmvc01standard.docx_第2页
第2页 / 共23页
springmvc01standard.docx_第3页
第3页 / 共23页
springmvc01standard.docx_第4页
第4页 / 共23页
springmvc01standard.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

springmvc01standard.docx

《springmvc01standard.docx》由会员分享,可在线阅读,更多相关《springmvc01standard.docx(23页珍藏版)》请在冰豆网上搜索。

springmvc01standard.docx

springmvc01standard

day01springmvc入门

课程计划:

1、springmvc介绍和框架原理

2、springmvc入门程序

3、ssm整合

4、springmvc参数绑定

5、springmvc与struts2的区别

1springmvc介绍和框架原理

1.1springmvc介绍

Springwebmvc和Struts2都属于表现层的框架,它是Spring框架的一部分(springmvc与spring之间无需整合),我们可以从Spring的整体结构中看得出来,如下图:

1.2什么是mvc

MVC的全名ModelViewController,即模型-视图-控制器的缩写,这是一种设计模式,而非架构。

MVC它强制的使用应用程序的输入、处理、和输出分开,这三个核心组件分别处理各自的的任务,最典型的MVC模式就是:

jsp+servlet+javabean的模式

用户的请求通过servlet(controller、service、dao)处理后,通过将数据库的信息映射成对应的javabean,并将该数据在页面显示(view),这就是一个最基本的MVC的模式。

这种设计模式的好处:

降低的各模块之间的耦合性(如果视图层需要改变其代码,修改页面样式,就不涉及到controller和model层代码;如果需要修改业务逻辑,这个时候是不需要修改与其相关的view视图代码等);重用性高:

多个视图可以共享一个数据模型,比如pc端下单和移动端下单,虽然订购的方式不一样,但是处理该数据的方式都是一样的;可维护性高等优点。

该模型基于Mvc的实现,在此模型中,由Servlet充当Controller层,Jsp只负责数据的显示,即view层,而JavaBean则负责封装数据,即Model层.此种模型的特点是,对于每一个响应用户请求的Servlet都必须配置到web.xml中,且对于页面转发或重定向仍然是在Servlet中书写硬编码,不利于转发目标的维护,同时,如果要支持国标化\文件上传\等功能,必须收程序员自己完成.

1.3struts2框架原理

1.客户端发起一个请求(*.action)

2.主控器FilterDispatcher拦截请求

3.主控器通过ActionMapper判断请求是否交给action处理.如果是,那么判断请求的action是否存在,如果不存在,报404错误.

4.主控器创建ActionProxy对象,这个对象全权负责action的执行.

5.ActionProxy通过ConfigurationManager对象获得当前访问的action的相关配置信息.

6.ActionProxy根据获得的action的配置信息,创建ActionInvocation对象.

7.ActionInvocation对象负责执行action前面的拦截器以及action对象,并且处理action执行后的结果.

8.action前面的拦截器被执行,最后执行action.

9.ActionInvocation得到action执行后的逻辑视图,根据逻辑视图找到物理视图,然后转发请求.

1.4springmvc框架原理

1、用户发送请求至前端控制器DispatcherServlet

2、DispatcherServlet收到请求调用HandlerMapping处理器映射器。

3、处理器映射器根据请求url找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。

4、DispatcherServlet通过HandlerAdapter处理器适配器调用处理器

5、执行处理器(Controller,也叫后端控制器)。

6、Controller执行完成返回ModelAndView

7、HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet

8、DispatcherServlet将ModelAndView传给ViewReslover视图解析器

9、ViewReslover解析后返回具体View

10、DispatcherServlet对View进行渲染视图(即将模型数据填充至视图中)。

11、DispatcherServlet响应用户

2springmvc入门程序---基于注解开发

2.1需求

查询商品的列表信息(暂时使用静态数据)。

2.2环境搭建

过程:

1、创建web工程

2、导入jar包

2.3创建商品的pojo

这里的商品信息我们直接从逆向工程中copy。

2.4编写Controller

1、@Controller注解:

我们都知道,在开发Struts2时我们都是编写的Action,而且编写的Action类能让Struts2框架的执行需要继承ActionSupport。

那么我们这里编写的Controller能够让springmvc框架执行我们需要在该类上添加@Controller注解(或者实现Controller或者HttpRequestHandler接口)即可。

2、@RequestMapping注解:

配置访问请求的url。

2.5编写jsp页面

2.6配置web.xml

1、配置springmvc的前端控制器

2、配置请求url的拦截格式

2.7编写springmvc.xml

作用:

1、配置扫描器

2、配置处理器映射器

3、配置处理器适配器

4、配置视图解析器

2.8加载springmvc.xml配置文件

2.9启动测试

success。

2.10优化

1、当我们访问请求时,才初始化springmvc的前端控制器,这样会降低用户的请求速度。

因此我们让改springmvc的前端控制器在tomcat容器启动时初始化比较合适。

2、优化视图解析器

3、注解驱动

3ssm整合

3.1整合思路

3.2环境搭建

3.2.1导入jar包

分析需要哪些jar包:

jsp层、controller层、service层、dao层、数据库

3.2.2创建工程的目录结构

3.2.3准备资源文件

3.2.4编写mybatis的全局配置文件

3.3编写配置文件

3.3.1编写applicationContext-mapper.xml

作用:

管理mybatis。

1、加载外部资源文件

2、管理数据源

3、管理SQLSessionFactory

4、管理批量代理对象

3.3.2编写applicationContext-service.xml

作用:

管理service。

3.3.3编写applicationContext-transaction.xml

3.3.4编写springmvc.xml

1、扫描controller

2、基于注解驱动的处理器映射器和适配的配置

3、配置视图解析器

4、加载所有的配置文件

3.3.5编写web.xml

3.4dao层开发

3.4.1copy逆向工程代码

略。

3.4.2创建两个pojo

3.4.2.1创建ItemsCustom

作用:

扩展items。

让程序更加灵活。

3.4.2.2创建ItemsQueryVo

作用:

包装类型的pojo,用于包装页面传递过来的条件。

3.4.3编写mapper接口

3.4.4编写mapper映射文件

3.5service层开发

3.5.1编写service接口

3.5.2编写实现类

3.6编写controller层

3.7添加jsp页面

3.8启动测试

success。

4springmvc的参数绑定

4.1概念

springmvc的参数绑定就是将请求的key/value或者form表单数据,通过springmvc参数绑定的特性将其绑定到对应Controller方法的形参上,该过程主要是通过HandlerMethodArgumentResolver类处理。

在参数绑定的过程中,如果将请求的数据与绑定到controller方法形参数据类型不一致,我们可以通过类型转换器来处理,即Converter实现。

4.2默认支持的参数绑定

例如:

如果需要request、response、model这些对象时,我们可以直接在方法的形参中添加这些变量。

4.2.1HttpServletRequest

通过request对象获取请求信息

4.2.2HttpServletResponse

通过response处理响应信息

4.2.3HttpSession

通过session对象得到session中存放的对象

4.2.4Model/ModelMap

model是一个接口,modelMap是一个接口实现。

作用:

将model数据填充到request域。

4.3基本类型的参数绑定

4.3.1需求

修改商品信息

4.3.2特点

请求url的key的名称必须与controller方法的形参一致。

4.3.3修改jsp页面的请求路径

4.3.4编写service接口、实现类

接口:

实现类:

4.3.5编写controller

4.3.6添加jsp页面

略。

4.3.7@RequestParam注解

特点:

1、value:

如果请求的key的名称与形参名称不一致可以通过该注解实现

2、required:

无请求参数key:

required默认值为true,即请求url后必须有参数。

3、defaultValue:

设置默认值,如果key有值默认值无效

4.4与pojo的参数绑定

4.4.1需求

更新用户

4.4.2特点

form表单中的input中name的值必须与controller形参pojo的属性名完全一致才能完成绑定。

4.4.3修改jsp页面的请求路径

4.4.4编写service接口、实现类

接口:

实现类:

4.4.5编写controller

注意:

springmvc4.0之后的版本中,如果类型不一致pojo无法完成绑定,例如时间字符串与date类型绑定。

在4.0之前是可以的,只是结果不正确。

4.4.5.1post提交乱码

4.4.5.2类型转换错误

原因:

string无法与date类型完成绑定。

解决:

自定义类型转换器---实现converter接口。

加载自定义类型转器。

4.4.5.3完善controller

4.4.6添加success页面

略。

4.5与包装类型的pojo参数绑定

4.5.1需求

根据商品名称查询

4.5.2修改jsp页面

4.5.3更新controller

5Struts2与springmvc区别

5.1使用上

DispatcherServlet---StrutsPrepareAndExecuteFilter

Handler(实现Controller或者HttpRequestHandler)---Action(继承ActionSupport)

HandlerInterceptor---Interceptor,由于sping是面向切面的编程,因此拦截器在spring中被弱化

HandlerMethodArgumentResolver-Model,spring通过参数绑定,而Struts2通过模型驱动或者属性驱动获取数据

ViewResolver解析---通过配置result指定一个具体的页面

5.2本质上

1、springMVC基于方法的开发,我们可以通过我们的代码中,我们没有所谓的数据域对象,除了引用的service就只有方法,而Struts2是基于类的开发,该类中有各种各样的全局变量,因此我们说Struts2基于类的开发。

2、springMVC可以单例开发,并且建议单例开发,因为springMVC通过controller的形参接收数据,方法结束后形参数据销毁;而Struts2则是通过模型驱动或者属性驱动获取数据,而且这些变量都是全局变量,因此Struts2是多例开发。

3、经常会说Struts2框架性能不好,是由于使用了Struts2的标签,从而加载很多的服务导致所谓的框架慢,所以我们建议使用页面使用jstl

4、所谓框架的性能,是与提供的服务的多少有关,而不是根据包的大小有关。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1