strut文件上传下载拦截

Java开发交流群 677807540   大家可以一起讨论技术欢迎加入

关于文件上传一些注意的地方:
    普通表单:
    客户端:普通表单 ---->key=value的形式
    服务器: 接收请求  打包成request-->servlet
    我们在Servlet 使用request获得参数
    文件上传
    客户端: 通过 请求头的分隔符 将表单数据分割开以字节流的方式发送到服务器
    
    服务器:接收请求,不解析参数 request-->Servlet
    
    我们在Servlet中:使用第三方组件解析请求,从第三方组件那种获得文件信息和普通
    表单信息
    

Struts中:
文件上传
    客户端: 通过 请求头的分隔符 将表单数据分割开以字节流的方式发送到服务器
    
    服务器:接收请求,不解析参数 request-->Servlet
    
    Struts 使用第三方组件(commons-fileupload)解析请求,从第三方组件那种获得文件信息和普通
    表单信息
    
    Struts中的文件上传拦截器 负责将文件信息从第三方组件中获得
        【在servlet中,这一步是我们手动实现的】
    然后,给Action中的对应的属性赋值
        我们:就像使用普通组件参数使用文件参数
=================================================
Struts中的一些配置文件:
         struts-default.xml:是struts提供的默认的配置文件,其中包含了
         默认包:struts-default 、定义了默认的 result{dispatcher\redirect\redirectAction\Chain}
         和拦截器 以及拦截器栈
         
         constant
         org.apache.struts2子包中---》default.properties:
         该配置了一些struts2的默认行为,如 文件上传的大小、struts拦截的后缀
         该文件中的内容都可以通过struts.xml中<constant>元素进行修改
             
         struts-message-en_US.properties:
         i18n:internationalization国际化的资源文件
         etoak_zh_CN.properties
         etoak_zh.properties
         etoak.properties
和package标签并列
可以查看 struts-properties 和  国际编码哪些(设置显示错误信息的提示语言)
一些修改 文件大小文件后缀 文件错误页面时显示的字体 通可以通过 constant 修改(name="key" value="")

和result 并列的 可以设置上传文件的后缀名
可以查找 struts-default 
<interceptor-ref name="">
<param name="aloowedExtensions">.jpg,.png</param>
</interceptor-ref>
<result name="input"> error.jsp</result> 在页面上利用s标签显示错误信息
上传文件必须用的三要素
pic要对应页面上的name
private File[] pic;//文件对象(这是上传很多文件 单个不用写数组 )
private String[] picFileName;//文件名字
private String[] picContentType;//文件类型


文件下载有俩种方式我们只是借用下 action容器拿到文件 设置相应头(setHeader("Content-Disposition","attachment;filename=1.mp4");)直接以流的形式下载 附件形式返回客户端
中文文件名设置编码 URLEncoder.encode("内容","utf-8")+"ab.mp4"
第二种交给struts 我们只需要提供流给他
这里我们需要那到ServletContext对象的aplication 拿到服务器的绝对路径
利用俩种方式引入ServletAPI
我们在struts<result >
    定义俩个属性 一个is 一个fname 只提供getter方法就可以
    <param name="inputName">is</param>
    <param name="contentDisposition">attachment;filename=${fname}</param>
</result?

使用struts 将json封装在插件中;
1.导入插件包 2继承json-default(继承了 struts-default) result type为json
默认返回所有带有getter方法的属性  可以设置指定那个返回属性 不返回其他
<result>
<param name="root">指定返回属性</param>
</result>

也是有俩种一格式直接获得response往回写 另一种是struts帮你写 你只要提供getter方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值