心的方向
新的征途......
BlogJava
首页
新随笔
新文章
联系
聚合
管理
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 规则引擎(1)
FrameWork(2)
j2ee(5)
其他(2)
数据库(1)
3G
王晓的BLOG-米亚罗
专注于移动应用开发,J2ME,Symbian,Linux;
IC卡
卡人
J2EE系统架构
诗特林-sterning
魅力J2EE系统架构+系统分析
linux
Chinaitlab-Linux频道
ChinaUnix
ChinaUnix's blog
Developer
Linux时代
linux联盟
中国LINUX论坛
红联Linux论坛
西邮linux
python
python-任我行
RCP
RCP专栏
Struts2
eXtremeComponents参考文档
Struts 2.0系列
校验Validation
XFire
Xfire
XFire and Websphere 5.1
我参与的团队
郑州JAVA小组
收藏Blog
C++技术相关博客
CanBeatle的博客
delphi相关博客
esffor
Gan's Blog
HuDon的专栏
jcc3120的专栏
lenhan12345的专栏
matrix---icess's blog
robbin
Robin's java world
superleo
中国龍
张爱雪的博客
我的世界我的梦-上善若水的程序人生
江南白衣
简单就是美
胡冰的收藏
郑州C++石正BLOG
思想,态度......
阿铮的箩筐
陈朋奕和谢仍明的博客
黎波
数据库
mysql5.0 dev手册
资料
BEA dev2dev在线
chinese document
很多JAVA文档治疗可供下载
CSS8 样吧
提供专业的CSS样式,各类样式属性查询的好去处
IBM developerWorks 中国
JBoss Rules 学习系列
时刻关注企业软件开发领域的变化与创新
有些JS的资料
网页标记大全
搜索
最新评论
1. re: 如何跳出页面的Frame框架
点一万个赞!!
--#include<red.h>
2. re: 页面中hidden属性的用法
不不不
--各顾各
3. re: 关于birt中文参数
评论内容较长,点击标题查看
--gmin
4. re: 如何备份Symantec AntiVirus的病毒库
找了很久的答案,今天终于搜索到了,真的非常谢谢博主!!
--steel
5. re: 如何跳出页面的Frame框架
非常非常非常非常非常非常非常谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢你 亲爱的楼主!!!!
--suansky
阅读排行榜
1. PowerDesigner导入导出PDM和rtf文件(12747)
2. 如何跳出页面的Frame框架(5662)
3. Spring与weblogic jndi集成(3489)
4. WebSphere5.1下发布XFire的问题解决(3456)
5. 在页面中动态添加一行以及删除一行列表(2934)
评论排行榜
1. 如何跳出页面的Frame框架(4)
2. 在页面中动态添加一行以及删除一行列表(2)
3. [导入]Struts中关于使用javascript的问题(2)
4. 编写properties文件的Eclipse插件(2)
5. 关于birt中文参数(1)
Struts+Spring+Hibernate实现上传下载(一)
转自:http://lihaiyan.javaeye.com/blog/127794
引言
文件的上传和下载在
J2EE
编程已经是一个非常古老的话题了,也许您马上就能掰着指头数出好几个著名的大件:如SmartUpload、
Apache
的FileUpload。但如果您的项目是构建在Struts+Spring+
Hibernate
(以下称SSH)框架上的,这些大件就显得笨重而沧桑了,SSH提供了一个简捷方便的文件上传下载的方案,我们只需要通过一些配置并辅以少量的代码就可以完好解决这个问题了。
本文将围绕SSH文件上传下载的主题,向您详细讲述如何开发基于SSH的Web程序。SSH各框架的均为当前最新版本:
·Struts 1.2
·Spring 1.2.5
·Hibernate 3.0
本文选用的数据库为
Oracle
9i,当然你可以在不改动代码的情况下,通过配置文件的调整将其移植到任何具有Blob字段类型的数据库上,如
MySQL
,SQLServer等。
总体实现
上传文件保存到T_FILE表中,T_FILE表结构如下:
420){this.resized=true;this.style.width=420;}" border=0>
图 1 T_FILE表结构
其中:
·FILE_ID:文件ID,32个字符,用Hibernate的uuid.hex算法生成。
·FILE_NAME:文件名。
·FILE_CONTENT:文件内容,对应Oracle的Blob类型。
·REMARK:文件备注。
文件数据存储在Blob类型的FILE_CONTENT表字段上,在Spring中采用OracleLobHandler来处理Lob字段(包括Clob和Blob),由于在程序中不需要引用到oracle数据驱动程序的具体类且屏蔽了不同数据库处理Lob字段方法上的差别,从而撤除程序在多数据库移植上的樊篱。
1.首先数据表中的Blob字段在Java领域对象中声明为byte[]类型,而非java.sql.Blob类型。
2.数据表Blob字段在Hibernate持久化映射文件中的type为org.springframework.orm.hibernate3.support.BlobByteArrayType,即Spring所提供的用户自定义的类型,而非java.sql.Blob。
3.在Spring中使用org.springframework.jdbc.support.lob.OracleLobHandler处理Oracle数据库的Blob类型字段。
通过这样的设置和配置,我们就可以象持久化表的一般字段类型一样处理Blob字段了。
以上是Spring+Hibernate将文件二进制数据持久化到数据库的解决方案,而Struts通过将表单中file类型的组件映射为ActionForm中类型为org.apache.struts.upload. FormFile的属性来获取表单提交的文件数据。
综上所述,我们可以通过图 2,描绘出SSH处理文件上传的方案:
420){this.resized=true;this.style.width=420;}" border=0>
图 2 SSH处理文件上传技术方案
文件上传的页面如图 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 文件下载页面
该工程的资源结构如图 5所示:
420){this.resized=true;this.style.width=420;}" border=0>
图 5 工程资源结构
工程的类按SSH的层次结构划分为数据持久层、业务层和Web层;WEB-INF下的applicationContext.xml为Spring的配置文件,struts-config.xml为Struts的配置文件,file-upload.jsp为文件上传页面,file-list.jsp为文件列表页面。
本文后面的章节将从数据持久层->业务层->Web层的开发顺序,逐层讲解文件上传下载的开发过程。
posted on 2008-04-10 14:48
阿伟
阅读(338)
评论(1)
编辑
收藏
所属分类:
框架整合
FeedBack:
#
re: Struts+Spring+Hibernate实现上传下载(一)
2009-03-31 17:54 |
yongyuan93139
怎么没有粘贴代码呢
回复
更多评论
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
知识库
C++博客
博问
管理
相关文章:
Spring与Struts如何整合
Struts+Spring+Hibernate实现上传下载(四)
Struts+Spring+Hibernate实现上传下载(三)
Struts+Spring+Hibernate实现上传下载(二)
Struts+Spring+Hibernate实现上传下载(一)