![springmvcday01_第1页](http://file3.renrendoc.com/fileroot_temp3/2022-1/16/00069c56-d829-42af-98bf-702f38e4d703/00069c56-d829-42af-98bf-702f38e4d7031.gif)
![springmvcday01_第2页](http://file3.renrendoc.com/fileroot_temp3/2022-1/16/00069c56-d829-42af-98bf-702f38e4d703/00069c56-d829-42af-98bf-702f38e4d7032.gif)
![springmvcday01_第3页](http://file3.renrendoc.com/fileroot_temp3/2022-1/16/00069c56-d829-42af-98bf-702f38e4d703/00069c56-d829-42af-98bf-702f38e4d7033.gif)
![springmvcday01_第4页](http://file3.renrendoc.com/fileroot_temp3/2022-1/16/00069c56-d829-42af-98bf-702f38e4d703/00069c56-d829-42af-98bf-702f38e4d7034.gif)
![springmvcday01_第5页](http://file3.renrendoc.com/fileroot_temp3/2022-1/16/00069c56-d829-42af-98bf-702f38e4d703/00069c56-d829-42af-98bf-702f38e4d7035.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Springmvc框架课程1 课程计划1、 springmvc介绍2、 springmvc处理请求的流程3、 入门程序4、 Springmvc的框架原理(重点)5、 三大组件配置6、 整合ssm框架(重点)7、 注解开发(重点)8、 Springmvc和struts2的区别2 springmvc介绍Springmvc是一个基于mvc模式的前端web框架,类似于struts2,但是由于springmvc是spring的一个模块,它与spring集成无需中间整合包。Mvc:M模型 、V 视图 、C 控制器3 Springmvc处理请求的流程Springmvc处理器请求的流程,可以理解为mvc三大模
2、块的调用流程4 入门程序4.1 目标1、 掌握前端控制器的配置2、 掌握处理器的开发(注解方式)4.2 需求开发商品列表功能4.3 环境准备l Jdkl Idel Spring:3.2.0l Tomcat:74.4 工程搭建l Spring的jar包(springmvc的jar包)l Jstl的包l Commons-logging的包4.5 代码实现4.5.1 创建po类4.5.2 配置前端控制器在web.xml中进行配置4.5.3 配置springmvc.xml在config下创建springmvc.xml文件4.5.4 开发处理器Springmvc开发处理器方式有多种,主要讲解三种:实现H
3、ttpRequestHandler接口、实现Controller接口、使用注解开发(重点)。 实现HttpRequestHandler接口 实现Controller接口 使用注解4.5.5 配置处理器在springmvc.xml中配置处理器4.5.6 Jsp页面从课件中直接拷贝4.5.7 部署测试5 Springmvc的框架原理5.1 入门程序的问题1、 前端控制器如何找到处理器其他组件(作用:根据请求url查找处理器,查找到处理器返回一个Object对象)2、 前端控制器如何执行处理器If(handler instanceof HttpRequest
4、Handler)(HttpRequestHandler)handler).requestHandleelse if (handler instanceof Controller)(HttpRequestHandler)handler).requestHandle其他组件(作用:适配处理器类型、执行处理器)3、 前端控制器如何渲染视图在springmvc中view是一个接口,它有很多实现其他组件(作用:根据视图名称返回具体视图对象)5.2 框架图参考excel5.3 组件分析l 前端控制器(只需要配置、已经学习)l 处理器映射器(只需要配置)l 处理器适配器(只需要配置)l 处理器(需要开发、已
5、经学习)l 视图解析器(只需要配置)l 视图(已经学习)5.4 默认配置5.5 源码分析Springmvc的入口是DispatcherServlet类中的doService方法:2、但是,真正去进行请求控制的方法是doDispatch():3、Dodispatch方法内容如下:6 三大组件配置三大组件:处理器映射器、处理器适配器、视图解析器6.1 非注解的处理器映射器、处理器适配器6.1.1 BeanNameUrlHandlerMapping作用:根据处理器bean的name去和请求URL进行匹配。配置方式:除了默认,还可以在springmvc.xml中进行显式的配置6.1.2 HttpReq
6、uestHandlerAdapter适配、执行实现了HttpRequestHandler接口的处理器配置方式:除了默认,还可以在springmvc.xml中进行显式的配置如何适配如何执行6.1.3 SimpleControllerHandlerAdapter适配、执行实现了Controller接口的处理器配置方式:除了默认,还可以在springmvc.xml中进行显式的配置6.2 注解的处理器映射器、处理器适配器6.2.1 注解映射器和适配器介绍org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapp
7、ing 是在spring3.1之前使用的注解映射器。org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping是在spring3.1之后使用的注解映射器。org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter 是在spring3.1之前使用的注解适配器。org.springframework.web.servlet.mvc.method.annotation.RequestMappingHa
8、ndlerAdapter是在spring3.1之后使用的注解配置器。注意:1、注解方式的映射器和适配器在3.1版本前后是不一样的,主讲3.1之后。2、注解方式的处理器映射器和处理器适配器必须配对使用,不能与非注解的处理器映射器和适配器混用。6.2.2 配置 通过bean标签配置 通过mvc标签配置(推荐)6.3 视图解析器InternalResourceViewResolver,该视图解析器可以对jsp视图进行解析,但是需要jstl的jar包。Controller方法修改如下:通过request请求转发或者response的请求重定向,不会经过视图解析器进行解析。7
9、 Ssm框架整合7.1 整合思路7.2 工程搭建l MySQL驱动包l Dbcp连接池包l Mybatis的核心包、依赖包l Spring和mybatis的整合包l Aop的依赖包l Spring的包(包含springmvc)l Jstl包l Commons包7.3 需求将入门程序中商品数据由静态数据,换成从数据库中读取。7.4 具体整合7.4.1 整合mapper 整合配置文件.1 Mybatis的配置文件将perties和perties拷贝到config目录下。载config包下创建mybatis包,然后创建SqlMapConfig
10、.xml.2 Spring的配置文件在config包下,创建spring包,然后创建applicationContext-dao.xml文件 代码将逆向工程生成的代码拷贝到项目中。根据需求进行分析,如果逆向工程的代码不能满足需求,需要自定义持久层代码。.1 创建po类.2 Mapper接口.3 映射文件7.4.2 整合service Service接口 Service实现类 在spring配置文件中配置service在config/spring包下创建applicationConte
11、xt-service.xml<beans xmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance" xmlns:mvc="/schema/mvc"xmlns:context="/schema/context"xmlns:aop="http:
12、//schema/aop" xmlns:tx="/schema/tx"xsi:schemaLocation="/schema/beans /schema/beans/spring-beans-3.2.xsd /schema/mvc http:/www.springframework
13、.org/schema/mvc/spring-mvc-3.2.xsd /schema/context /schema/context/spring-context-3.2.xsd /schema/aop /schema/aop/spring-aop-3.2.xsd /schema/tx http:/www.s
14、/schema/tx/spring-tx-3.2.xsd "><!- 配置service的bean -><context:component-scan base-package="cn.itcast.ssm.service"></context:component-scan><!- 配置事务管理器 -><bean id="transactionManager"class="org.springframework.jdbc.datasourc
15、e.DataSourceTransactionManager"><!- 配置数据源 -><property name="dataSource" ref="dataSource"></property></bean><!- 配置通知 -><tx:advice id="txAdvice" transaction-manager="transactionManager"><tx:attributes><!- 配置事务
16、传播特性 -><tx:method name="save*" propagation="REQUIRED" /><tx:method name="add*" propagation="REQUIRED" /><tx:method name="insert*" propagation="REQUIRED" /><tx:method name="delete*" propagation="REQUIRE
17、D" /><tx:method name="del*" propagation="REQUIRED" /><tx:method name="remove*" propagation="REQUIRED" /><tx:method name="update*" propagation="REQUIRED" /><tx:method name="modify*" propagation="RE
18、QUIRED" /><tx:method name="find*" read-only="true" /><tx:method name="query*" read-only="true" /><tx:method name="select*" read-only="true" /><tx:method name="get*" read-only="true" /><
19、/tx:attributes></tx:advice><!- AOP -><aop:config><aop:advisor advice-ref="txAdvice"pointcut="execution(* cn.itcast.ssm.service.*.*(.)" /></aop:config></beans>7.4.3 整合Controller 配置前端控制器 配置springmvc.xml在spring包下创建springmvc.xml文件7
20、.4.3.3 开发处理器 Jsp从入门程序中拷贝7.4.4 整合spring的配置文件7.4.5 部署测试8 注解开发8.1 需求完成商品修改功能的开发1、 展示商品修改页面2、 点击确认修改按钮,将修改的数据进行提交8.2 开发mapper分析:1、 根据商品ID查询商品数据2、 根据商品ID修改商品数据8.3 开发serviceService接口Service实现类8.4 开发Controller创建success.jsp并且将editItems.jsp从课件中拷贝到项目里8.5 参数绑定Springmvc中的参数绑定,就是将request请求中的key/value字符串,通
21、过参数绑定组件,进行类型转换,然后将转换后的数据赋值到Controller方法的形参中。Springmvc接收参数是在Controller的方法形参中进行接收的。8.5.1 默认支持的绑定类型可以在Controller方法的形参中直接使用以下类型Ø HttpServletRequest通过request对象获取请求信息Ø HttpServletResponse通过response处理响应信息Ø HttpSession通过session对象得到session中存放的对象Ø Model/ModelMapmodel是一个接口,modelMap是一个接口实现 。
22、作用:将model数据填充到request域。8.5.2 简单类型参数绑定如果request中的key和Controller方法的形参一致,则可以直接绑定成功。如果request中的key和Controller方法的形参不一致,则需要使用RequestParam注解进行参数绑定 直接绑定请求URL:http:/localhost:8280/ssmhm18/editItems.do?id=1Controller方法: 通过注解绑定通过RequestParam注解进行简单类型的参数绑定请求URL:http:/localhost:8280/ssmhm18/editItem
23、s.do?itemsid=1Controller方法:.1 RequestParam注解l Value:指定request中的key,可以写成RequestParam(value="itemsid")或者RequestParam("itemsid")l Required:指定request中该key指定的key/value值不能为空,即是必须的。默认为true。l defaultValue:指定一个默认值,当required是true时,可以在url中不填写该key的值8.5.3 pojo的参数绑定pojo的参数绑定,需要request中k
24、ey和Controller方法的pojo参数的属性名称一致,则绑定成功。Jsp页面:Input框的name值要和pojo类的属性名称一致Items类:Controller方法:8.5.4 自定义参数绑定对于日期类型的参数,springmvc的绑定是支持的不好,所以需要程序员进行自定义的参数绑定,才能解决该问题。 自定义Converter 配置Converter 注册Converter8.5.5 乱码问题 Post方式在web.xml中添加以下内容:<!- 配置post方式的字符过滤器解决中文乱码问题 -><filter&
25、gt;<filter-name>CharacterEncodingFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param><param-name>encoding</param-name><param-value>utf-8</param-value></init-param></filter>
26、;<filter-mapping><filter-name>CharacterEncodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping> Get方式有两种方式修改get请求的乱码:u 修改tomcat配置文件server.xml,添加编码与工程编码一致,如下:<Connector URIEncoding="utf-8" connectionTimeout="20000" po
27、rt="8080" protocol="HTTP/1.1" redirectPort="8443"/>u 对传入的请求参数进行重新编码:String username = new String(request.getParamter("userName").getBytes("ISO8859-1"),"utf-8")ISO8859-1是tomcat默认编码,需要将tomcat编码后的内容按utf-8编码8.6 RequestMapping8.6.1 对请求URL进行映射
28、写成以下形式:RequestMapping(value="/editItemsSubmit")或者RequestMapping("/editItemsSubmit")8.6.2 窄化请求在Controller类上加RequestMapping注解,在类上加注解,那么该类的方法如果被访问,则必修加上类上的注解。窄化请求可以对请求URL进行分类管理请求URL:http:/localhost:8280/ssmhm18/items/editItems.do?id=18.6.3 现在http请求方法Controller方法:u 限定GET方法RequestMapp
29、ing(method = RequestMethod.GET)如果通过Post访问则报错:HTTP Status 405 - Request method 'POST' not supported例如:RequestMapping(value="/editItems",method=RequestMethod.GET)u 限定POST方法RequestMapping(method = RequestMethod.POST)如果通过get访问则报错:HTTP Status 405 - Request method 'GET' not supportedu GET和POST都可以Reques
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年三氟丙烯合作协议书
- 三年级下册口算题
- 三年级数学下册口算练习
- 三年级数学上册第二单元口算两位数减两位数教案
- 重庆交通大学《管理学精要》2023-2024学年第二学期期末试卷
- 2025年春统编版语文一年级下册第一单元单元任务群整体公开课一等奖创新教学设计
- 琼台师范学院《商务研究与信息系统》2023-2024学年第二学期期末试卷
- 南京理工大学《工程制图与计算机绘图》2023-2024学年第二学期期末试卷
- 吉林工程职业学院《中国当代史专题》2023-2024学年第二学期期末试卷
- 水库建设实施方案的经济效益分析
- 中国服装零售行业发展环境、市场运行格局及前景研究报告-智研咨询(2025版)
- 新概念第一册单词汇总带音标EXCEL版
- 作用于血液及造血器官的药 作用于血液系统药物
- 心肺复苏(最全版)完整版
- 春节节后施工复工安全培训
- GB/T 3478.1-1995圆柱直齿渐开线花键模数基本齿廓公差
- GB/T 1346-2001水泥标准稠度用水量、凝结时间、安定性检验方法
- FZ/T 25001-2012工业用毛毡
- 瑞幸咖啡SWOT分析
- DL∕T 1867-2018 电力需求响应信息交换规范
- 小学生品德发展水平指标评价体系(小学)
评论
0/150
提交评论