第9章 JSP中的文件操作_第1页
第9章 JSP中的文件操作_第2页
第9章 JSP中的文件操作_第3页
第9章 JSP中的文件操作_第4页
第9章 JSP中的文件操作_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第9章JSP中的文件操作主要内容File类RandomAccessFile类

文件上传文件下载难点文件上传关键实践听学新概念英语9.1File类File对象用来获取文件本身的一些信息,例如文件所在的目录、文件的长度、文件读写权限等,不涉及对文件的读写操作。创建一个File对象的构造方法有3个:File(Stringfilename);File(StringdirectoryPath,Stringfilename);File(Filef,Stringfilename);如filename="Hello.txt"filename="c:/mybook/A.txt"directoryPath="c:/mybook/",filename="A.txt"f=newFile("c:/mybook"),filename="A.txt"。当使用第一个构造方法File(Stringfilename)创建文件时,filename是文件名字,那么该文件会被认为是与当前应用程序在同一目录中。由于Tomcat服务器是在bin下启动执行的,所以该文件被认为在Tomat安装目录的\bin中。9.1File类例子9_1中,使用File类的一些方法获取用户访问的当前JSP页面的一些信息。该例子中让内置对象request调用getContextPath()方法获取当前Web服务目录的名称(request的常用方法见4.1.3小节)。例子9_1example9_1.jsp9.2RandomAccessFile类需要对一个文件进行读写操作时,可以创建一个RandomAccessFile对象,RandomAccessFile对象可以读取文件的数据,也可以向文件写入数据。RandomAccessFile类的两个构造方法:RandomAccessFile(Stringname,Stringmode)参数name用来确定一个文件名,参数mode取“r”(只读)或“rw”(可读写),决定对文件的访问权利。RandomAccessFile(Filefile,Stringmode)参数file是一个File对象,参数mode取“r”(只读)或“rw”(可读写),决定对文件的访问权利。例子9_2的Web应用程序使用JSP+servlet(知识点见第6章)。在例子中有一个JSP页面:example9_2和一个servlet。用户在JSP页面example9_2选择一个文件以及文件的编码类型(是utf-8或不是utf-8),提交给servlet,该servlet负责读取和显示文件的内容。9.2RandomAccessFile类例子9_21.JSP页面(视图)视图部分由example9_2.jsp构成。用户在example8_4_choiceFile.jsp页面输入文件的路径和名字,选择文件的编码类型请求名字为handleFile的servlet对象。handleFile负责读取文件并显示文件的内容。example9_2.jsp2.servletExample9_2_Servlet.java3.配置文件web.xmlweb.xml9.3文件上传用户通过一个JSP页面上传文件给服务器时,form表单必须将ENCTYPE的属性值设成multipart/form-data,并含有File类型的GUI组件。含有File类型GUI组件的form表单如下所示:<formaction="JSP页面或servlet"method="post"ENCTYPE="multipart/form-data"<inputtype="File"name="picture"><inputtype="submit"value="提交"></form>Tomcat服务器可以让内置对象request调用方法getInputStream()获得一个输入流,通过这个输入流读入用户上传的全部信息,包括文件的内容以及表单域的信息。例子9_3中,用户通过example9_3.jsp页面上传文本文件A.txt。9.3文件上传例子9_3中,用户通过example9_3.jsp页面上传文本文件A.txt。例子9_3example9_3.jspexample9_3_accept.jsp例子9_4中,通过输入、输出流技术获取文件的内容,即去掉表单的信息。根据不同用户的session对象互不相同这一特点,将用户提交的全部信息首先保存成一个临时文件,该临时文件的名字是用户的session对象的id,然后读取该临时文件的第2行,因为这一行中含有用户上传的文件的名字,再获取第4行结束的位置,以及倒数第6行结束的位置,因为这两个位置之间的内容是上传文件的内容,然后将这部分内容存入文件,该文件的名字和用户上传的文件的名字保持一致,最后删除临时文件。例子9_4的Web应用程序使用MVC模式(MVC的知识见第7章)。例子9_49.3文件上传例子9_41.bean(模型)Example9_4_Bean.java负责创建id是fileBean的requestbean。requestbean负责存放文件的相关内容,如文件的名字等。用命令行进入save\data的父目录classes,编译Example9_2_Bean.java(见本章开始的约定):javacsave\data\Example9_4_Bean.javaExample9_4_Bean.java(负责创建requestbean)2.JSP页面(视图)example9_4.jsp页面负责选择、提交上传文件,并请求名字是upFile的servlet。example9_4.jsp页面同时负责显示fileBean中的数据。如果fileBean中存放的文件不是图像文件就显示文件的名字,如果是图像文件,不仅显示文件的名字,同时也显示当前图像。example9_4.jsp9.3文件上传例子9_43.servlet(控制器)Example9_4_Sevlet负责创建名字是upFile的servlet。upFile负责获取用户上传的全部信息,然后解析出上传文件的内容和文件名字。文件的内容保存在Web服务目录的image子目录中,将文件名字存放到id是fileBean的requestbean中,然后用转发的方法请求example9_4.jsp显示fileBean中的数据。用命令行进入handle\data的父目录classes,编译Example9_4_Servlet.java(见本章开始的约定):javac-cp.;servlet-api.jarhandle/data/Example9_2_Servlet.javaExample9_4_Servlet.java9.4文件下载response调用setHeader方法添加下载头的格式如下:response.setHeader("Content-disposition","attachment;filename="文件名");例子9_5的Web应用程序使用JSP+servlet(知识点见第6章)。在例子9_5中,用户在examp

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论