在JSP中下载文本文档
通常,我们需要提供一个文件下载的时候,仅需要一个超链接就可以解决。
比如exe文件,鼠标左键点击链接就会提示你直接执行还是保存,右键则可以直接另存为。。。
但是有一部分文件,比如txt等可以在浏览器中直接打开的文件,你只能用鼠标右键点击链接然后另存为的方式去保存该文件,如果直接点击左键,该文件就在浏览器中被打开了。
在一些需求中,我们需要让txt拥有exe文件类似的动作,即左键点击时也让它提示保存还是打开。
网上很多文章都提到用jspsmartupload去做这件事情,smartupload当然是个好东西,可以用的时候尽管用,但是它并不是必须的,我们在jsp中可以直接设置response的Header (Content-Disposition) 来达到目的。下面是整个过程:
1)首先你要提供一个下载的链接,或者button,如:
<a href="download.jsp">文件下载</a>
<button type="submit" onClick="window.open('download.jsp')">文件下载</button>
总之,需要有一个方法跳转到实现文件下载的jsp或者servlet中。
2)在download.jsp(或者实现同样功能的servlet)中,代码如下:
<%@ page contentType="text/html;charset=gb2312"%>
<%
/* 前半部分是获得server上webcontent的真实路径,
* 因为获得一个FileInputStream必须使用"E:/webcontent/filename.txt"这种类型的真实路径,
* 而不是"http://www.xxx.com/xxx/filename.txt"这种URL的形式。
* dataname 是具体的文件相对于webcontent的路径 */
String fullname = request.getSession().getServletContext().getRealPath("/") + dataname;
// filename是保存时的默认文件名,经实验,在Firefox2和IE7中,这个文件名是有用的,在IE6中似乎没什么用,有兴趣的人再去研究研究吧
String filename = fullname.substring(fullname.lastIndexOf('/'));
int i = 0;
response.setContentType("text/plain");
// 关键是设置这个Hea
相关文档:
一、安装JDK 首先下载JDK 5.0(JDK 5.0的下载页面为:http://java.sun.com/j2se/1.5.0/download.jsp); 然后运行JDK 5.0安装程序jdk-1_5_0_06-windows-i586-p.exe,安装过程中所有选项保持默认;最后配置JDK的环境变量:在“我的电脑”上点右键—>“属性”—>“高级”& ......
try {
URL url = new URL("http://www.163.com");
InputStream is = url.openStream();
byte[] buffer = new byte[1024];
  ......
<%@ page language="java" import="kg.TestBean2;" %>
<%@ page contentType="text/html;charset=gb2312" %>
<html>
<head>
<title>HelloBean</title>
</head>
<body>
<%--
<%
kg.TestBean2 testbean=(kg.TestBean2)session.setAttribute("testbean");
if ......
一、
问:org.postgresql.util.PSQLException: FATAL: no pg_hba.conf entry for host "192.168.254.103", user "postgres",database "postgres", SSL off
答:PostgreSQ数据库为了安全,它不会监听除本地以外的所有连接请求,当用户通过JDBC访问是,就会报一些以上的异常。要解决这个问题 ......
JSP共有以下9种基本内置组件(可与ASP的6种内部组件相对应):
1.request 用户端请求,此请求会包含来自GET/POST请求的参数。
2. response 网页传回用户端的回应 。
3.pageContext 网页的属性是在这里管理 。
4.session 与请求有关的会话期。
5.ap ......