【Jsp精品源码栏目提醒】:本文主要为网学会员提供“6JSP文件操作、报表 - 编程语言”,希望对需要6JSP文件操作、报表 - 编程语言网友有所帮助,学习一下!
JSP程序
设计教程 第7章
JSP实用组件 第 7章
JSP实用组件 7.1
JSP文件操作 √ 7.2 发送E-mail √ 7.3
JSP动态图表 √ 7.4
JSP报表 √ 7.1
JSP文件操作 在Web开发中,对文件操作是一项非常实用的功能,例如,文件的上传与下载。
在
JSP中,常用的文件上传与下载组件是jspSmartUpload,该组件是一个可
免费使用的全功能的文件上传下载组件。
通过该组件可以很方便地实现文件的上传与下载。
7.1
JSP文件操作7.1.1 jspSmartUpload组件的安装与配置 √7.1.2 jspSmartUpload组件中的常用类 √7.1.3 采用jspSmartUpload组件进行文件操作√ 7.1.1 jspSmartUpload组件的 安装与配置 jspSmartUpload组件可以通过
网络搜索找到相关网站进行下载。
下载的文件名为jspSmartUpload.zip,解压后得到的是一个Web应用程序,其目录结构如下图所示。
default.htm为Web应用的首页面, sample1.htmsample7.htm文件分别为7个 实例中的供用户选择上传文件和下载文件 的静态页面,help目录下存放了 jspSmartUpload组件的说明文件,
jsp目录 下存放了与sample1.htmsample7.htm文 件对应的
JSP文件,用来实现当前实例中 的动态内容,在这些
JSP文件中将调用 jspSmartUpload组件中的类来实现文件的 上传或下载,Web-inf目录下存放的就是 jspSmartUpload组件中的类文件。
7.1.1 jspSmartUpload组件的 安装与配置 若想运行该Web应用,首先将Web-inf目录名更改为WEB-INF,然后将jspsmartupload整个文件夹拷贝到Tomcat安装目录下的webapps目录下,最后访问地址“http://localhost:8080/ jspsmartupload/default.htm”即可进入Web应用的首页面,运行结果如下图所示。
7.1.1 jspSmartUpload组件的 安装与配置 可以通过如下的方法将Web-infclasses目录下的文件打包成自己的JAR文件,以便在以后的程序开发时,可直接通过将该文件拷贝到应用的WEB-INFlib目录下来应用jspSmartUpload组件实现文件的上传与下载。
(1)若JDK安装在了C:jdk1.6.0_03目录下,则环境变量的系统变量中应存在如下的配置: JAVA_HOMEC:jdk1.6.0_03 PATHJAVA_HOMEbin (2)打开“命令提示符”窗口,进入到jspSmartUpload.zip文件解压后的目录的classes子目录下,输入以下命令行进行文件打包: 7.1.1 jspSmartUpload组件的 安装与配置 可以通过如下的方法将Web-infclasses目录下的文件打包成自己的JAR文件,以便在以后的程序开发时,可直接通过将该文件拷贝到应用的WEB-INFlib目录下来应用jspSmartUpload组件实现文件的上传与下载。
(1)若JDK安装在了C:jdk1.6.0_03目录下,则环境变量的
系统变量中应存在如下的配置: JAVA_HOMEC:jdk1.6.0_03 PATHJAVA_HOMEbin (2)打开“命令提示符”窗口,进入到jspSmartUpload.zip文件解压后的目录的classes子目录下,输入以下命令行进行文件打包: 7.1.1 jspSmartUpload组件的 安装与配置jar cvf jspSmartUpload.jar com servletUpload.classservletUpload.javacom为classes目录下的com文件夹, jspSmartUpload.
jsp文件即为打包后的文件。
7.1.2 jspSmartUpload组件中 的常用类 在jspSmartUpload组件中主要包含了File,Files,Request和SmartUpload核心类,下面对这些核心类分别进行介绍。
1.File类 该类不同于java.io.File类,在编写
程序时应注意使用。
File类用于保存单个上传文件的相关信息,如上传文件的文件名、文件大小、文件数据等,File类的常用方法如下表所示。
7.1.2 jspSmartUpload组件中 的常用类 方 法 说 明saveAs 该方法用于保存文件 该方法用于判断用户是否选择了文件,即表单中对应的isMissing标记实现的文件选择域中是否有值,该方法返回 boolean型值,选择了文件时,返回false,否则返回truegetFieldName 获取Form表单中当前上传文件所对应的表单项的名称getFileName 获取文件的文件名,该文件名不包含目录getFilePathName 获取文件的文件全名,获取的值是一个包含目录的完整文件名getFileExt 获取文件的扩展名,即后缀名,不包含“.”符号getContentType 获取文件MIME类型,如“text/plain”getContentString 获取文件的内容,返回值为String型getSize 获取文件的大小,单位byte,返回值为int型getBinaryDataint index 获取文件数据中参数index指定位置处的一个字节,用于检测文件 7.1.2 jspSmartUpload组件中 的常用类 Files类中的saveAs方法用于保存文件,在File类中提供了以下两种形式的saveAs方法:saveAsString destFilePathName方法saveAsString destFilePathName int optionSaveAs方法 这两个方法都没有返回值,第一种形式与saveAsdestFilePathName 0执行效果相同。
destFilePathName:指定文件保存的路径,包括文件名,其值应以“/”开头。
optionSaveAs:保存目标选项。
该选项有3个值,分别是SAVEAS_AUTO、SAVEAS_VIRTUAL和SAVEAS_PHYSICAL。
它们是File类中的静态字段,分别表示整数0、1和2。
7.1.2 jspSmartUpload组件中 的常用类 将optionSaveAs参数设为SAVEAS_VIRTUAL选项值,则通知jspSmartUpload组件以web应用的根目录为文件根目录,然后加上destFilePathName参数指定的路径来保存文件;设为SAVEAS_PHYSICAL值,则一种情况是通知jspSmartUpload组件将以Web服务器的安装路径中的磁盘根目录为文件根目录,然后加上destFilePathName参数指定的路径来保存文件,另一种情况则以destFilePathName参数指定的目录为最终目录来保存文件;设为SAVEAS_AUTO值,则首先以SAVEAS_VIRTUAL方式来保存文件,若Web应用下由destFilePathName参数指定的路径不存在,则以SAVEAS_ PHYSICAL方式保存文件。
例如,若Web服务器(Tomcat)的安装目录为“C: Tomcat 6.0”,当前
web应用为“FileUpDown”时,下面分别应用这3个选项保存文件。
7.1.2 jspSmartUpload组件中 的
常用类 (1)使用SAVEAS_VIRTUAL选项值saveAs/file/myfile.txtFile.SAVEAS_VIRTUAL或saveAs/file/myfile.txt1 若FileUpDown应用下存在“file”子目录,则将上传的文件以“myfile.txt”为文件名进行保存,实际的保存路径如下:C:Tomcat 6.0webappsFileUpDownfilemyfile.txt 若不存在“file”子目录,则抛出下面的异常:This path does not exist 1135 (2)使用SAVEAS_PHYSICAL选项值saveAs/file/myfile.txtFile.SAVEAS_PHYSICAL或saveAs/file/myfile.txt2 7.1.2 jspSmartUpload组件中 的常用类 因为Tomcat安装在C盘,因此若E盘根目录下存在“file”子目录,则将上传的文件以“myfile.txt”为文件名进行保存,实际的保存路径如下: C:filemyfile.txt 若C盘根目录下不存在file子目录,而FileUpDown应用的根目录下存在file子目录,则抛出下面的异常: The path is not a physical path 否则抛出下面的异常: This path does not exist 1135 7.1.2 jspSmartUpload组件中 的常用类 使用SAVEAS_PHYSICAL选项值时,可以将上传的文件保存到由destFilePathName参数指定的一个具体的目录下,如:saveAsD:/temp/myfile.txtFile.SAVEAS_PHYSICAL 最终文件的实际保存路径如下: D:tempmyfile.txt (3)使用SAVEAS_AUTO选项值saveAs/file/myfile.txtFile.SAVEAS_AUTO或saveAs/file/myfile.txt0 若FileUpDown应用根目录下存在“file”子目录,则以SAVEAS_VIRTUAL方式保存文件,否则以SAVEAS_PHYSICAL方式保存文件。
通常情况下应使用SAVEAS_VIRTUAL方式保存文件,以便程序的移植。
7.1.2 jspSmartUpload组件中 的常用类2.Files类 Files类存储了所有上传的文件,通过类中的方法可获得上传文件的数量和总长度等信息。
Files类中的常用方法如下表所示。
方 法 说 明getCount 获取上传文件的数目,返回值为int型getSize 获取上传文件的总长度,单位byte,返回值为long型getFileint index 获取参数index指定位置处的com.jspsmart.upload.File对象getCollection 将所有File对象以Collection形式返回getEnumeration 将所有File对象以Enumeration形式返回 7.1.2 jspSmartUpload组件中 的常用类 Files类中的getCollection方法和getEnumeration方法将所有的File对象分别以Collection和Enumeartion形式返回,它们的
源代码如下。
(1)getCollection方法将所有File对象以Collection的形式返回,以便其他应用程序引用,该方法的具体代码如下: public Collection getCollection return m_files.values 其中m_files为Files类中的属性,其类型为Hashtable,它存储了所有的File对象。
7.1.2 jspSmartUpload组件中 的常用类 (2)getEnumeration方法将所有File对象以Enumeration形式返回,以便其他应用程序引用,该方法的具体代码如下: public Enumeration getEnumeration return m_files.elements m_files为Files类中的属性,其类型为Hashtable,它存储了所有的File对象。
3.Request类 7.1.2 jspSmartUpload组件中 的常用类 设置该类的目的,是因为当Form表单用来实现文件上传时,通过
JSP的内置对象request的getParameter方法无法获取其他表单项的值,所以提供了该类来获取,Request类中提供的方法如下表所示。
方 法 说 明 获取Form表单中由参数name指定的表单元素的值,如getParameterString name,当该表单元素不存在 时,返回null 获取Form表单中除外的所有表单元素getParameterNames 的名称,它返回一个枚举型对象getParameterValuesString 获取Form表单中多个具有相同名称的表单元素的值, name 该名称由参数name指定,该方法返回一个字符串数组