动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
电脑书籍下载:程序设计书籍 | 数据库教程书籍 | 平面与多媒体书籍 | 网络通讯书籍 | 系统管理书籍 | 网络安全书籍 | 认证考试书籍
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Java教程 ]的信息



本月文章推荐
.2003 冬季 Java FAQ.
.传输文本.
.Java的类专题整理.
.Java多线程程序设计初步.
.动态编译java程序实例.
.Java与XML联合编程.
.利用applet标签载入applet.
.Java技术与XML常见问题之JAX-RPC.
.java、J2EE基础问题汇总.
.setUTCHours 方法.
.J2SE应用:JAVA语言关于字符串替.
.新手入门:Java中的修饰词使用方.
.MySQL实施JDBC 2.0/3.0 API的新特.
.RecordManagementSystem从入门到.
.Java核心代码例程之:RMIExample.
.Java学习从入门到精通.书籍篇.
.Write 方法.
.我们组的Web应用开发方式.
.作了个小测试equals 和==.
.Jboss的JDBC数据源配置步骤详解大.

Struts+Hibernate简化J2EE的文件操作

发表日期:2008-1-5 |



  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的远程接口。

Struts+Hibernate简化J2EE的文件操作(图一)
图1.HelloSession EJB的接口。

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

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

Struts+Hibernate简化J2EE的文件操作(图二)
图2.所有的Web层的servlet都使用该User POJO。

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

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

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

  ·ListAllFilesAction:该servlet没有输入参数或数据,仅负责从数据库中装入所有可用的用户User实体。 4. 环境预备

  假如所有相应的软件被正确下载并安装在你的PC上,那么下一步,你就可以预备数据库和存取该数据库的用户而且还要使用名为MySqlDS的JNDI设置好连接池与数据源。同时,请肯定MySQL Connector/J存在于你的类路径中!要检查这一点,只需输入:

echo %CLASSPATH%

  文件mysql-connector-java-3.1.7-bin.jar(带有完整的路径)应该于此。这是必需的,因为WebLogic需要查找到MySQL Connector/J并用该驱动程序进行工作。

  现在,既然一切预备妥当,我们就可以在数据库中创建一个表以用于保存用户实体。以任何MySQL客户身份登录到该数据库,然后输入:



上一篇:JAVA学习经验谈 人气:302
下一篇:使用Java Servlet动态生成图片 人气:339
浏览全部Java的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-7-9 顶级域名交易系统 v3.0 完整版
2008-7-9 ACTCMS网站管理系统 v2.0 Build
2008-7-9 Roclog v3.1.4 build 20080706
2008-7-9 乐彼网上开店系统(56770 Eshop)
2008-7-9 深度学习alexa排名提升专家 v1.0
2008-7-9 BBSXP 2008 Build 8.0.5 正式版
2008-7-9 一句话快速信息发布系统 修正完美
2008-7-9 ACTCMS网站管理系统 v2.0 Build
2008-7-9 乐涛涛留言本 08版
2008-7-5 AgileMessenger即时通讯工具 v1.
2008-7-5 GoodCalculator2.0版固件计算器
2008-7-5 RepoName源地址搜索工具 v1.21b
2008-7-5 AgileMessenger即时通讯工具 v1.
2008-7-5 TouchCopy多媒体管理软件 v3.13完
2008-7-5 VideosTone视频铃声 v1.1汉化破解
2008-7-5 TouchPad触摸板 v4.44破解版
2008-7-5 VideosTone破解补丁 v1.0
2008-7-5 Feeds GoogleReader客户端 v0.4.3


  发表评论
姓 名: 验证码:
内 容:
[ 汉字翻译拼音 ] [ 广告代码 ] [ 符号对照表 ] [ 进制转换 ] [ 经典小工具 ] [ 个税计算 ] [ 汉字简繁转换 ] [ 普通单位换算 ] [ 公制单位换算 ]
[ 生辰老黄历 ] [ 国内电话区号 ] [ 国家代码与域名缩写 ] [ 文字加密解密 ] [ 健康查询 ] [ 万年历 ] [ 手机号码查询 ] [ ip搜索 ] [ Google PR查询 ]
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報