转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 软件开发 >> JAVA开发 >> 正文
Struts+Hibernate简化J2EE的文件操作         ★★★★

Struts+Hibernate简化J2EE的文件操作

作者:闵涛 文章来源:闵涛的学习笔记 点击数:715 更新时间:2009/4/22 23:29:46

  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实体。


没有相关教程
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · C语言系列  · VB.NET程序
    · JAVA开发  · Delphi程序
    · 脚本语言
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台