java文件上传和拦截器

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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中声明拦截器:必须引用默认的拦截器

//定义自定义拦截器

相关文档
最新文档