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>
2.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)只有文件名称完全对的上,才能访问。

2.3.3 存在问题及解决方案

大家通过截图可能也发现了,文件是直接打开的,而并不是下载到本地,项目需求是要下载到本地打开的。

有两个方式解决

(1)第一个是在打开的文件右键-》另存为就可以下载,但是这样太不不方便。

(2)结合前端html使用a标签,点击后直接下载。(推荐)

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<a href="http://10.192.168.11:9108/test/test.txt" download="test.txt">download</a>
</body>
</html>

效果图,点击后就直接下载到默认目录了。


web文件下载(附方案及源码配置)的更多相关文章

  1. Visual Studio 2015开发Qt项目实战经验分享(附项目示例源码)

    Visual Studio 2015开发Qt项目实战经验分享(附项目示例源码)    转 https://blog.csdn.net/lhl1124281072/article/details/800 ...

  2. HTML与CSS入门经典(第9版)试读 附随书源码 pdf扫描版​

    HTML与CSS入门经典(第9版)是经典畅销图书<HTML与CSS入门经典>的最新版本,与过去的版本相同,本书采用直观.循序渐进的方法,为读者讲解使用HTML5与CSS3设计.创建并维护世 ...

  3. WEB前端开发学习:源码canvas 雪

    WEB前端开发学习:源码canvas 雪 双旦节要到了,程序员们为了响应气氛,特别用代码制作了动态雪花,WEB前端开发学习的初学者们一起跟着案例做一遍吧! <!DOCTYPE html> ...

  4. [C#防止反编译].NET 产品版权保护方案 (.NET源码加密保护)

    [C#防止反编译].NET 产品版权保护方案 (.NET源码加密保护) 标签: .net加密产品c#dll工具 2011-03-24 21:06 27009人阅读 评论(13) 收藏 举报 分类: C ...

  5. NLP大赛冠军总结:300万知乎多标签文本分类任务(附深度学习源码)

    NLP大赛冠军总结:300万知乎多标签文本分类任务(附深度学习源码)       七月,酷暑难耐,认识的几位同学参加知乎看山杯,均取得不错的排名.当时天池AI医疗大赛初赛结束,官方正在为复赛进行平台调 ...

  6. web框架前言与学生数据库系统(附1.0源码)

    对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端. import socket def f1(request): ""&quo ...

  7. 二、Uniapp+vue+腾讯IM+腾讯音视频开发仿微信的IM聊天APP,支持各类消息收发,音视频通话,附vue实现源码(已开源)-腾讯云后台配置TXIM

    项目文章索引 1.项目引言 2.腾讯云后台配置TXIM 3.配置项目并实现IM登录 4.会话好友列表的实现 5.聊天输入框的实现 6.聊天界面容器的实现 7.聊天消息项的实现 8.聊天输入框扩展面板的 ...

  8. Linux 部署ASP.NET SQLite 应用 的坎坷之旅 附demo及源码

    Linux 部署ASP.NET SQLite 应用 的坎坷之旅.文章底部 附示例代码. 有一台闲置的Linux VPS,尝试着部署一下.NET 程序,结果就踏上了坑之路,不过最后算是完美解决问题,遂记 ...

  9. 移动web app开发必备 - Deferred 源码分析

    姊妹篇  移动web app开发必备 - 异步队列 Deferred 在分析Deferred之前我觉得还是有必要把老套的设计模式给搬出来,便于理解源码! 观察者模式 观察者模式( 又叫发布者-订阅者模 ...

随机推荐

  1. centos搭建svn服务器并同步到web目录

    yum install subversion mkdir -v /root/svn cd /root/svn svnadmin create web cd web/conf/ vi passwd te ...

  2. 百度官方wormHole后门检测记录

    乌云地址:http://drops.wooyun.org/papers/10061 后门端口:40310/6259 本次测试在Ubuntu下,具体adb调试工具参考 sink_cup的博客 http: ...

  3. python selenium chrome 测试

    #coding=utf-8 from selenium import webdriver from selenium.webdriver.common.keys import Keys from se ...

  4. SpringMvc 资料

    web.xml解释 http://www.cnblogs.com/superjt/p/3309255.html url-pattern解释 http://www.cnblogs.com/zhangpe ...

  5. VS2012 调试Web项目 遭遇 HTTP 错误 500.23 - Internal Server Error

    原文:VS2012 调试Web项目 遭遇 HTTP 错误 500.23 - Internal Server Error 在使用vs2012 调试Web站点时 报错 500.23,详细如图 此错误是因为 ...

  6. ArcGIS数据生产与精细化制图之中国年降水量分布图的制作

    原文:ArcGIS数据生产与精细化制图之中国年降水量分布图的制作 楼主按:在今年的Esri中国用户大会上,我听了几场关于ArcGIS用于制图方面的讲座,也在体验区与Esri中国的技术老师有一些交流.一 ...

  7. Android零基础入门第17节:Android开发第一个控件,TextView属性和方法大全

    原文:Android零基础入门第17节:Android开发第一个控件,TextView属性和方法大全 前面简单学习了一些Android UI的一些基础知识,那么接下来我们一起来详细学习Android的 ...

  8. delphi资源文件制作及使用详解

    一.引子:现在的Windows应用程序几乎都使用图标.图片.光标.声音等,我们称它们为资源(Resource).最简单的使用资源的办法是把这些资源的源文件打入软件包,以方便程序需要的时候调用.资源是程 ...

  9. javascript学习路线图

    史上最全的javascript学习路线图 JavaSctipt学习路线 完成整个课程大纲需要花上6~8周的时间,将学会完整的JavaScript语言(包括jQuery和一些HTML5).如果你没有时间 ...

  10. 漏洞告诉你:商家为什么都乐于提供免(diao)费(yu)WiFi?

    作为一名小微商户,每天我除了要为经营小店忙得焦头烂额,还要想方设法地寻求提升用户体验.于是,我用了号称“营销神器”的某商用WiFi系统...... 然后不可思议的事情发生了:连上此WiFi的手机(包括 ...