今日內(nèi)容
1.文件的上傳與下載
1.0文件上傳:
在web開發(fā)中一般會(huì)有文件上傳的操作
一般JavaWeb開發(fā)中文件上傳使用的 Apache組織的Commons FileUpload組件
SpringMVC中使用? MultipartFile file對(duì)象接受上傳文件,必須保證 后臺(tái)參數(shù)的名稱和表單提交的文件的名稱一致
文件上傳必須條件
[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準(zhǔn)備jsp頁(yè)面
(靠美工)
1.3寫入后太代碼
SpringMVC中使用? MultipartFile file對(duì)象接受上傳文件,必須保證后臺(tái)方法MultipartFile 參數(shù)的名稱和表單提交的文件的名稱一致
1.4配置文件上傳解析器
1.5springmvc的攔截器
攔截器:Interceptor
Spring MVC 的攔截器類似于Servlet 開發(fā)中的過濾器Filter,用于對(duì)Controller進(jìn)行預(yù)處理和后處理踱承。
使用SpringMVC攔截器步驟:
1)定義攔截器類,實(shí)現(xiàn)接口org.springframework.web.servlet.HandlerInterceptor
2)在applicationContext.xml中配置攔截器
攔截器方法的執(zhí)行時(shí)機(jī):
1):preHandle:控制器方法執(zhí)行之前執(zhí)行,返回結(jié)果為true表示放行,如果返回為false,表示攔截(可以做權(quán)限攔截,登錄檢查攔截).
2):postHandle:控制器方法執(zhí)行后,視圖渲染之前執(zhí)行(可以加入統(tǒng)一的響應(yīng)信息).
3):afterCompletion:視圖渲染之后執(zhí)行(處理Controller異常信息,記錄操作日志贰锁,清理資源等)
1.6使用poi組件導(dǎo)出excel文件
使用POI組件實(shí)現(xiàn)Excel數(shù)據(jù)的處理.
1.7springmvc控制器contrller的生命周期
Spring 容器創(chuàng)建的對(duì)象默認(rèn)都是單例對(duì)象
SpringMVC對(duì)象 Controller的對(duì)象的創(chuàng)建有三種情況
Request : 在用戶的一次請(qǐng)求中生效(用戶每次請(qǐng)求都會(huì)創(chuàng)建Controller對(duì)象)多例
Session : Controller對(duì)象在一次會(huì)話中創(chuàng)建一個(gè)對(duì)象
如果控制器中有成員變量設(shè)置或者賦值操作,必須使用 request 返回
2.ssm的集成
2.0spring和各個(gè)框架的整合
Spring目前是JavaWeb開發(fā)中最終的框架屋剑,提供一站式服務(wù)固歪,可以其他各個(gè)框架整合集成
Spring整合方案
2.1ssh
Struts2 : Web層框架
Spring :容器框架
Hibernate :持久層框架
2.2ssm
主流的項(xiàng)目架構(gòu)的三大框架(相對(duì)其他框架而言,最優(yōu)秀)
?SpringMVC: spring自己家的 Web層框架资锰,spring的一個(gè)模塊
?Spring:容器框架
?MyBatis:持久層框架
3.spring和mybatis整合
3.0集成思路
實(shí)際開發(fā)谆棱,使用Maven項(xiàng)目,直接引入項(xiàng)項(xiàng)目在Maven倉(cāng)庫(kù)中的坐標(biāo)即可
學(xué)習(xí)階段:手動(dòng)導(dǎo)入jar包拯田,從零開始集成(鞏固基礎(chǔ)知識(shí))
3.1創(chuàng)建java項(xiàng)目
3.2準(zhǔn)備集成相關(guān)jar包
3.3springmvc依賴包
3.4mybatis依賴包
3.5各種各樣的包
Spring自己并沒有集成MyBatis框架历造,需要MyBatis自己來集成,所以需要自己提供Spring框架集成的橋梁包
如果我們使用的mybatis3.4.4 不能直接使用mybatis內(nèi)置的橋梁包版本船庇,版本比較低吭产,無法正常運(yùn)行,需要單獨(dú)下載一個(gè)比價(jià)高的版本
[if !vml]
[endif]
[if !supportLists]1.1.1.??[endif]數(shù)據(jù)庫(kù)驅(qū)動(dòng)包和連接池
[if !vml]
[endif]
[if !vml]
[endif]
[if !supportLists]1.1.2.??[endif]Jstl標(biāo)簽庫(kù)依賴包
[if !vml]
[endif]
[if !supportLists]1.1.3.??[endif]Mybatis支持的日志包log4j
[if !vml]
[endif]
3.6項(xiàng)目集成的各種配置文件
3.7完成項(xiàng)目層與層之間spring對(duì)象的創(chuàng)建和依賴關(guān)系的維護(hù)
3.8MyBatis 框架SqlSessionFactory對(duì)象的創(chuàng)建
* 問題: UserMapper 代理對(duì)象如何創(chuàng)建鸭轮?
???????? ?*答:使用 SqlSession 操作對(duì)象創(chuàng)建 !
???????? ?*
???????? ?*問題: SqlSession 對(duì)象如何創(chuàng)建臣淤?
???????? ?*?
???????? ?*答 : SqlSessionFactory工廠對(duì)象創(chuàng)建?
???????? ?*
???????? ?*問題: SqlSessionFactory對(duì)象如何創(chuàng)建
???????? ?*
???????? ?* 1窃爷,和Spring框架集成之前
???????? ?*?MyBatis框架自己讀取配置文件中的相關(guān)配置去創(chuàng)建
???????? ?* 2邑蒋,和Spring框架集成之后
???????? ?*? 交個(gè)Spring容器來創(chuàng)建
???????? ?*問題:如何在Spring框架中配置,創(chuàng)建出來SqlSessionFactory對(duì)象按厘?
???????? ?*?mybatis和spring集成的類查閱橋梁包
???????? ?*?org.mybatis.spring.SqlSessionFactoryBean創(chuàng)建 SqlSessionFactory
???????? ?*
???????? ?*/
創(chuàng)建MyBatis框架工廠對(duì)象的類在mybatis-spring1.2.1.jar 橋梁包中的
org.mybatis.spring.SqlSessionFactoryBean 類
3.9創(chuàng)建mybatis的mapper接口的代理對(duì)象
使用橋梁包org.mybatis.spring.mapper.MapperFactoryBean<T> 創(chuàng)建UserMapper代理對(duì)象
3.10使用包掃描創(chuàng)建MyBatis的Mapper接口的代理對(duì)象
3.11mybatis的事務(wù)管理器的配置
一般開發(fā)医吊,事務(wù)的管理都會(huì)使用aop切入到業(yè)務(wù)層