- 浏览: 726194 次
- 性别:
- 来自: 天津
文章分类
- 全部博客 (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 888文件越大,可能HttpUrlConnection的速度优势越明 ... -
FastDFS与hadoop的HDFS区别
2015-01-12 16:12 4210主要是定位和应用场合不一样。 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 1075http://zouhuajian01.blog.163.co ... -
https协议网页能够被搜索引擎收录吗?
2014-11-12 17:07 568百度现在只能收录少部分的https,大部分的https网页无法 ... -
aes加解密
2014-10-29 13:18 737import java.io.File; import ja ... -
udp测试
2014-10-22 15:39 508udp,常用于聊天室,直接向服务发送信息,不进行3次握手。 服 ... -
aio测试
2014-10-22 14:22 703由操作系统来做异步 服务端: package aio; ... -
fastdfs使用实战(Java实例篇)
2014-09-29 18:11 22537一、创建一个maven的webproject,叫file-ma ... -
谷歌(Chrome)安装Advanced REST Client插件
2014-09-29 10:44 2727以前用过jmeter测试各种url连接,soapui测试web ... -
sftp工具类
2014-09-28 13:29 960import java.io.File; import ja ... -
quartz配置
2014-09-22 10:35 382以前做过好几个quartz的应用项目,但都没有记录,当再次用到 ... -
ftp工具类
2014-09-19 18:08 743每回用到总去网上找一通,还是自已总结下比较好 package ... -
使用 JCaptcha 开发图形和声音验证码
2014-08-18 10:13 870http://www.ibm.com/developerwor ... -
Joda-Time 简介
2014-08-18 10:01 521iteye转的文章与自已的文章,不能放到一起。真麻烦。 转一个 ... -
log.isDebugEnabled()
2014-08-06 11:55 758在使用log4j,common-log这样的log框架时,发现 ... -
zookeeper与activemq最新存储replicatedLevelDB整合
2014-08-01 19:57 7028测试环境:三台VM虚拟机centos6.4 64位 mini版 ... -
一致性哈希算法原理 .
2014-08-01 19:53 557http://baike.baidu.com/view/158 ... -
map,xml互转
2014-06-24 11:46 95921.这个转出来会有很多空格package cn.paypalm ... -
json,xml互转
2014-06-20 19:00 609XMLSerializer xmlSerializer = n ...
相关推荐
### JSP实现文件下载功能详解 #### 一、引言 在Web开发中,文件下载是一项常见的需求。Java Server Pages(JSP)作为一种强大的服务器端技术,被广泛应用于构建动态网页。本文将详细介绍如何利用JSP实现文件下载...
在JavaScript中,实现文件下载的方法有多种,这里主要讨论两种常见的方式:使用`RequestDispatcher`和通过文件流输出。这两种方法都是在服务器端处理,以避免直接暴露服务器资源给用户,从而提高安全性。 1. **使用...
3. **读取文件并写入响应**:使用`InputStream`读取文件,然后通过`ServletOutputStream`将数据写入HTTP响应,从而实现文件下载: ```jsp ! String filenameDownload = this.getClass().getClassLoader().get...
需要注意的是,WEB-INF 目录中的内容对 RequestDispatcher 对象也是可见的,因此,传递给 getRequestDispatcher() 方法的资源可以是 WEB-INF 目录中的文件。 三、RequestDispatcher 对象的主要方法 ...
本文将介绍如何使用JSP实现文件下载,具体包括两种主要的方法:转发和通过输出流。 ### 第一种:采用转发的方式 在第一种方法中,我们使用`RequestDispatcher`的`forward()`方法来实现文件的下载。这种方法实际上...
9. **文件上传下载**:除了读写本地文件,JSP和Servlet也可以实现文件的上传和下载功能,涉及的类有`java.io.InputStream`和`java.io.OutputStream`。 10. **Web应用部署**:在实际环境中,这些Java代码需要被打包...
在本场景中,我们关注的是如何利用Servlet读取XML文件来实现JSP的分页功能。分页是一种优化用户体验的方式,尤其是在数据量庞大的情况下,它可以将大量数据分批次展示,避免一次性加载过多数据导致页面响应慢或资源...
文件下载通常通过HTTP响应的`OutputStream`来实现。以下是一个基本的下载Servlet的框架: ```java public void doGet(HttpServletRequest request, HttpServletResponse response) { try { // 设置响应头,包括...
在这个“struts+上传下载+servlet+jsp”项目中,我们将探讨这些技术如何协同工作以实现文件的上传和下载功能。 **Struts框架**: Struts是一个开源的MVC框架,它简化了Java Web应用的开发过程。在Struts中,...
这可以通过`RequestDispatcher`的`forward()`方法实现请求转发,或者使用`response.sendRedirect()`进行重定向。 10. **优化与性能**: 对于大型数据集,一次性加载所有数据到内存中可能不实际。可以考虑使用流式...
在JSP(JavaServer Pages)中,实现页面下载通常有两种主要方法:一种是使用`RequestDispatcher`,另一种是通过文件流输出。这两种方式都可以有效地将服务器上的文件发送到客户端,供用户下载。 1. **采用`...
过滤器通过实现javax.servlet.Filter接口并配置在web.xml文件中来定义其行为。 要为JSP文件生成静态页面,我们需要创建一个自定义过滤器,这个过滤器将在每次对JSP页面发起请求时被调用。以下是创建这样一个过滤器...
在Struts中实现文件上传涉及多个知识点,包括ActionForm、RequestDispatcher、Servlet API以及对文件处理的理解。 1. **Struts框架基础**:Struts是一个基于MVC(Model-View-Controller)设计模式的框架,它简化了...
- 要实现将JSP文件的内容转换为HTML并保存的功能,可以通过以下步骤进行: 1. 创建一个Servlet类,继承自`HttpServlet`。 2. 在`doGet`或`doPost`方法中处理请求。 3. 使用`RequestDispatcher`接口的`include`...
在JavaWeb开发中,"页面功能"通常是指与用户交互的部分,这主要通过Servlet和JSP(JavaServer Pages)技术来实现。...通过分析这些文件,我们可以深入理解如何在实际项目中应用上述概念和技巧来实现JavaWeb的页面功能。
在提供的文件列表中,"www.knowsky.com.txt"、"源码下载.txt"、"www.pudn.com.txt"可能是记录了相关教程或资源链接的文本文件,而"动态网站制作指南.url"可能是指向一个关于动态网站开发的在线教程。"jsp+servlet+...
完成后,Servlet将结果以RequestDispatcher的形式转发给JSP页面,页面再根据数据渲染视图。 在`shoppingcart`这个项目中,你可能会找到以下文件结构和组件: - `jsp`目录:包含了购物车相关的前端展示页面,如`add_...
JSP文件会被服务器转换成Servlet,然后由Servlet引擎执行。 ### 2. SQL Server数据库 SQL Server是微软公司推出的关系型数据库管理系统,广泛应用于企业级数据存储和管理。在这个项目中,SQL Server用于存储商品...