今日内容
1.文件的上传与下载
1.0文件上传:
在web开发中一般会有文件上传的操作
一般JavaWeb开发中文件上传使用的 Apache组织的Commons FileUpload组件
SpringMVC中使用 MultipartFile file对象接受上传文件,必须保证 后台参数的名称和表单提交的文件的名称一致
文件上传必须条件
[if !supportLists]1. [endif]表单必须post
[if !supportLists]2. [endif]表单必须有file 文件域
[if !supportLists]3. [endif]表单的 enctype="multipart/form-data"
1.1拷贝jar包
commons-fileupload-1.2.2.jar
commons-io-1.4.jar
1.2准备jsp页面
(靠美工)
1.3写入后太代码
SpringMVC中使用 MultipartFile file对象接受上传文件,必须保证后台方法MultipartFile 参数的名称和表单提交的文件的名称一致
1.4配置文件上传解析器
1.5springmvc的拦截器
拦截器:Interceptor
Spring MVC 的拦截器类似于Servlet 开发中的过滤器Filter,用于对Controller进行预处理和后处理。
使用SpringMVC拦截器步骤:
1)定义拦截器类,实现接口org.springframework.web.servlet.HandlerInterceptor
2)在applicationContext.xml中配置拦截器
拦截器方法的执行时机:
1):preHandle:控制器方法执行之前执行,返回结果为true表示放行,如果返回为false,表示拦截(可以做权限拦截,登录检查拦截).
2):postHandle:控制器方法执行后,视图渲染之前执行(可以加入统一的响应信息).
3):afterCompletion:视图渲染之后执行(处理Controller异常信息,记录操作日志,清理资源等)
1.6使用poi组件导出excel文件
使用POI组件实现Excel数据的处理.
1.7springmvc控制器contrller的生命周期
Spring 容器创建的对象默认都是单例对象
SpringMVC对象 Controller的对象的创建有三种情况
Request : 在用户的一次请求中生效(用户每次请求都会创建Controller对象)多例
Session : Controller对象在一次会话中创建一个对象
如果控制器中有成员变量设置或者赋值操作,必须使用 request 返回
2.ssm的集成
2.0spring和各个框架的整合
Spring目前是JavaWeb开发中最终的框架,提供一站式服务,可以其他各个框架整合集成
Spring整合方案
2.1ssh
Struts2 : Web层框架
Spring :容器框架
Hibernate :持久层框架
2.2ssm
主流的项目架构的三大框架(相对其他框架而言,最优秀)
SpringMVC: spring自己家的 Web层框架,spring的一个模块
Spring:容器框架
MyBatis:持久层框架
3.spring和mybatis整合
3.0集成思路
实际开发,使用Maven项目,直接引入项项目在Maven仓库中的坐标即可
学习阶段:手动导入jar包,从零开始集成(巩固基础知识)
3.1创建java项目
3.2准备集成相关jar包
3.3springmvc依赖包
3.4mybatis依赖包
3.5各种各样的包
Spring自己并没有集成MyBatis框架,需要MyBatis自己来集成,所以需要自己提供Spring框架集成的桥梁包
如果我们使用的mybatis3.4.4 不能直接使用mybatis内置的桥梁包版本,版本比较低,无法正常运行,需要单独下载一个比价高的版本
[if !vml]
[endif]
[if !supportLists]1.1.1. [endif]数据库驱动包和连接池
[if !vml]
[endif]
[if !vml]
[endif]
[if !supportLists]1.1.2. [endif]Jstl标签库依赖包
[if !vml]
[endif]
[if !supportLists]1.1.3. [endif]Mybatis支持的日志包log4j
[if !vml]
[endif]
3.6项目集成的各种配置文件
3.7完成项目层与层之间spring对象的创建和依赖关系的维护
3.8MyBatis 框架SqlSessionFactory对象的创建
* 问题: UserMapper 代理对象如何创建?
*答:使用 SqlSession 操作对象创建 !
*
*问题: SqlSession 对象如何创建?
*
*答 : SqlSessionFactory工厂对象创建?
*
*问题: SqlSessionFactory对象如何创建
*
* 1,和Spring框架集成之前
* MyBatis框架自己读取配置文件中的相关配置去创建
* 2,和Spring框架集成之后
* 交个Spring容器来创建
*问题:如何在Spring框架中配置,创建出来SqlSessionFactory对象?
* mybatis和spring集成的类查阅桥梁包
* org.mybatis.spring.SqlSessionFactoryBean创建 SqlSessionFactory
*
*/
创建MyBatis框架工厂对象的类在mybatis-spring1.2.1.jar 桥梁包中的
org.mybatis.spring.SqlSessionFactoryBean 类
3.9创建mybatis的mapper接口的代理对象
使用桥梁包org.mybatis.spring.mapper.MapperFactoryBean<T> 创建UserMapper代理对象
3.10使用包扫描创建MyBatis的Mapper接口的代理对象
3.11mybatis的事务管理器的配置
一般开发,事务的管理都会使用aop切入到业务层