Struts2——拦截器(文件的上传下载)

概述

实现AOP(面向切面)的编程思想,是可插拔的,可以对某个Action方法之前或之后实施拦截。
拦截器栈:将拦截器按一定的顺序联结成一条链,在访问被拦截的方法时,Struts2拦截器链中的拦截器就会按照之前定义的顺序被依次调用。

自定义拦截器

1、创建拦截器
创建一个类并继承AbstractInterceptor类,实现其中的
intercept(ActionInvocation invocation)方法:
这里写图片描述
其中,invocation.invoke()为解除拦截
2、创建action
这里写图片描述
3、配置struts.xml
在struts.xml中配置Interceptor,对action指定所需的拦截器。
这里写图片描述
4、jsp界面
这里写图片描述

拦截器栈:

1、先定义多个拦截器,如上所示
2、配置struts.xml文件
在Interceptors中可以定义多个Interceptor,依次放入interceptor-stack,并为action指定interceptor-stack的name属性,就可以依次调用其中的Interceptor
这里写图片描述

文件的上传

1、jsp界面
将form表单的enctype设为“multipart/form-data”
这里写图片描述
2、在Action中添加相应属性(属性要设置set,get方法),并编写上传方法
这里写图片描述
3、配置struts.xml
这里写图片描述

注意:
fileUpload.allowTypes指定上传文件的类型,fileUpload.allowedExtensionsSet指定上传文件的后缀。
也可设置fileUpload.maximumSize,上传文件大小,以字节为单位,默认为2M
出现错误会转向一个input视图,可以通过
<s:actionError/> <s:feildError/>显示错误消息的提示
多文件上传:
在action中对将接收参数改为数组形式,通过for循环进行上传
这里写图片描述

文件下载

概述
在action中建立InputStream类型的方法,用以接收需要下载文件的字节流,并指明存放路径。再通过struts中的`来进行传值。
1、action中代码
这里写图片描述
注意:
默认路径在E:\Tomcat\apache-tomcat-7.0.90\webapps\项目名称中
2、struts中代码
这里写图片描述
注意:

<param name="inputName"></param>中的内容,必须是action中InputStream类型方法的名称(首字母小写)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值