java文件上传和拦截器
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1 文件上传
(1)需要的包:Common-fileUpload组件和Commons-IO组件包
(2)文件标签:
(3)在Action中,若文件名称为xxx。则必须有三个属性:setXxx()、setXxxFileName()、setXxxContentType()。通常我们在Action中定义三个变量:xxx、xxxFileName 、xxxContentType。
根据需要,还可以定义保存文件的名称属性targetFileName和保存文件的路径属性dir (4)代码如下:
products_showById.jsp文件修改如下:
enctype="multipart/form-data">
ProductManageAction.java文件修改如下:
//文件上传相关参数
private File upload; //上传的文件
private String uploadFileName; //上传的文件名称
private String uploadContentType; //上传的文件类型
private String dir;//保存文件的路径
private String targetFileName; //保存文件名称
@SuppressWarnings("deprecation")
public String update(){
。。。。。。。
//上传图片...
String
realPath=ServletActionContext.getRequest().getRealPath("/upload");
String targetDirectory=realPath;
this.targetFileName=this.getUploadFileName();
this.setDir(targetDirectory+"\\"+this.targetFileName);
System.out.println("dir="+this.getDir());
p.setStructrue(this.getDir());
System.out.println("dir="+p.getStructrue());
File target=new File(targetDirectory,this.targetFileName);
try {
FileUtils.copyFile(upload, target); 用到commons-IO包} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
。。。。。。。。。
}
struts.xml配置文件修改如下:
class="com.action.ProductManageAction" method="{1}"> name="allowedTypes">image/bmp,image/png,image/jpg,image/gif,applicati on/vnd.ms-excel 200000 。。。。。
2 拦截器
(1)作用:动态拦截Action对象。也就是在执行Action处理用户请求之前或之后,执行拦截器来进行某些操作,例如判断用户身份是否合法但呢个。
(2)用途:文件上传和下载,国际化,转换器,和数据校验等
(3)理解:
OOP:封装一个对象的属性和方法。但对于多个对象的公共属性和行为则无能为力。例如日志功能。
AOP:拦截器是AOP思想的体现。就是将这些公共行为封装起来,减少重复代码等。
(4) 使用步骤;
(a) 在struts.xml配置文件中增加拦截器定义和在Action中声明拦截器:必须引用默认的拦截器