当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:14:00  来源:本站整理

<b>Struts1.x系列教程(15):操纵DownloadAction类统计文件下载次</b>[Java编程]

赞助商链接



  本文“<b>Struts1.x系列教程(15):操纵DownloadAction类统计文件下载次</b>[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=InnoDB DEFAULTCHARSET=gbk;


  以上是“<b>Struts1.x系列教程(15):操纵DownloadAction类统计文件下载次</b>[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • <b>hosts是什么 hosts文件在什么位置 若何改正hosts</b>
  • <b>在 Windows 8 中手动安装语言包</b>
  • <b>五个常见 PHP数据库问题</b>
  • Windows中Alt键的12个高效快速的利用本领介绍
  • <b>MySQL ORDER BY 的实现解析</b>
  • <b>详解MySQL存储历程参数有三种范例(in、out、inout)</b>
  • <b>Win8系统恢复出来经典的开始菜单的办法</b>
  • <b>Win8系统花屏怎么办 Win8系统花屏的办理办法</b>
  • <b>Windows 7系统下无线网卡安装</b>
  • <b>为什么 Linux不需求碎片整理</b>
  • <b>Windows 8中删除账户的几种办法(图)</b>
  • <b>教你如安在win7下配置路由器</b>
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .