关于tomcat文件下载配置

前言

  • tomcat文件下载
  • 关闭tomcat目录列表浏览功能
  • Tomcat 不能下载带中文文件名的附件的方法

在Java Web项目中文件下载是一个很常见的功能,最近在做项目中发现可以通过tomcat本身自带的特性完成文件下载功能。


tomcat文件下载

  1. 在eclipse中的WebContent下新建文件夹download_file,这个文件夹是专门用来放下载文件的,然后启动tomcat服务器,
    在浏览器中就可以URL:http://localhost:8080/项目名/download_file/文件名,这样的请求来下载文件(注意文件名要包含后缀)如图1


图1

关闭tomcat目录列表浏览功能

  1. 其实上面已经完成了一个简单的文件下载功能,但是有个问题所在,假如url中再download_file后面不加任何文件名的话,tomcat会默认地将download_file的文件目录遍历出来(如图2),


图2
这样的话别人可以随意下载其他文件,显然不够安全。这里就涉及到tomcat的配置,打开tomcat目录下的/conf/web.xml

 <servlet>
        <servlet-name>default</servlet-name>
        <servlet-class>
        org.apache.catalina.servlets.DefaultServlet
        </servlet-class>
        <init-param>
            <param-name>debug</param-name>
            <param-value>0</param-value>
        </init-param>
        <init-param>
            <param-name>listings</param-name>
            <param-value>false</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
 

将listings的value值改为false,禁止tomcat直接访问文件目录。

Tomcat 不能下载带中文文件名的附件的方法

  1. 上面的文件下载还有一点瑕疵,当文件名包含中文时找不到目录中的文件,这是又要在tomcat目录下的/conf/server.xml中加上下面的代码, 在原来的 <Connector>\标签内加入disableUploadTimeout=”true” URIEncoding=”UTF-8”就可以识别中文文件名
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" disableUploadTimeout="true" URIEncoding="UTF-8"/>
 

最后,如果修改配置文件后重启eclipse的tomcat服务无效,只要将tomcat服务先删除掉,再重新新建即可。

时间: 2024-11-05 06:28:47

关于tomcat文件下载配置的相关文章

Tomcat 基本配置(转)

转自:http://blog.csdn.net/jubincn/article/details/4856293 目录(?)[+] Tomcat 基本配置 tomcat读取配置文件 首先简单说一下tomcat是如何读取配置文件的.tomcat在启动时,首先找系统变量CATALINA_BASE,如果没有,则找CATALINA_HOME.然后找这个变量所指的目录下的conf文件夹,从中读取配置文件. 最重要的配置文件:server.xml 要配置tomcat,基本上了解server.xml,conte

腾讯云服务器centos 6.5(jdk+tomcat+vsftp)、腾讯mysql数据库 及 tomcat自启动 配置教程

1.腾讯云数据库配置 1.考虑到安全性问题,,平常不使用root用户登录,新增一个用户名neil,用来管理项目的数据库 a.首先登录root创建db_AA数据库 b.在root用户下,创建neil用户,并对neil用户授权对db_AA数据库所有操作. GRANT ALL ON db_AA.* TO [email protected]"%" IDENTIFIED BY "XXXX"; 2.将现有数据导入到数据库中 注意:尽量不要使用Myeclipse.Navicat等

Springmvc +JNDI 在Tomcat下 配置数据源(转)

一.             简介 jndi(Java Naming and Directory Interface,Java命名和目录接口)是一组在Java应用中访问命名和目录服务的API.命名服务将名称和对象联系起来,使得我们可以用名称访问对象.目录服务是一种命名服务,在这种服务里,对象不但有名称,还有属性. 二.             tomcat配置jndi有三种方式. 第一种:单个应用独享数据源 在Tomcat的server.xml找到工程的Context节点,添加一个私有数据源 <

linux 下安装 jdk tomcat 并配置

linux下安装TOMCAT与JDK 第1步:新建boss用户,用户名:boss,密码:boss 第2步:将安装用户路径设置成/app/boss [[email protected]]# useradd-d /app/boss -m boss [[email protected]]# passwdboss Changing password for user boss. New password:  boss passwd: all authentication tokens updated s

Eclipse Tomcat插件的配置, 及 Tomcat 的配置

Eclipse Tomcat插件的配置, 及 Tomcat 的配置 首先下载 对应 eclipse 版本的 tomcat 插件版本,(这里要注意: Tomcat 插件是Tomcat 插件,Tomcat 是 Tomcat, 两者不能混淆!) 下载地址:http://www.eclipsetotale.com/tomcatPlugin.html 然后将得到的压缩包解压,放入 eclipse 的 plugins 目录中重启 eclipse, Tomcat 插件安装成功! 当然安装成功不并代表能使用,这

tomcat ssi配置及升级导致ssi include错误问题解决

最近tomcat升级版本时,遇到了ssi解析的问题,记录下解决的过程,还有tomcat ssi配置的要点. tomcat 配置SSI的两种方式 Tomcat有两种方式支持SSI:Servlet和Filter. SSIServlet 通过Servlet,org.apache.catalina.ssi.SSIServlet,默认处理”*.shtml”的URL. 配置方式: 修改tomcat的 conf/web.xml文件,去掉下面配置的注释: <servlet> <servlet-name&

Tomcat中配置自定义404错误页面

404,50x这种错误经常遇到. 如果%CATALINA_HOME%\conf\web.xml和具体应用中都有设置%CATALINA_HOME%\webapps\ROOT\WEB-INF\web.xml 则应用中的生效. 如何设置一个友好的用户体验,以windows环境为例: 添加发生异常时,默认的文件,文件位置如下(如果没有设置reloadable为true或autoDeploy="true",则需要重启tomcat让更改的web.xml生效): (1)%CATALINA_HOME%

spring-boot+nginx+tomcat+ssl配置笔记

如果你的tomcat应用需要采用ssl来加强安全性,一种做法是把tomcat配置为支持ssl,另一种做法是用nginx反向代理tomcat,然后把nginx配置为https访问,并且nginx与tomcat之间配置为普通的http协议即可.下面说的是后一种方法,同时假定我们基于spring-boot来开发应用. 一.配置nginx: server { listen 80; listen 443 ssl; server_name localhost; ssl_certificate server.

Centos Apache和tomcat集成配置,同时支持PHP和JAVA运行

最近由于项目的需要,需要再原来运行Tomcat服务器上支持PHP运行.很显然,PHP运行使用的是Apache服务器.虽然Tomcat也属于Apache,但是并没有现有的环境,需要我们自己手动配置.顺便说一下,我们使用的服务器环境是Centos6.4 . 我也是第一次搭建这个环境,没有经验,身边的同事也都没有整合过.所以最好的方法肯定是找度娘了. 但是,我发现网上的东西那叫一个又杂又乱,我保证你看了十篇文章,你也无法搭建成功.主要原因是转载的文章太多,而转载者也并非都是作者或者是专家.所以,文章要