利用JSP+Java Bean编写资源(文件)管理器

利用JSP+Java Bean编写资源(文件)管理器


2024年4月9日发(作者:)

日 

f 

… … … … 目 …… H ……… …自 ……… 

实用第一 智慧密集 

利用 JsP+JavaBean编写资源(文件)管理器 

常祖政 

摘 要:利rf]JSP JavaBean技术编写资源(文件)管理器,实现文件/目录的创建、删除功能,并 

且可以将当前目录中的文件列表保存到文本文件中,供需要时使用。 

关键词:File类;文件/目录 

Windows操作系统中的资源管理器非常熟悉,利用它可以 

方便的管理系统资源,其中用得最多的是文件管理,可以十分 

方便的进行文件的创建、删除等操作,但是不能将文件或文件 

夹信息提取出来生成一个单独的文件,进行观察。能不能利用 

Java提供的File类的方法编写基于B/S模式的文件管理器弥补 

以上缺陷呢? 

getName 0 

3 getParent() 

序号 方法名 

表1 

功能 返回类型 

l delete() 删除抽象路径名表示的文件或目录 

返回抽象路径名表示的文件或目录的名称 

bool ean 

String 

返网抽象路径名的父路径名的路径名字符串,如 String 

果此路径名没有指定父目录,则返 null 

1 技术分析 

该系统运行后,将预先设置的磁盘路径中的文件资源列 

4 last¥1odified0 返回抽象路径名表示的文件最后一次被修改的 long 

时问 

出,如图1所示。包括文件/文件夹名称、大小、类型、修改 

日期、操作(文件由此操作),模拟了Windows资源管理器的 

显示样式.在此页中用户可以建立文件和文件夹、可以删除文 

5 length0 

6 l{st() 

返测抽象路径名表示的文件的长度 }ong 

返回抽象路径名所表示的目录中的文件和目录 String[] 

的名称所维成字符串数组。 

件、对于文件夹类型的资源,单击能进入资源所指向的路径下 

显示其中的资源.同时可以由当前路径返回上级目录。 

图1 

采用JsP和JavaBean技术实现,其中JSP文件负责显示, 

充当视图功能,JavaBean负责文件的读取、删除、创建。实现 

过程中使用了Java的File类,File类在java.io包中,常用的 

方法有以下几个如表1所示。 

图2资源(文件)管理器运行主页面 

font—size:9pt; 

2文件管理器实现 

文件管理器的界面如图2所示。 

font-weight:normal; 

2.1主页面文件index.jsp 

<html> 

<head> 

} 

一一

> 

</style> 

</head> 

<%@page contentType=”text/html;charset=gb231 2”%> 

<title>文件管理器</title> 

<stvle type=“text/css“> 

<l一一 

<%@page import=‘'java.io.File“%> 

zi9pt{ 

<%@page import="java。text.SimpleDateFormat“%> 

≮ 

…… 

PROG胁啊U_G叽B …………………………………………………………………………………………一一 

<jsp:useBean id=”list“class= test.FileOperate“/> 

<body> 

<center><h2>文件管理器</h2></center> 

<% 

String path=request.getParameter(。path。): 

if(path==nul1)f path=“E:’:) 

else 

(path=new String(path.getBytes( ISO一8859—1”)):) 

list.setPath(path); 

File[1 files=list.1istFiles0; 

int_-0:%> 

<table> 

<tr> 

<td> 

<form action=“createFile.jsp”method=“get”name=‘。FM1。 。

> 

<input type=“text。‘name=“name”> 

<input type=”hidden。。name= type“value=”dir‘’> 

<input type=“hidden“name=。path。value=。<%=list. 

decodeString(path)%>”> 

<input type=”submit’value=”新建目录”> 

</form> 

</td> 

<td> 

<form action=。。createFile jsp method= get“name= FM2” 

> 

<input type=”text。name=“name > 

<input type=‘。hidden”name= type。’value=”file“> 

<input type=”hidden“name= path”value=“<%=list. 

decodeString(path)%>”> 

:<input type= submit“value= 新建文件。> 

</form> 

</td> 

</tr> 

</table> 

<h3> 

当前路径: 

<%out.println(1ist.getPath0);%> 

<%path=list.dirUp(path); 

if(path!=nul1) 

{%> 

<tr> 

<td colspan=…5><a href=index.jsp?path=<%=path%>> 

上级目录</a></td> 

</tr> 

<%)%> 

</h3> 

<table width=“800 border= 0“cellpadding= 2”cellspacing=。0。’ 

class= zi9pt“> 

<%int fcount=O。dcount=0;%> 

<tr> 

<td width=”5O%”><b>名称</b><,td> 

<td width=”1 0%“><b>大4,</b></td> 

<td Width='。10%“><b>类型</b><,cd> 

<td width=”20%”><b>修改日期</b></td> 

<td width=“1 0%“><b>操作</b></td> 

</tr> 

<% 

for(i=0;i<files.1ength;i++) 

{ 

if(i%2=:1){ 

%> 一 

<tr height=。’20。。bg=””> 

<%}else{%> 

<tr height=“20“bgcolor=“#F2F2F2“> 

<% 

) 

path=list.addPath(files[i].getName0); 

if(files[i].isDirectory0){%> 

<td><a href=index.jsp?path=<%= 

path%>><%=files[i].getName0%></a></td> 

<td> </td> 

<td>文件夹</td> 

<td><%=new SimpleDateFormat(”yyyy/MM/dd HH: 

mm:ss ).format(new java.util.Date(files[i].1astModified0))%>< 

/td> 

<td><a href=deleFile.jsp?path=<%=path%>>删除</ 

a></td> 

<%dcount++; 

)else{ 

String fileName=files[i].getNameO; 

%> 

<td><%=fileName%><,td> 

<td><%=files[i].1engthO%></td> 

<td><%=fileName.substring(ifleName.1astlndexOf(”.。)+ 

1.fileName.1ength())%>文件</td> 

<td><%=new SimpleDateFormatryyyytMM/dd HH: 

mm:ss ).format(new java.util.Date(files[i].1astModified0))%>< 

/td> 

<td><a href=deleFile.jsp?path=<%=path%>>删除</ 

a></td> 

<% fcount++; 

}%> 

</tr> 

<% 

)%> 

</table> 

<hr align=“left“width=80%-,> 

……… ………… ……………………………………‘ 

实用第一 智慧密集 

、 

<h3 align= center“>统计结果:<,h3> 

<center> 

<p><spanI class=”zi9pt >目录总数:<%=dcount%><br> 

文件总数:<%=fcount%></span></p> 

<p align=“left“> 

<a href=。javascript:document.execCommand( SaveAs',true 

d:\\file.txt )”class=“zi9pt”>保存目录(文本类型)<,a></p> 

</center> 

</body> 

</html> 

2_2文件信息读取类(JavaBean)FileOperate.java 

package test; 

impo ̄java.io. : 

public class FileOperate 

{ 

private String fullPath; 

public FileOperate() 

{ fullPath=“c:“:) 

public FileOperate(String path) 

{ ful1Path=path:) 

public String getPath() 

{ return fullPath;) 

,/空格替换为%20 

public String decOdeSt ng(St ring src) 

{ 

String des=null; 

.f(srcf=nul1){ ’ 

des= : 

for(int i=0;i<src.1ength():i++) 

( 

if(src.charAt(i)==~){des+=”%20“:} 

else{des+=src.charAt(i); ) 

} 

) 

return des; 

) , 

public String addPath(String fileName) 

{ 

String result= 。: 

if《fullPath.charAt(fulIPath.1ength0—1)== ) 

( result=fullPath+fileName; 

}else 

{ resuIt:fuIlPath+ +fileName; ) 

return decodeString(result); 

) 

public void setPath(String path) 

f fullPath=:path;J 

public String dirUp(String path) 

( 

String result= : 

ii

电奠■葚技巧与肇妒1

20ii

0.5

巧与肇....妒q

_

1'

一-—I_暖 L-自 , 

File dir=new File(path); 

result=dir.getParent0; 

return decodeString(result); 

) 

public boolean copyFile(String fileName) 

{ return true;) 

public boolean pasteFIIe(St ring fileName) 

f return true;) 

public boolean cutFile(String fileName) 

{ return true;) 

∥删除文件或目录 

public boolean deIeteFile(String path) 

{ 

trv{ 

File file=new File(path); 

return file.delete(); 

)catch(ExceDtion e) 

{ 

e.p rjntStacl(Trace(): 

return false; 

) 

} 

/IX当前目录下新建一个子目录 

public boolean newDir(String path,String dirName) 

{ 

trv{ 

File file=new File(path+ ̄,V+dirName); 

return file:mkdirs0; 

)catch(Exception e){ 

System.out.println(“目录创建失败! ): 

return faIse; 

) 

) 

脏当前目录下新建一个文件 

public boolean newFile(String path,String fileName) 

{ 

try{ 

File file=new File(path+ ̄,\ +fileName); 

return file createNewFileO; 

)catch《IOExce}ption e) 

{ 

System.out.println(”创建文件失败”J: 

return false; 

) 

) 

public static File[1 listRoot() 

{ return File.1istRootsO;} 

public File[】listFiles() 

{ 

…… 

PROG胁啊UH瑚隅B ………………………………………………………………………………………… 

File dir=new File(fulIPath); 

String[】SS=dir.1ist(); 

.f(SS==nul1) 

return null; 

int n=SS.1ength; 

File[】fs=new File[n]; 

for(int i=0:i<n:i++) 

{ fs[i】:new File(dir.getPath0,ss【i】)= ) 

return fs; 

) 

) 

2.3删除文件或目录deleFile.jsp代码 

<html> 

<head> 

<title>删除文件或目录</title> 

</head> 

<%@page contentType=“text/html;charset=gb231 2“%> 

<%@page import="java.io.File。%> 

<jsp:useBean id=“list”class=“test.FileOperate /> 

<body> 

<center><h2> 

删除文件或目录 

</h2></center> 

<% 

String path=request.getParameter(“path“) 

String parent=list.dirUp(path); 

if(1ist.deIeteFile(path)==true) 

{%> 

删除成功!<br> 

<%) 

else 

{%> 

无法删除该文件}<br> 

<%}%> 

<a href=index.jsp?path=<%=parent%>> ̄.][</a><br> 

</body> 

</html> 

2.4创建文件和文件夹createFile.jsp代码 

<html> 

<head> 

<title>新建文件或目录</title> 

</head> 

<%@page contentType=。text/html;charset=gb2312”%> 

<%@page import= java.io.File“%> 

<jsp:useBean id=“list”class=”test.FileO.3erate”/> 

<body> 

<center><h2> 

新建文件或目录 

</h2></center> 

<% 

String path=new String(request.getParameter(”path”) 

getBytes(“iso8859-1“),“gb231 2”): 

String type=request.getParameter(”type”): 

String name=new String(request.getParameter(”name”). 

getBytes(“iso8859-1“),”gb231 2 ): 

.f(tvpe.equals(。dir”)) 

{ 

.f(1ist.newDir(path,name)==true) 

{%> 

建立目录成功!<br> 

<% )else{%> 

建立目录失败!<br> 

<%) 

)else if(type.equals( file“)) 

{ 

if(1ist.newFile(path,name)==true) 

(%> 

建立文件成功!<br> 

<% )else{%> 

建立文件失败}<br> ’ 

<% ) 

)%> 

<a href=index.jsp?path=<%=path%>>返回</a><br> 

</body> 

</html> 

3 总结 

利用该文件管理器可以将目录结构(包含文件)保存到文 

本文件中,经过改进可以将目录信息写入数据库,需要时提取 

方便。该功能可以嵌入到提供网络空间的服务中,实现用户对 

所属空间的文件管理。 

参考文献 

【1】邓子云,张赐.JSP网络编程从基础到实践.电子工业出 

版社.2006. 

【2](美)Cay S.Horstmann,Gary Cornell,程峰,黄若波,章恒种 

JAVA核心技术卷11:高级特征.机械工业出版社,2003. 

f收稿日期:2009—02—12) 

_ 


发布者:admin,转转请注明出处:http://www.yc00.com/news/1712623728a2091768.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信