自动更新的JSP下载页面

自动更新的JSP下载页面

方法就是通过1个javabean,在每次有访问到JSP页面的时候javabean被激发搜索文件夹的内容,当文件夹有了更新时,javabean搜索出更新后的文件和原来已经存在的文件一齐列出来供访问者下载。每个供下载的文件(比如file.zip)都有一个对应的描述文件(比如file.txt),这个javabean会把描述文件.txt的内容作为下载文件的描述一齐显示出来作为下载链接的附加信息,如果没有提供对应的.txt描述文件,则会显示"no descrition"

下面是javabean的内容

/*
* Created on 2004-7-22
* @author lingch
*
* functions:
* 1. search the directory for files.
* 2. return the coresponding .txt description content.
*/

package p;
import java.io.*;
import java.util.*;

public class files_lookup {
File files;
Vector result;

public files_lookup()
{
}

public Vector lookup_files(String path)//---------path should be the downloads dir
{
Vector result=new Vector();
files=new File(path);
String sub_files[];

if(files.isDirectory())
{
sub_files=files.list();//---------list all files under downloads dir
}
else
{
result.add("path "+path+ " is not a dir");
return result;
}

for(int i=0;i<sub_files.length;i++)
{
if(sub_files[i].lastIndexOf(".txt")>=0)
{
continue;//------------- .txt are description files.not for downloading.
}
result.add(sub_files[i]);
}

return result;
}

public String get_file_description(String file_name)//----path should be a file name that collecting info
{
File file=new File(file_name);
String description="no description";

String f_name=file_name.substring( 0,file_name.lastIndexOf("."));
f_name=f_name+".txt";// ------change the extension file name to .txt

FileReader rd;
BufferedReader brd;
try{// read .txt content
rd=new FileReader(f_name);
brd=new BufferedReader(rd);
description=brd.readLine();
String temp;
while((temp=brd.readLine())!=null)
{
description+=temp;
}
brd.close();
}
catch(FileNotFoundException ee)
{
}
catch(IOException ee)
{
}

return description;
}
}

而jsp页面可以像下面这样组织
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.util.*" errorPage="" %>
<%@ page language="java" import="p.*" %>
<jsp:useBean id="lb" scope="page" class="p.files_lookup" />
<html>
<head>
<title>lingch's download page</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body>
<%
String path=getServletConfig().getServletContext().getRealPath("// ")+" //downloads ";
Vector v=lb.lookup_files(path);
if(v!=null)
{
for(int i=0;i<v.size();i++)
{
%>
<p>file : <a href="downloads/<%out.print(v.get(i));%>"><%out.print(v.get(i));%></a></p>
<p>decription : <%out.print(lb.get_file_description( path+" //"+v.get(i)));%></p >
<hr width="300">
<%
}//for
}//if
%>
<strong> </strong>
</body>
</html>

整个应用的文件结构如下
downloads/web-inf/web.xml
downloads/web-inf/classes/p/files_lookup.class
downloads/downloads.jsp
downloads/downloads

使用时只需要把要供人下载的文件放入downloads/downloads就可以了。
启动tomcat,键 入 http://127.0.0.1/downloads/downloads.jsp 可以访问。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值