jsp + servlet 通过a 标签下载文件
来源:互联网 发布:飞毛腿跑腿软件好吗 编辑:程序博客网 时间:2024/05/17 02:41
在开发项目时遇到,在jsp 中通过 a 标签的方式,访问后台servlet,调用 客户端以下载的方式打开文件,遇到中文文件名乱码,找不到问题,导致下载失败问题,弄了很久才弄出点样子,不是很科学,但暂时可用
大体思路:
1.文件夹中存放要下载的文件名为 英文文件名;
2.. 前台jsp a标签携带 路径及文件名访问后台servlet,其中路径中只有不含有中文,文件名可以为中文,访问后台servlet;
3. 后台先取出文件路径,和后台准备的参数进行组装拼接,得到不含中文的下载路径,构建输入流;
4. 因为我的tomcat中的 servlet.xml 中8080端口位置有设置 编码,所以后台直接取出含有中文的文件名,作为下载文件的文件名通知客户端以下载的方式打开进行下载
servlet 中设置字符编码
<Connector port="48080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="38443" URIEncoding="ISO-8859-1"/>
jsp页面中 通过 a 标签携带信息访问后台servlet
<a href='servlet/DownLoadFileSvl?path=文件相对路径&fileName=文件名'>下载</a>
后台servlet get请求
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String path = request.getParameter("path");// get方式提交的 path = new String(path.getBytes("ISO-8859-1"), "UTF-8");// 前台传上来的文件相对路径 log.debug("前台传上来的文件相对路径: " + path); String path1 = this.getServletContext().getRealPath("") .replace(request.getContextPath() + "/", ""); log.debug("\t\n--获取的文件夹名称:" + path1); String upLoad = path1 + "/file/" + path; //组装下载路径 upLoad = new String(upLoad.getBytes(), "utf-8"); // 构建输入流 InputStream in = new FileInputStream(upLoad); // 下载 response.setCharacterEncoding("utf-8"); log.debug("\n\t下载的文件名: " + request.getParameter("fileName")); // 通知客户端以下载的方式打开 response.setHeader("Content-Disposition", "attachment;filename=" + request.getParameter("fileName")); OutputStream out = response.getOutputStream(); int len = -1; byte b[] = new byte[1024]; while ((len = in.read(b)) != -1) { out.write(b, 0, len); } in.close(); out.close(); }
以上就是今天的想法,没有好好整理过的,后期有时间再进行整理。
0 0
- jsp + servlet 通过a 标签下载文件
- jsp servlet文件下载
- jsp/servlet下载文件
- jsp+servlet文件下载
- 简单文件下载,servlet+jsp
- 通过servlet来下载文件
- jsp A标签中文excel文件下载报404,无法下载
- 用<a>标签下载文件
- 关于JSP不能通过浏览器直接访问,要通过servlet跳转,但一个jsp文件里面用<iframe>标签包含了另一个jsp的访问问题
- Jsp/Servlet:实现文件上传与下载
- jsp+servlet实现文件上传与下载
- Jsp/Servlet:实现文件上传与下载
- Jsp/Servlet:实现文件上传与下载
- Java 下载文件回顾(servlet+jsp)
- Jsp/Servlet:实现文件上传与下载
- JSP/Servlet文件上传与下载
- j2ee,jsp,servlet文件下载服务器端
- Jsp/Servlet:实现文件上传与下载
- 关于接口测试的总结
- failed: Can’t locate DBD/mysql.pm的解决办法
- 工作邮箱的几点浅见
- directx数学基础1
- ZKFC(Zookeeper Failover Controller)原理【详细版】
- jsp + servlet 通过a 标签下载文件
- bss,data,text,rodata,堆,栈,常量段
- android.database.CursorIndexOutOfBoundsException: Index -1 requested, with a size of 14
- Drawable 文件夹——xml文件
- 1060. Are They Equal (25)
- 3.scala容器
- 417. Pacific Atlantic Water Flow dfs
- Scala学习笔记 --- scala中 => 作用
- 共生矩阵纹理特征提取