- 浏览: 710142 次
- 性别:
- 来自: 天津
文章分类
- 全部博客 (442)
- 中间件 (20)
- hibernate (13)
- spring (20)
- 数据库 (78)
- struts (8)
- ibatis (4)
- 前端 (61)
- linux,windows (21)
- it大环境 (32)
- IDE工具 (36)
- 感悟 (6)
- java基础 (40)
- 经典面试题 (10)
- exception总结 (14)
- 软件设计 (8)
- 工具类应用及新技术 (48)
- php (2)
- 微信 (1)
- 设计模式 (2)
- 重构 (3)
- 管理 (2)
- 工作笔记 (1)
- jmx (1)
- 算法 (4)
- 多线程同步 (2)
- 代码管理工具 (5)
- 代码检测及测试 (2)
- 缓存服务 (1)
- SOA及ROA (5)
- groovy (1)
- 网络编程 (2)
- 大数据 (6)
最新评论
-
love398146779:
我当然不能全写上面了,这只是其中一部分https连接。
java 建立 https连接 -
yuenkin:
大哥,这是双向认证吗?
java 建立 https连接 -
issu:
例如以下代码能遍历字符串"Tom:M ...
<c:forTokens>标签delims截取字符 -
love398146779:
2*3*5=30,是30个以上的请求才拒绝呀。
tomcat的maxThreads、acceptCount(最大线程数、最大排队数) -
love398146779:
2台跟1台一样的效果。
zookeeper与activemq最新存储replicatedLevelDB整合
本来我使用的是文件流下载的方式,在Tomcat下可行,但是在WebLogic下使用文件流下载下来的文件总是乱码,最终我妥协了,选择了RequestDispatcher方式。
1.文件流方式
js中的文件请求:window.location.href = "download.jsp?filepath="+encodeURI(responseArray.path);//filepath中含有中文
实现下载的download.jsp文件如下:
<%@ page language="java" pageEncoding="utf-8" %>
<%@ page contentType="application/x-msdownload" %>
<%@ page language="java" import="java.io.*"%>
<%@ page language="java" import="java.net.URLEncoder"%>
<%@ page language="java" import="java.util.*"%>
<%
String file=request.getParameter("filepath");
String filepath=new String(file.getBytes("ISO8859-1"),"utf-8" );
response.setContentType("application/x-msdownload; CHARSET=utf-8");
String displaypath=filepath.substring(filepath.lastIndexOf("/")+1);
response.addHeader("Content-Disposition","attachment;filename=" + new String(displaypath.getBytes("gb2312"), "ISO8859-1" ));
String filepathdownload=this.getServletConfig.getServletContext().getRealPath(filepath);
OutputStream outputStream=null;
FileInputStream inputStream =null;
try{
outputStream = response.getOutputStream();
inputStream = new FileInputStream(filepathdownload);
byte[] buffer = new byte[1024];
int i = -1;
while ((i =inputStream.read(buffer)) != -1)
{
outputStream.write(buffer, 0, i);
}
outputStream.flush();
//下面这两句在Tomcat下需要,在Weblogic下要去掉,否则出错
out.clear();
out = pageContext.pushBody();
}catch(Exception e)
{
System.out.println("Error!");
e.printStackTrace();
}
finally{
if(inputStream!=null)
{
inputStream.close();
inputStream=null;
}
if(outputStream!=null)
{
outputStream.close();
outputStream=null;
}
}
%>
2.RequestDispatcher实现文件下载
<%@page language="java" import="java.net.*" pageEncoding="gb2312"%>
<%
//如果是从前台传过来的参数就这样写
//String filePath = "/"+request.getParameter("path");前面红字标识的“/”不能没有
//String fileName = request.getParameter("name");
response.setContentType("application/x-download");//设置为下载application/x-download
String filenamedownload = "/Word/作文.doc";//即将下载的文件的相对路径
String filenamedisplay = "作文.doc";//下载文件时显示的文件保存名称
filenamedisplay = URLEncoder.encode(filenamedisplay,"UTF-8");
response.addHeader("Content-Disposition","attachment;filename=" + filenamedisplay);
try
{
RequestDispatcher dispatcher = application.getRequestDispatcher(filenamedownload);
if(dispatcher != null)
{
dispatcher.forward(request,response);
}
response.flushBuffer();
}
catch(Exception e)
{
e.printStackTrace();
}
%>
注意:
1.String filenamedownload = "/Word/作文.doc";指的是即将下载的文件的相对路径,表示作文.doc文件放在工程下的Word文件夹内,一定要注意"/Word/作文.doc",Word前面一定要有“/”,不能写成String filenamedownload = "Word/作文.doc";
2.RequestDispatcher下载方式更为简单,但是缺点在于:下载的文件必须放在工程的内部,application.getRequestDispatcher()方法的参数也必须是相对路径
1.文件流方式
js中的文件请求:window.location.href = "download.jsp?filepath="+encodeURI(responseArray.path);//filepath中含有中文
实现下载的download.jsp文件如下:
<%@ page language="java" pageEncoding="utf-8" %>
<%@ page contentType="application/x-msdownload" %>
<%@ page language="java" import="java.io.*"%>
<%@ page language="java" import="java.net.URLEncoder"%>
<%@ page language="java" import="java.util.*"%>
<%
String file=request.getParameter("filepath");
String filepath=new String(file.getBytes("ISO8859-1"),"utf-8" );
response.setContentType("application/x-msdownload; CHARSET=utf-8");
String displaypath=filepath.substring(filepath.lastIndexOf("/")+1);
response.addHeader("Content-Disposition","attachment;filename=" + new String(displaypath.getBytes("gb2312"), "ISO8859-1" ));
String filepathdownload=this.getServletConfig.getServletContext().getRealPath(filepath);
OutputStream outputStream=null;
FileInputStream inputStream =null;
try{
outputStream = response.getOutputStream();
inputStream = new FileInputStream(filepathdownload);
byte[] buffer = new byte[1024];
int i = -1;
while ((i =inputStream.read(buffer)) != -1)
{
outputStream.write(buffer, 0, i);
}
outputStream.flush();
//下面这两句在Tomcat下需要,在Weblogic下要去掉,否则出错
out.clear();
out = pageContext.pushBody();
}catch(Exception e)
{
System.out.println("Error!");
e.printStackTrace();
}
finally{
if(inputStream!=null)
{
inputStream.close();
inputStream=null;
}
if(outputStream!=null)
{
outputStream.close();
outputStream=null;
}
}
%>
2.RequestDispatcher实现文件下载
<%@page language="java" import="java.net.*" pageEncoding="gb2312"%>
<%
//如果是从前台传过来的参数就这样写
//String filePath = "/"+request.getParameter("path");前面红字标识的“/”不能没有
//String fileName = request.getParameter("name");
response.setContentType("application/x-download");//设置为下载application/x-download
String filenamedownload = "/Word/作文.doc";//即将下载的文件的相对路径
String filenamedisplay = "作文.doc";//下载文件时显示的文件保存名称
filenamedisplay = URLEncoder.encode(filenamedisplay,"UTF-8");
response.addHeader("Content-Disposition","attachment;filename=" + filenamedisplay);
try
{
RequestDispatcher dispatcher = application.getRequestDispatcher(filenamedownload);
if(dispatcher != null)
{
dispatcher.forward(request,response);
}
response.flushBuffer();
}
catch(Exception e)
{
e.printStackTrace();
}
%>
注意:
1.String filenamedownload = "/Word/作文.doc";指的是即将下载的文件的相对路径,表示作文.doc文件放在工程下的Word文件夹内,一定要注意"/Word/作文.doc",Word前面一定要有“/”,不能写成String filenamedownload = "Word/作文.doc";
2.RequestDispatcher下载方式更为简单,但是缺点在于:下载的文件必须放在工程的内部,application.getRequestDispatcher()方法的参数也必须是相对路径
发表评论
-
HttpUrlConnection与httpclient的速度
2015-03-10 17:59 854文件越大,可能HttpUrlConnection的速度优势越明 ... -
FastDFS与hadoop的HDFS区别
2015-01-12 16:12 4155主要是定位和应用场合不一样。 hadoop的文件系统HDFS主 ... -
javax.mail.MessagingException: 501 5.0.0 HELO requires domain address
2014-12-22 17:32 7http://zouhuajian01.blog.163.co ... -
javax.mail.MessagingException: 501 5.0.0 HELO requires domain address
2014-12-22 17:32 1033http://zouhuajian01.blog.163.co ... -
https协议网页能够被搜索引擎收录吗?
2014-11-12 17:07 538百度现在只能收录少部分的https,大部分的https网页无法 ... -
aes加解密
2014-10-29 13:18 695import java.io.File; import ja ... -
udp测试
2014-10-22 15:39 468udp,常用于聊天室,直接向服务发送信息,不进行3次握手。 服 ... -
aio测试
2014-10-22 14:22 665由操作系统来做异步 服务端: package aio; ... -
fastdfs使用实战(Java实例篇)
2014-09-29 18:11 22473一、创建一个maven的webproject,叫file-ma ... -
谷歌(Chrome)安装Advanced REST Client插件
2014-09-29 10:44 2695以前用过jmeter测试各种url连接,soapui测试web ... -
sftp工具类
2014-09-28 13:29 915import java.io.File; import ja ... -
quartz配置
2014-09-22 10:35 344以前做过好几个quartz的应用项目,但都没有记录,当再次用到 ... -
ftp工具类
2014-09-19 18:08 711每回用到总去网上找一通,还是自已总结下比较好 package ... -
使用 JCaptcha 开发图形和声音验证码
2014-08-18 10:13 824http://www.ibm.com/developerwor ... -
Joda-Time 简介
2014-08-18 10:01 488iteye转的文章与自已的文章,不能放到一起。真麻烦。 转一个 ... -
log.isDebugEnabled()
2014-08-06 11:55 703在使用log4j,common-log这样的log框架时,发现 ... -
zookeeper与activemq最新存储replicatedLevelDB整合
2014-08-01 19:57 6986测试环境:三台VM虚拟机centos6.4 64位 mini版 ... -
一致性哈希算法原理 .
2014-08-01 19:53 521http://baike.baidu.com/view/158 ... -
map,xml互转
2014-06-24 11:46 95591.这个转出来会有很多空格package cn.paypalm ... -
json,xml互转
2014-06-20 19:00 572XMLSerializer xmlSerializer = n ...
相关推荐
本文实例为大家分享了jsp实现文件下载功能的3种方法,供大家参考,具体内容如下 第一种、采用转发的方式: package cn.jbit.download.servlet; import java.io.IOException; import javax.servlet....
它的底层部分是由RequestDispatcher来实现的,因此它带有RequestDispatcher.forward()方法的印记。 如果在之前有很多输出,前面的输出已使缓冲区满,将自动输出到客户端,那么该语句将不起作用,这一点应该特别注意...
forward:可以在JSP页面中使用,可以在Servlet中实现。 在JSP页面中使用目标文件"/>,例如要跳转到userlist.jsp,可以写: 在Servlet中使用RequestDispatcher的forward方法,要跳转到userlist.jsp,可以写: ...
在JSP页面中使用”目标文件”/>,例如要跳转到userlist.jsp,可以写: 代码如下: ”userlist.jsp”/> 在Servlet中使用RequestDispatcher的forward方法,要跳转到userlist.jsp,可以写: 代码如下: ...
Filter的元素用于配置过滤器拦截的资源信息,如果想让过滤器拦截所有的请求访问,那么需要使用通配符“*”来实现 2.拦截不同方式的访问请求。 在web.xml文件中,一个元素用于配置一个Filter所负责拦截的资源。 ...
6.1.2 servlet相关接口与实现类 197 6.2 几个实例 205 6.2.1 实例一:simplehello 205 6.2.2 实例二:welcomeyou 210 6.2.3 实例三:outputinfo 216 6.2.4 实例四:loginservlet 220 6.3 servlet异常 223 ...
6.1.2 servlet相关接口与实现类 197 6.2 几个实例 205 6.2.1 实例一:simplehello 205 6.2.2 实例二:welcomeyou 210 6.2.3 实例三:outputinfo 216 6.2.4 实例四:loginservlet 220 6.3 servlet异常 223 ...
6.1.2 servlet相关接口与实现类 197 6.2 几个实例 205 6.2.1 实例一:simplehello 205 6.2.2 实例二:welcomeyou 210 6.2.3 实例三:outputinfo 216 6.2.4 实例四:loginservlet 220 6.3 servlet异常 223 ...
6.1.2 servlet相关接口与实现类 197 6.2 几个实例 205 6.2.1 实例一:simplehello 205 6.2.2 实例二:welcomeyou 210 6.2.3 实例三:outputinfo 216 6.2.4 实例四:loginservlet 220 6.3 servlet异常 223 ...
《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》内容包括Web客户端技术、JSP/Servlet技术、Struts 2(*、类型转换、输入校验、上传和下载文件、Struts 2的各种标签、对 AJAX的支持等)、Spring...
《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》内容包括Web客户端技术、JSP/Servlet技术、Struts 2(*、类型转换、输入校验、上传和下载文件、Struts 2的各种标签、对 AJAX的支持等)、Spring...
8.2.1 RequestDispatcher,也叫做dispatcher 180 8.2.2 ServletRedirectResult,也叫做redirect 186 8.2.3 ServletActionRedirectResult,也叫做redirectAction 188 8.3 JSP替代品 189 8.3.1 VelocityResult,也叫做...
13 RequestDispatcher getRequestDispatcher(String uripath) 返回指定资源的RequestDispatcher对象 14 Servlet getServlet(String name) 返回指定名的Servlet 15 Enumeration getServlets() 返回所有Servlet的...
通过使用这个对象,Servlet可以记录事件、得到资源并得到来自Servlet引擎的类(例如RequestDispatcher对象)。一个Servlet只能运行在一个Servlet环境中,但是不同的Servlet可以在Servlet引擎上有不同的视图。 如果...
18.5.4多部分(文件上传) 149 在Spring Security之前放置MultipartFilter 150 包含CSRF令牌 151 18.5.5隐藏的HttpMethodFilter 151 18.6覆盖默认值 151 19. CORS 152 20.安全性HTTP响应头 154 20.1默认的安全头 154...