心的方向
新的征途......
BlogJava
首頁
新隨筆
新文章
聯(lián)系
聚合
管理
posts - 75,comments - 19,trackbacks - 0
<
2008年4月
>
日
一
二
三
四
五
六
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
7
8
9
10
常用鏈接
我的隨筆
我的評論
我的參與
最新評論
留言簿
(1)
給我留言
查看公開留言
查看私人留言
我參與的團隊
鄭州Java小組(0/0)
隨筆分類
DateBase(10)
hibernate(1)
J2EE(31)
JS(8)
Linux
Python (1)
Spring(1)
Web Service(2)
工具資料(8)
情感生活(5)
報表(1)
方向(3)
框架整合(5)
隨筆檔案
2010年6月 (1)
2009年7月 (1)
2008年11月 (1)
2008年9月 (1)
2008年8月 (2)
2008年6月 (1)
2008年5月 (1)
2008年4月 (14)
2008年3月 (1)
2008年2月 (5)
2008年1月 (5)
2007年12月 (5)
2007年11月 (1)
2007年10月 (2)
2007年7月 (3)
2007年6月 (5)
2007年4月 (5)
2007年3月 (21)
文章分類
Linux(4)
文章檔案
2007年3月 (4)
收藏夾
Drools 規(guī)則引擎(1)
FrameWork(2)
j2ee(5)
其他(2)
數(shù)據(jù)庫(1)
3G
王曉的BLOG-米亞羅
專注于移動應用開發(fā),J2ME,Symbian,Linux;
IC卡
卡人
J2EE系統(tǒng)架構(gòu)
詩特林-sterning
魅力J2EE系統(tǒng)架構(gòu)+系統(tǒng)分析
linux
Chinaitlab-Linux頻道
ChinaUnix
Developer
Linux時代
linux聯(lián)盟
中國LINUX論壇
紅聯(lián)Linux論壇
西郵linux
python
python-任我行
RCP
RCP專欄
Struts2
eXtremeComponents參考文檔
Struts 2.0系列
校驗Validation
XFire
Xfire
XFire and Websphere 5.1
我參與的團隊
鄭州JAVA小組
收藏Blog
C++技術(shù)相關(guān)博客
CanBeatle的博客
delphi相關(guān)博客
esffor
HuDon的專欄
jcc3120的專欄
lenhan12345的專欄
robbin
Robin's java world
superleo
中國龍
張愛雪的博客
我的世界我的夢-上善若水的程序人生
江南白衣
簡單就是美
胡冰的收藏
鄭州C++石正BLOG
思想,態(tài)度......
阿錚的籮筐
陳朋奕和謝仍明的博客
黎波
數(shù)據(jù)庫
mysql5.0 dev手冊
資料
BEA dev2dev在線
chinese document
很多JAVA文檔治療可供下載
CSS8 樣吧
提供專業(yè)的CSS樣式,各類樣式屬性查詢的好去處
IBM developerWorks 中國
JBoss Rules 學習系列
時刻關(guān)注企業(yè)軟件開發(fā)領(lǐng)域的變化與創(chuàng)新
有些JS的資料
網(wǎng)頁標記大全
搜索
最新評論
1.?re: 如何跳出頁面的Frame框架
點一萬個贊!!
--#include<red.h>
2.?re: 頁面中hidden屬性的用法
不不不
--各顧各
3.?re: 關(guān)于birt中文參數(shù)
評論內(nèi)容較長,點擊標題查看
--gmin
4.?re: 如何備份Symantec AntiVirus的病毒庫
找了很久的答案,今天終于搜索到了,真的非常謝謝博主!!
--steel
5.?re: 如何跳出頁面的Frame框架
非常非常非常非常非常非常非常謝謝謝謝謝謝謝謝謝謝謝謝謝謝謝謝謝謝謝謝謝謝你 親愛的樓主!!!!
--suansky
閱讀排行榜
1.?PowerDesigner導入導出PDM和rtf文件(12802)
2.?如何跳出頁面的Frame框架(5679)
3.?Spring與weblogic jndi集成(3494)
4.?WebSphere5.1下發(fā)布XFire的問題解決(3469)
5.?在頁面中動態(tài)添加一行以及刪除一行列表(2936)
評論排行榜
1.?如何跳出頁面的Frame框架(4)
2.?在頁面中動態(tài)添加一行以及刪除一行列表(2)
3.?[導入]Struts中關(guān)于使用javascript的問題(2)
4.?編寫properties文件的Eclipse插件(2)
5.?關(guān)于birt中文參數(shù)(1)
Struts+Spring+Hibernate實現(xiàn)上傳下載(一)
轉(zhuǎn)自:http://lihaiyan.javaeye.com/blog/127794
引言
文件的上傳和下載在
J2EE
編程已經(jīng)是一個非常古老的話題了,也許您馬上就能掰著指頭數(shù)出好幾個著名的大件:如SmartUpload、
Apache
的FileUpload。但如果您的項目是構(gòu)建在Struts+Spring+
Hibernate
(以下稱SSH)框架上的,這些大件就顯得笨重而滄桑了,SSH提供了一個簡捷方便的文件上傳下載的方案,我們只需要通過一些配置并輔以少量的代碼就可以完好解決這個問題了。
本文將圍繞SSH文件上傳下載的主題,向您詳細講述如何開發(fā)基于SSH的Web程序。SSH各框架的均為當前最新版本:
·Struts 1.2
·Spring 1.2.5
·Hibernate 3.0
本文選用的數(shù)據(jù)庫為
Oracle
9i,當然你可以在不改動代碼的情況下,通過配置文件的調(diào)整將其移植到任何具有Blob字段類型的數(shù)據(jù)庫上,如
MySQL
,SQLServer等。
總體實現(xiàn)
上傳文件保存到T_FILE表中,T_FILE表結(jié)構(gòu)如下:
420){this.resized=true;this.style.width=420;}" border=0>
圖 1 T_FILE表結(jié)構(gòu)
其中:
·FILE_ID:文件ID,32個字符,用Hibernate的uuid.hex算法生成。
·FILE_NAME:文件名。
·FILE_CONTENT:文件內(nèi)容,對應Oracle的Blob類型。
·REMARK:文件備注。
文件數(shù)據(jù)存儲在Blob類型的FILE_CONTENT表字段上,在Spring中采用OracleLobHandler來處理Lob字段(包括Clob和Blob),由于在程序中不需要引用到oracle數(shù)據(jù)驅(qū)動程序的具體類且屏蔽了不同數(shù)據(jù)庫處理Lob字段方法上的差別,從而撤除程序在多數(shù)據(jù)庫移植上的樊籬。
1.首先數(shù)據(jù)表中的Blob字段在Java領(lǐng)域?qū)ο笾新暶鳛閎yte[]類型,而非java.sql.Blob類型。
2.數(shù)據(jù)表Blob字段在Hibernate持久化映射文件中的type為org.springframework.orm.hibernate3.support.BlobByteArrayType,即Spring所提供的用戶自定義的類型,而非java.sql.Blob。
3.在Spring中使用org.springframework.jdbc.support.lob.OracleLobHandler處理Oracle數(shù)據(jù)庫的Blob類型字段。
通過這樣的設(shè)置和配置,我們就可以象持久化表的一般字段類型一樣處理Blob字段了。
以上是Spring+Hibernate將文件二進制數(shù)據(jù)持久化到數(shù)據(jù)庫的解決方案,而Struts通過將表單中file類型的組件映射為ActionForm中類型為org.apache.struts.upload. FormFile的屬性來獲取表單提交的文件數(shù)據(jù)。
綜上所述,我們可以通過圖 2,描繪出SSH處理文件上傳的方案:
420){this.resized=true;this.style.width=420;}" border=0>
圖 2 SSH處理文件上傳技術(shù)方案
文件上傳的頁面如圖 3所示:
420){this.resized=true;this.style.width=420;}" border=0 resized="true">
圖 3 文件上傳頁面
文件下載的頁面如圖 4所示:
420){this.resized=true;this.style.width=420;}" border=0 resized="true">
圖 4 文件下載頁面
該工程的資源結(jié)構(gòu)如圖 5所示:
420){this.resized=true;this.style.width=420;}" border=0>
圖 5 工程資源結(jié)構(gòu)
工程的類按SSH的層次結(jié)構(gòu)劃分為數(shù)據(jù)持久層、業(yè)務層和Web層;WEB-INF下的applicationContext.xml為Spring的配置文件,struts-config.xml為Struts的配置文件,file-upload.jsp為文件上傳頁面,file-list.jsp為文件列表頁面。
本文后面的章節(jié)將從數(shù)據(jù)持久層->業(yè)務層->W(wǎng)eb層的開發(fā)順序,逐層講解文件上傳下載的開發(fā)過程。
posted on 2008-04-10 14:48
阿偉
閱讀(344)
評論(1)
編輯
收藏
所屬分類:
框架整合
FeedBack:
#
re: Struts+Spring+Hibernate實現(xiàn)上傳下載(一)
2009-03-31 17:54 |
yongyuan93139
怎么沒有粘貼代碼呢
回復
更多評論
新用戶注冊
刷新評論列表
只有注冊用戶
登錄
后才能發(fā)表評論。
網(wǎng)站導航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
相關(guān)文章:
Spring與Struts如何整合
Struts+Spring+Hibernate實現(xiàn)上傳下載(四)
Struts+Spring+Hibernate實現(xiàn)上傳下載(三)
Struts+Spring+Hibernate實現(xiàn)上傳下載(二)
Struts+Spring+Hibernate實現(xiàn)上傳下載(一)
Copyright ©2025 阿偉 Powered By
博客園
模板提供:
滬江博客
主站蜘蛛池模板:
亚洲乱码一区av春药高潮
|
亚洲成A人片在线观看无码3D
|
亚洲区小说区激情区图片区
|
福利片免费一区二区三区
|
日本免费的一级v一片
|
亚洲熟妇AV一区二区三区宅男
|
日本妇人成熟免费中文字幕
|
国产亚洲sss在线播放
|
国内免费高清在线观看
|
亚洲一区二区三区写真
|
国产伦精品一区二区三区免费下载
|
亚洲av无码成人精品区在线播放
|
精品久久久久久亚洲综合网
|
无码国产亚洲日韩国精品视频一区二区三区
|
亚洲乱亚洲乱妇无码
|
又粗又硬又黄又爽的免费视频
|
亚洲美女免费视频
|
亚洲成a人片在线看
|
国产精品免费一级在线观看
|
深夜特黄a级毛片免费播放
|
国产专区一va亚洲v天堂
|
好久久免费视频高清
|
亚洲国产av美女网站
|
国产在线ts人妖免费视频
|
9久热这里只有精品免费
|
亚洲人成电影亚洲人成9999网
|
1024免费福利永久观看网站
|
亚洲hairy多毛pics大全
|
久久亚洲高清综合
|
精品福利一区二区三区免费视频
|
亚洲欧美成人综合久久久
|
久久亚洲av无码精品浪潮
|
亚洲成年人免费网站
|
美国免费高清一级毛片
|
亚洲国产成人精品不卡青青草原
|
性一交一乱一视频免费看
|
久久久久久噜噜精品免费直播
|
亚洲成a人片在线观看中文app
|
国产免费av一区二区三区
|
3344永久在线观看视频免费首页
|
亚洲成av人无码亚洲成av人
|