Struts Spring Hibernate上传下载 --之一
2008-02-23 09:13:04来源:互联网 阅读 ()
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com IDC资讯:
主机资讯
注册资讯
托管资讯
vps资讯
网站建设
网站运营:
建站经验
策划盈利
搜索优化
网站推广
免费资源
网络编程:
Asp.Net编程
Asp编程
Php编程
Xml编程
Access
Mssql
Mysql
其它
服务器技术:
Web服务器
Ftp服务器
Mail服务器
Dns服务器
安全防护
软件技巧:
其它软件
Word
Excel
Powerpoint
Ghost
Vista
QQ空间
QQ
FlashGet
迅雷
网页制作:
FrontPages
Dreamweaver
Javascript
css
photoshop
fireworks
Flash
本文将围绕SSH文件上传下载的主题,向您详细讲述如何开发基于SSH的Web程序。SSH各框架的均为当前最新版本:
·Struts 1.2
·Spring 1.2.5
·Hibernate 3.0
本文选用的数据库为Oracle 9i,当然你可以在不改动代码的情况下,通过配置文件的调整将其移植到任何具有Blob字段类型的数据库上,如MySQL,SQLServer等。
总体实现
上传文件保存到T_FILE表中,T_FILE表结构如下:
图 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处理文件上传的方案:
图 2 SSH处理文件上传技术方案
文件上传的页面如图 3所示:
图 3 文件上传页面
文件下载的页面如图 4所示:
图 4 文件下载页面
该工程的资源结构如图 5所示:
图 5 工程资源结构
工程的类按SSH的层次结构划分为数据持久层、业务层和Web层;WEB-INF下的applicationContext.XML为Spring的配置文件,struts-config.xml为Struts的配置文件,file-upload.JSP为文件上传页面,file-list.jsp为文件列表页面。
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有