【Jsp精品源码栏目提醒】:以下是网学会员为您推荐的Jsp精品源码-struts2上传下载---学习笔记(下) - 其它资料,希望本篇文章对您学习有所帮助。
Struts2 上传下载续上传续在昨天的笔记中,我们学习了 struts2 的基本上传方法,并完成了一个上传的实例,下面我们在学习上传的一些相关知识。
1. 在上传中,我们写的小程序是可以上传任何类型文件的,可是在我们的真实开发中,一 定会对上传文件的类型进行严格的控制,那我们该如何对上传文件的类型进行控制呢, 我们前面已经学习了 struts2 的核心部分——拦截器,拦截器的功能十分的强大,那么下 面我们就用拦截器来实现对上传文件的类型控制。
Struts2 已经对上传有了默认的拦截器,我们就用 struts2 的默认拦截器进行类型控制,首 先我们来看下我们所需要的拦截器: ①.打开 struts-default.xml 文件,找到标签,我们找到了我们需要的拦截 器,名为 fileUpload,该拦截器的定义如下: ②.根据上面的定义,我们找到了 org.apache.struts2.interceptor.FileUploadInterceptor 类 ③.我们关联
源码,打开 FileUploadInterceptor 类,我们找到了如下信息:④.下面我们就要在 struts.xml 文件中进行拦截器的配置⑤.我们将 fileUpload 拦截器配置到我们的 action 中,可是类型该怎么写呢,没关系, 我们可以在 tomcat 的 conf 目录下的 web.xml 文件中查找,例如,我们只允许上传 以 ppt 为扩展名的文件,按 CtrlF 查找,输入 PPT,出现下面结果:⑥.我 们 将 标 签 中 的 内 容 复 制 到 struts.xml 中 我 们 配 置 的 拦 截 器 中的标签下,如④中的图。
特别重要的,当我们在 action 中配置拦截器,一定 不能忘了在加上 struts2 的默认拦截器栈 defaultStack。
⑦.重新启动我们的 tomcat,运行程序,观察我们的配置是否已经起作用了。
我们发现 上传成功,下面我们上传其他类型的文件 通过上面的验证,我们发现我的类型设置成功。
2. 限制上传文件的大小 通过上面文件类型的限制,我们应该知道文件大小的设置。
和上面步骤类似,我就不具 体叙述了,我们在 struts.xml 文件的 fileUpload 拦截器中再加个标签,内容如下:409600 这就表示我们上传的文件不能超过 400KB,下面我们测试一下: 结果: 可以上传 结果: 不可以上传 这样,我们对上传的笔记部分就完全结束了。
下载 ①. 与上传类似的,struts2 对于下载,也是在 struts-default.xml 文件中查找的。
我们首先找到标签中的 name 为 stream 的一项②.对应的将 StreamResult 类打开,找到如下属性③. 在我们的下载中将会用到三个属性: contentType(表示下载的文件类型,可以再 、tomcat 目录下的 conf 目录下的 web.xml 中查找需要的类型) contentDisposition(可以指定下载文件的文件名)、inputName(获取文件流)。
④. 下面开始我们代码的编写,先写 download.
jsp 页面代码如下: downloadDownloadAction.java 类package com.download.actionimport java.io.InputStreamimport org.apache.struts2.ServletActionContextimport com.opensymphony.xwork2.ActionSupportpublic class DownloadAction extends ActionSupport public InputStream getDownloadFile returnServletActionContext.getServletContext.getResourceAsStream/upload/1.ppt Override public String execute throws Exception return SUCCESS 在 struts.xml 中配置application/vnd.ms-powerpointfilenameHelloWorld.pptdownloadFile最后,我们测试一下我们的代码下载完全正确,文件可以打开,这样我们的下载页完成了。