Struts+Hibernate简化J2EE的文件操作
发表于:2007-07-04来源:作者:点击数:
标签:
1. 引言 每位Web 开发 者在工程中都必须实现至少实现一个客户文件的上载功能。永远需要!然而,要求用户仅提供一个指向其数据的 URL 是不公平的。作为一个开发者,帮助用户顺利地完成这些正是你的工作。HTTP协议的使用将十分有助于解决这个问题,但是许多开
1. 引言 每位Web
开发者在工程中都必须实现至少实现一个客户文件的上载功能。永远需要!然而,要求用户仅提供一个指向其数据的
URL是不公平的。作为一个开发者,帮助用户顺利地完成这些正是你的工作。HTTP协议的使用将十分有助于解决这个问题,但是许多开发者并没有选择使用HTTP协议。
你需要解决的问题有:存储上载的文件并找到关于问题"Where?","Why?"和"How?"等等的有关答案。
本文将解释所有在解决这些问题中遇到的瓶颈,并提供了功能性的、易于理解的代码,这些内容很可能会应用于你将来的工程中。
2. 准备工作 本文将使用当前最流行的开发工具,它们是:
·应用程序
服务器:
WebLogic 8.1 SP3服务器
·基于
Java的构建工具:Apache
Ant 1.6.2
·
数据库服务器:
MySQL 4.0.16
·用于从Java连接到MySQL的:MySQL Connector/J 3.1.7
Struts 1.2.4用作构建Java Web应用程序的框架,而Hibernate 3.0(RC1)用于对象/关系持续性操作和查询服务。
本文虽然基于
Windows平台写成,但在其它操作系统之上,应该稍作修改就能运行。
另外,读者还应熟悉BEA WebLogic服务器以及使用Struts和Hibernate进行J2EE应用程序的开发。篇幅所限,本文并没有讨论关于应用程序和数据库服务器配置的问题。
3. 上载工程分析 现在让我们讨论存储上载文件的机制,并回答上面列出的三个问题。
·Where?你将会把上载文件存储到一个数据库中。
·Why?在许多情况下,它确实是合适的
解决方案。使用本文的解决方案,你不会因同步上载文件而烦恼,一旦你正在备份着应用程序-你只需要备份数据库就可以了。而且,你不需要与一个用户及其在一文件系统上的文件一直保持十分笨拙的联系。
·How?可以使用BLOB(二进制大型对象)字段实现。这样的字段用于存储大型的并且经常是原始或二进制的格式。Hibernate可以使你非常容易地操作这些字段。
典型情况下,一个企业应用程序(EAR)由两部分组成:Web层(WAR)和商业层(EJB)。商业层包含一个无状态的会话
bean-它借助于Hibernate的帮助实现数据的存储。图1显示了EJB的远程接口。