首页 理论教育JSP实训教程:罗列指定扩展名的所有文件

JSP实训教程:罗列指定扩展名的所有文件

【摘要】:1)JavaBean程序listFile.java中有两个类:listFile类是一个符合JavaBean规范的类,它有两个属性fileExt和absPath,fileExt存储要列出的文件名的扩展名,absPath存储要列出的文件名的绝对路径,按JavaBean规范编写了设置和返回fileExt、absPath值的方法,listfiles()方法返回absPath指定的目录下、文件扩展名符合fileExt值的所有文件;另一个nameFilter类实现FilenameFilter接口,起到过滤文件名的作用。语句“File[]files=listF.listfiles();”调用JavaBean的方法listfiles(),将返回的符合文件扩展名的所有文件存入File对象数组files中。图4-14 列出指定扩展名的所有文件

如果一个JavaBean类编写的代码较长,有不易理解等问题,就需要将JavaBean的代码分成不同的类,一个类完成一个特定的功能,这样结构清晰,分工明确。

下面的一组程序(listFile.java、E_45.htm和list_F.jsp)演示了在页面程序E_45.htm中输入文件的扩展名后,显示list_F.jsp所在目录下的所有符合扩展名的文件名。

1)JavaBean程序listFile.java中有两个类:listFile类是一个符合JavaBean规范的类,它有两个属性(成员变量)fileExt和absPath,fileExt存储要列出的文件名的扩展名,absPath存储要列出的文件名的绝对路径,按JavaBean规范编写了设置和返回fileExt、absPath值的方法,listfiles()方法返回absPath指定的目录下、文件扩展名符合fileExt值的所有文件;另一个nameFilter类实现FilenameFilter接口,起到过滤文件名的作用。

使用“记事本”输入“listFile.java”程序并存放在应用目录“webapps/ROOT”下的子目录“WEB-INF/classes/test”中。

978-7-111-38219-5-Chapter04-65.jpg

978-7-111-38219-5-Chapter04-66.jpg

2)list_F.jsp程序中:语句“<jsp:useBeanid="listF"class="test.listFile"scope="page"/>”表示使用JavaBean程序,class文件是test.listFile,生成的对象名是listF,有效范围是本页面即“scope="page"”。

语句“String EXT=request.getParameter("EXT");”接收E_45.htm页面传来的文件扩展名。

语句“listF.setFileExt(EXT);”设置JavaBean程序属性fileExt的值(即文件扩展名)、使用语句“listF.getAbsPath()”获取属性absPath的值(即文件的绝对路径)显示文件的绝对路径。

还演示了使用JSP动作标记“<jsp:setProperty name="listF"property="absPath"value="<%=s3%>"/>”设置属性absPath的值和“<jsp:getProperty name="listF"property="fileExt"/>”获取属性fileExt的值。

语句“File[]files=listF.listfiles();”调用JavaBean的方法listfiles(),将返回的符合文件扩展名的所有文件存入File对象数组files中。(www.chuimin.cn)

使用“记事本”分别输入“E_45.htm”和“list_F.jsp”程序并存放在应用目录“we-bapps/ROOT”下的子目录E45中。

E_45.htm:

978-7-111-38219-5-Chapter04-67.jpg

list_F.jsp:

978-7-111-38219-5-Chapter04-68.jpg

978-7-111-38219-5-Chapter04-69.jpg

3)打开浏览器,在地址栏中输入http://192.168.2.1:8080/E45/E_45.htm。输入文件扩展名“htm”后,单击“提交”按钮,显示的界面如图4-14所示。

978-7-111-38219-5-Chapter04-70.jpg

图4-14 列出指定扩展名的所有文件