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