仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 641|回复: 11
打印 上一主题 下一主题

[学习教程] 发布一篇Struts1.x系列教程(15):利用DownloadAction类统计文件下载次数

[复制链接]
小女巫 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:21:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
但是对于JAVA技术类的学习,我觉得大课堂反而会影响自身独立思考的过程,因为上课的时候,老师讲课的速度很快为了不遗漏要点,通常会仔细的听,
除尺度的org.apache.struts.action.Action类外,在Struts中还供应了别的7个Action类来完成特别的事情。本文及前面的文章中将先容这些Action类的用法。
1、DownloadAction类简介
大概偶然必要在Web程序中到场下载功效。假如要下载的是静态文件,能够间接交给Web服务器处置,但假如要对下载的文件做分外的功效,如统计文件的下载次数。就必要鄙人载文件之前先要挪用响应的程序举行处置。
固然我们能够间接在Action子类中来处置下载文件,可是假如如许的程序对照多时,就会写良多反复的代码。为了简化这个事情。Struts供应了一个新的Action类:DownloadAction。一切承继了DownloadAction类的Struts举措都能够十分简单地完成下载文件的事情。
DownloadAction类有一个笼统办法getStreamInfo。这个办法的界说以下:
  1. protectedabstractStreamInfogetStreamInfo(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse)throwsException;
复制代码
getStreamInfo办法前往一个StreamInfo对象。StreamInfo接口是DownloadAction类的一个外部接口,这个接口的界说以下:
  1. publicstaticinterfaceStreamInfo{publicabstractStringgetContentType();publicabstractInputStreamgetInputStream()throwsIOException;}
复制代码
从下面的代码能够看出,StreamInfo接口有两个办法。个中getInputStream办法前往了服务端要下载的文件的InputStream对象。getContenttType办法前往了HTTP呼应动静头字段Content-Type的信息。在getStreamInfo办法中只需前往了完成这两个办法的StreamInfo对象,就能够主动完成下载事情。
为了便利起见,DownloadAction类中还供应了两个完成StreamInfo的内类:FileStreamInfo和ResourceStreamInfo。这两个类的机关办法的界说以下:
  1. publicFileStreamInfo(StringcontentType,Filefile);publicResourceStreamInfo(StringcontentType,ServletContextcontext,Stringpath);
复制代码
我们可使用FileStreamInfo类来下载静态的文件。假如要下载的文件在Web根目次,可使用ResourceStreamInfo类。个中path参数暗示文件相对Web根目次的路径,必需以“/”开首,暗示从Web根目次入手下手。
2、实例:统计文件的下载次数
在本节中将利用DownloadAction类完成一个统计文件下载次数的Web程序。这个程序的基础道理是当一个文件下载完成后,加这个文件在数据库中的下载次数加1,假如某个文件是第一次下载,则在数据库中增加一条新纪录,下载次数为1。
为了完成这个Web程序,必要以下几步:
【第1步】创建用于保留文件下载次数的数据表
在本例中我们利用名为struts数据库,而且在struts数据库中创建一个t_dcount表,代码以下:
  1. CREATETABLEstruts.t_dcount(idINTNOTNULL,countINTNOTNULL,filenameVARCHAR(256)NOTNULL,PRIMARYKEY(id))ENGINE=InnoDBDEFAULTCHARSET=gbk;
复制代码
<p>
Java的桌面程序开发在java程序员里通常叫swing开发,主要用的swing包里的类开发的,也就是通常说的c/s架构开发
飘飘悠悠 该用户已被删除
沙发
发表于 2015-1-19 20:07:13 | 只看该作者
接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。
第二个灵魂 该用户已被删除
板凳
发表于 2015-1-20 05:51:08 | 只看该作者
是一种为 Internet发展的计算机语言
因胸联盟 该用户已被删除
地板
发表于 2015-1-20 17:48:47 | 只看该作者
如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。
蒙在股里 该用户已被删除
5#
发表于 2015-1-28 10:33:25 | 只看该作者
Java 编程语言的风格十分接近C、C++语言。
透明 该用户已被删除
6#
发表于 2015-2-2 21:38:37 | 只看该作者
是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言
不帅 该用户已被删除
7#
发表于 2015-2-6 01:46:31 | 只看该作者
是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言
山那边是海 该用户已被删除
8#
发表于 2015-2-9 13:28:20 | 只看该作者
Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)
飘灵儿 该用户已被删除
9#
发表于 2015-2-27 06:37:06 | 只看该作者
Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)
小妖女 该用户已被删除
10#
发表于 2015-3-6 19:05:22 | 只看该作者
关于设计模式的资料,还是向大家推荐banq的网站 [url]http://www.jdon.com/[/url],他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。
变相怪杰 该用户已被删除
11#
发表于 2015-3-13 06:09:24 | 只看该作者
是一种使用者不需花费很多时间学习的语言
老尸 该用户已被删除
12#
发表于 2015-3-20 14:28:18 | 只看该作者
是一种语言,用以产生「小应用程序(Applet(s))
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-15 02:16

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表