首页 > 在jsp中点击按钮,在bean中把已经查出的数据,生成csv文件,然后在ie中自动打开

在jsp中点击按钮,在bean中把已经查出的数据,生成csv文件,然后在ie中自动打开

Quote:


这个问题可以分两部分讨论:



1、csv文件的格式

2、通过jsp向客户端输出csv文件



第一个问题我们就按简单的来讨论,可以认为是每个字段用""包含后再用,号分割

比如:

"a","b","c"

"d","e","f"



现在我们有了csv文件的内容,我们看看怎么把它输出到客户端



一种变通的方法是把csv的内容写到一个临时文件中,然后让客户端下载这个临时文件。



不过最简单的方法是直接向客户端输出:以下是csv.jsp的内容

"a","b","c"

"d","e","f"



就这么简单,这些信息就输出到客户端了。



不过现在的情况估计是不会满足楼主需要的,因为浏览器自己处理了这些信息,而不是交给excel来处理。

为了让浏览器把处理权让处理,我们需要在jsp的头部加上一些信息,告诉浏览器这些信息不用你来操心,交给其他合适的程序(对应csv来说当然是excel咯)来处理就好了。

先告诉它“以下信息是m$的,不是html的”:

<%@ page language="java" contentType="application/ms-excel"%>

再告诉它文件名是test.csv

<%response.setHeader("Content-Disposition","filename=test.xls");%>

最后是文件的内容:

"a","b","c"

"d","e","f"



全文就是这个样子

<%@ page language="java" contentType="application/ms-excel"%>

<%response.setHeader("Content-Disposition","filename=test.xls");%>

"a","b","c"

"d","e","f"



楼主把abcd什么的换成你从javaBean中查到的东西就可以了。



再访问这个网页,ie的话会提示你打开或者保存,应该是楼主想要的结果了吧。



以下是结合jstl实现的代码:

test.jsp文件

Code:


<%@ page contentType="text/html;charset=GBK" language="java" %>

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>

<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>

<%

response.resetBuffer();

response.setContentType("application/unknow");

response.setHeader("Content-disposition",

"attachment; filename=test.csv");

%>$,$



Collection是一个request.

转载于:https://www.cnblogs.com/dkblog/archive/2006/11/17/1980924.html

更多相关:

  • 本文来自 运维人生 ,作者:fly是个稻草人链接:http://www.ywadmin.com/?id=76误删除linux系统文件了?不用急,本文将给你一个恢复linux文件的方法,让你轻松应对运维中的各风险问题。方法总比问题多~说在前面的话针对日常维护操作,难免会出现文件误删除的操作。大家熟知linux文件系统不同win有回收...

  • 原文来自SecIN社区—作者:WiHat0x00 什么是WebShell渗透测试工作的一个阶段性目标就是获取目标服务器的操作控制权限,于是WebShell便应运而生。Webshell中的WEB就是web服务,shell就是管理攻击者与操作系统之间的交互。Webshell被称为攻击者通过Web服务器端口对Web服务器有一定的操作权限,而...

  • 断电时文件系统发生了什么?硬盘又发生了什么?下一次开机时写到一半的文件在系统层面还在吗?在底层还在吗?更进一步的, 文件系统如何保证事务性, 会不会存在某种极端情况导致例如最后几个bit还没写完, 文件系统却认为它成功了的情况?回答不限任何文件系统,谢谢!下面是「北极」的回复分享断电的一瞬间,很多事情是无法确定的:1. 你无法确定...

  • 接到项目需求。需要搭建一个页面进行交互,慢慢来b (2).jpg使用python django框架进行页面的搭建在项目文件下打开窗口,输入命令;django-admin startproject helloword#在文件helloword/helloword/创建view.py在view.py文件中输入以代码from django....

  • 常见的错误集合解决方案(一)No.1提示错误'Microsoft.VC90.CRT,version="9.0.21022.8"把Microsoft.NET Framework 3.5.1下面的全部勾选上。No.2解决Qt Designer设计的图标但是VS生成不显示问题描述:在Qt designer中为菜单栏和工具栏设计的图标,但是...