web文件下载

1. 场景描述

因项目需查询数据量比较大(需要查询Hbase等nosql数据库),采用用户点击查询后,后台查询并生成查询文件;然后消息通知用户后,用户点击下载的方式来满足用户需求。

2. 解决方案

Web容器用的Tomcat,拟采用tomcat提供文件下载功能。

2.1 开启虚拟目录与路径映射(不建议)

需修改tomcat下的web.xm和server.xml文件

2.1.1 开启虚拟目录

修改web.xml

<init-param>
            <param-name>listings</param-name>
            <param-value>false</param-value>
</init-param>
        
-------------------修改为:-----------
<init-param>
            <param-name>listings</param-name>
            <param-value>true</param-value>
</init-param>

.1.2 开启路径映射

修改server.xml

<Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true" deployOnStartup="true">
        <Context path="" docBase="laowang" debug="0" reloadable="true"/>
      </Host>
     
      ------------新加一个<Context>----------------
          <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true" deployOnStartup="true">
        <Context path="" docBase="laowang" debug="0" reloadable="true"/>
        <Context path="/test" docBase="/home/laowang/test" debug="0" privileged="true"></Context>
      </Host>

其中:path中的 "/test"为请求访问路径;/home/laowang/test为文件存在服务器的实际路径。

2.1.3 效果

2.1.4 存在不足

web中listings的 含义是Directory Listing(虚拟目录),默认false其实是处于安全考虑的,修改为true其实是不安全的,不建议的。

2.2 将文件放置到ROOT下(不建议)

2.2.1 说明

直接将文件放置到目录:apache-tomcat-8.0.53/webapps/ROOT,因为tomcat本身提供的就是web服务,可以直接访问,不用修改任何东西。

2.2.2 效果

2.2.3 存在不足

ROOT目录,重新打包的时候,文件会丢失的,只能用于临时文件还可以,与项目需求不符合。

2.3 只开启路径映射及相关配置(建议)

2.3.1 开启路径映射

<Host name="localhost"  appBase="webapps"
        unpackWARs="true" autoDeploy="true" deployOnStartup="true">
    <Context path="" docBase="laowang" debug="0" reloadable="true"/>
  </Host>
 
  ------------新加一个<Context>----------------
      <Host name="localhost"  appBase="webapps"
        unpackWARs="true" autoDeploy="true" deployOnStartup="true">
    <Context path="" docBase="laowang" debug="0" reloadable="true"/>
    <Context path="/test" docBase="/home/laowang/test" debug="0" privileged="true"></Context>
  </Host>

2.3.2 效果

(1)因未开启虚拟路径服务,所以不能访问其他文件。

2)只有文件名称完全对的上,才能访问。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值