<%@ page contentType="text/html; charset=gb2312"%> Struts+Hibernate简化J2EE的文件操作
网站公告:   ◆北天JAVA技术网热情为java爱好者服务,本网内容包括JAVA(JSP、servlet、EJB、webservice、j2ee、javabean、应用服务器、JavaScript),数据库(MYSQL、SQL Server、Sybase、Oracle、DB2、数据库综合知识),设计研究(设计模式、Struts、Spring、Hibernate、设计框架、设计综合知识),WEB2.0新技术(主要介绍AJAX),以及各种技术的入门、实例、例子等等,欢迎各位多来坐坐!◆  诚邀各位JAVA爱好者加盟!◆  本网站内容丰富,更新快,保证每周20篇以上!  
加入收藏
设为首页
联系站长
承接项目
  相关资源:网站首页 | 免费培训学院 | 技术论坛 | JAVA聊天室 | 作家专栏 | 开发工具 | 认证考试 | 会员俱乐部
  JAVA技术初学者园地 | jsp与servlet | javascript | Java源代码 | EJB | web service | 应用服务器 | JAVA综合知识
  设计研究设计模式 | 设计框架 | Struts | Spring | Hibernate | 开源项目 | 面向对象设计 | 设计综合知识
  数 据 库MYSQL | SQL Server | Sybase | Oracle | DB2 | Informix | Access | 数据库综合知识
  其他资源:AJAX新技术 | 网站开发 | ERP软件 | OA办公软件 | 商业智能BI | 开发综合知识 | 承接项目 | 项目试用

 
 
Struts+Hibernate简化J2EE的文件操作
     发布者: 发布时间:2006-09-06
  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的远程接口。


图1.HelloSession EJB的接口。

  从Web层角度看,这个EJB为商业代理所存取。

  注意,该代码使用了一个类User的对象。User代表什么意思?它是一个保留在数据库中的用户实体的"Plain Old Java Object"(POJO)。你将会活跃地使用这个UserPOJO。设置它的属性并请求EJB来存储它,然后带回一个所有的已存在于数据库中的User实体的列表。或者,由它取回一个专门的User实体并存入POJO中,然后使用一个getter存取器来存取它的属性(见图2)。


图2.所有的Web层的servlet都使用该User POJO。

  非常明显,Web层仅由三个servlet(Struts Action的)组成,一个用于上载文件,一个用于下载文件,一个用于列出所有的User实体及其相关文件。

  ·DownloadFileAction:该servlet仅使用一个参数id,这是在数据库中的一个用户的id。然后,它装入该用户的实体并把该文件从BLOB字段传递到ServletOutputStream。

  ·UploadFileAction:该servlet负责从一个HTML表单中提取数据并用这些数据进一步生成DynaActionForm。它仅提取用户名和上载的文件。

  ·ListAllFilesAction:该servlet没有输入参数或数据,仅负责从数据库中装入所有可用的用户User实体。
(转载文章请保留出处:北天JAVA技术网(www.java114.com))
 
更多精彩文章:
Hibernate写作感想
JSF+Spring+Hibernate的实例讲解
Hibernate程序性能优化的考虑要点
品味Spring 的魅力
Spring Framework标记库初学指南
用Spring framework实现定时器功能
 
最近评论:
        
你曾悄悄的来过!
wow gold,wow gold,wow gold,ffxi gil max(7862)
        
你曾悄悄的来过!
wow gold,wow gold,wow gold,ffxi gil max(3771)
        
你曾悄悄的来过!
wow gold,wow gold,wow gold,ffxi gil max(4067)
        
冰封的往事!
wow power leveling,wow gold,WoW Gold,wow gold max(1720)
        
飞舞的传奇!
传世私服,传世私服.传奇世界私服传奇世界私服,传世私服传世私服, 传奇世界私服传奇世界私服.传奇私服传奇私服. max(6658)
        
飞舞的传奇!
传世私服,传世私服.传奇世界私服传奇世界私服,传世私服传世私服, 传奇世界私服传奇世界私服.传奇私服传奇私服. max(7112)
        
标 题:   
内 容:   
 
                                  
 
免责声明:该文章由网友发表,如果对您造成侵权,请联系站长

首页 - 承接项目 - 网站地图 - 联系我们 -
版权所有北天JAVA技术工作室 ICP证号:粤ICP备06079815号