CSV其实就是COMMA SEPARATED VALUE的缩写。
在开发中用Java操作csv文件有专门的的API叫javacsv.jar
javacsv.jar下载地址:
http://sourceforge.net/project/showfiles.php?group_id=33066
down.jsp
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<input type="button" value="点击即可下载" onclick="work();" />
<hr />
浏览文件:
<input type="file" name="path" id="path">
</body>
<SCRIPT LANGUAGE="JavaScript">
var uname = "<sec:authentication property='name'></sec:authentication>";
function work() {
//important!
window.location = "user/reqDownload?account=" + uname;
}
</SCRIPT>
</html>
UserController类:
@RequestMapping(value = "/reqDownload", method = RequestMethod.GET)
public void reqDownload(@RequestParam("account") String user_account,
HttpServletResponse response, HttpServletRequest request,
ModelMap map) throws IOException {
request.setCharacterEncoding("UTF-8");
// get the filePath that will be downnLoad
String path = CSVReportOneService.ReqCSVFile(user_account,
"reqFileName");
// 获取下载文件路径
// String path=request.getParameter("reqFileName");
// 编码
// path=URLEncoder.encode(path, "ISO-8859-1");
// 解码
// path=URLDecoder.decode(path, "UTF-8");
File file = new File(path);
// 文件名
String fileName = file.getName();
// 扩展名
// String ext = fileName.substring(fileName.lastIndexOf(".") + 1,
// fileName.length()).toUpperCase();
// 输入流
InputStream inStream = new FileInputStream(path);
InputStream in = new BufferedInputStream(inStream);
byte[] bs = new byte[in.available()];
in.read(bs);
in.close();
// 清空response
response.reset();
// 设置response的Header
// 使浏览器弹出下载对话框
response.addHeader("Content-Disposition", "attachment;filename="
+ new String(fileName.getBytes(), "ISO-8859-1"));
response.addHeader("Content-Length", "" + file.length());
// 输出流
OutputStream toClient = new BufferedOutputStream(
response.getOutputStream());
response.setContentType("application/octet-stream");
toClient.write(bs);
toClient.flush();
toClient.close();
// map.addAttribute("xml", path);
}
CSVReportOneServiceImpl类方法
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import com.rg.report.entity.CSVTest;
import com.rg.report.service.CSVReportOneService;
import com.rg.report.utils.CSV.Java2CSV;
public class CSVReportOneServiceImpl extends BaseServiceImpl<CSVTest> implements
CSVReportOneService {
@Override
public String ReqCSVFile(String user_account, String CSVName) {
// 从获取将要写入csv文件的结果集
String sql = "SELECT user_id,user_account ,user_name,user_desc FROM rg_users";
List<CSVTest> list = findByNativeQuery(sql.toString(), CSVTest.class,
null);
// 预组装csv文件内容标题行
String[][] data = new String[list.size() + 1][4];
data[0][0] = "user_id";
data[0][1] = "user_account";
data[0][2] = "user_name";
data[0][3] = "user_desc";
// 预组装csv文件内容
int len = list.size();
for (int i = 0; i < len; i++) {
data[i + 1][0] = list.get(i).getUser_id();
data[i + 1][1] = list.get(i).getUser_account();
data[i + 1][2] = list.get(i).getUser_name();
data[i + 1][3] = list.get(i).getUser_desc();
}
Date date1 = new Date();
SimpleDateFormat dateFm = new SimpleDateFormat("yyyy-MM-dd-HHmmss");
// file store path
String fileName = "e://Log/" + dateFm.format(date1) + "-"
+ user_account + CSVName + "-" + "月流量报表1--测试.csv";
//write CSV.file on localhost
Java2CSV.writerCsv(fileName, data);
return fileName;
}
}
CSVTest.java
import javax.persistence.Entity;
import javax.persistence.Id;
@Entity
public class CSVTest {
@Id
String user_id;
String user_account;
String user_name;
String user_desc;
public String getUser_id() {
return user_id;
}
public void setUser_id(String user_id) {
this.user_id = user_id;
}
public String getUser_account() {
return user_account;
}
public void setUser_account(String user_account) {
this.user_account = user_account;
}
public String getUser_name() {
return user_name;
}
public void setUser_name(String user_name) {
this.user_name = user_name;
}
public String getUser_desc() {
return user_desc;
}
public void setUser_desc(String user_desc) {
this.user_desc = user_desc;
}
}
分享到:
相关推荐
Servlet是Java编写的服务器端程序,可以处理来自客户端的请求并生成响应。JSP则是一种视图技术,允许开发者将HTML代码与Java代码混合,以方便生成动态页面。 3. **连接管理**:J2EE服务器通常支持多种数据源连接池...
在本场景中,我们关注的是如何在J2EE服务器端生成带有背景的验证码。 验证码的生成通常包含以下几个步骤: 1. **随机字符生成**:首先,我们需要生成一串随机字符,这可以是数字、字母或者两者的组合。通常,...
2. Servlet类:处理文件上传和下载的服务器端代码。 3. 配置文件:如web.xml,定义了Servlet的映射路径和初始化参数。 4. 可能还有额外的Java类,用于处理文件存储、权限验证或日志记录等辅助功能。 文件上传和下载...
在J2EE 1.5中,它为基于XML的Web服务提供了客户端和服务器端的实现。 以上是J2EE 1.5 API文档中涵盖的主要技术组件及其功能。通过深入学习和理解这些API,开发者可以更好地构建高效、可靠的分布式企业级应用。文档...
1. **Servlet**:Servlet是Java编写的小型服务器端程序,用于处理HTTP请求。它扩展了Web服务器的功能,能够动态生成HTML内容,是J2EE应用的基础。 2. **JSP(JavaServer Pages)**:JSP是一种动态网页技术,它允许...
【标签】"J2EE服务器"明确了这个项目的核心在于实现一个J2EE的服务器端环境。J2EE服务器通常包含了多个组件,如Web容器(用于处理HTTP请求和响应,支持Servlet和JSP)、EJB容器(管理业务逻辑组件,提供事务、安全性...
开发者可以通过查阅此文档来学习如何使用J2EE提供的各种服务,进行服务器端的编程。 **J2EE的主要组件和功能**: 1. **Servlet**:Servlet是Java语言中处理HTTP请求的服务器端组件,用于扩展Web服务器的功能,如...
- **文件下载**:当用户请求下载时,服务器端会读取文件内容并设置响应头,指定Content-Type和Content-Disposition,确保浏览器正确地处理和呈现文件。 5. **安全性与优化**: - 安全性:在处理用户上传的文件时...
标题中的“J2EE文件下载”表明我们讨论的是与Java企业版(J2EE)相关的文件,这通常涉及服务器端应用程序开发、分布式计算和企业级服务。J2EE是Java平台的一部分,它提供了一个框架来构建可扩展且高度模块化的多层...
标题 "FusionCharts在服务器端导出图片(J2EE版)" 指向的是一个关于如何在Java(J2EE)环境中使用FusionCharts库来实现服务器端图片导出的技术主题。FusionCharts是一个强大的JavaScript图表库,它允许开发者创建交互...
J2EE提供了一个标准的环境,使开发者能够用Java语言编写可移植的服务器端应用程序。 **Java API** 是J2EE的核心组成部分,它为开发者提供了丰富的类库和接口,涵盖了网络通信、数据库交互、安全性、事务处理、邮件...
4. **EJB (Enterprise JavaBeans)**:EJB是J2EE规范的一部分,用于构建可部署在服务器端的组件。EJB组件分为三种类型:Session Beans(处理客户端请求)、Message-driven Beans(处理消息队列)和Entity Beans(代表...
2. **Servlet**:Servlet 是Java服务器端的组件,用于处理HTTP请求。J2EE 5.0 中的Servlet 2.5规范改进了部署描述符的配置,支持注解,简化了Servlet的编写。 3. **Enterprise JavaBeans (EJB)**:EJB 是J2EE的核心...
1. **Servlet**:Servlet是Java编写的服务器端程序,用于处理HTTP请求。它是J2EE中的基础,常用于动态网页生成。 2. **JSP(JavaServer Pages)**:JSP是Servlet的一种简化方式,允许开发者在HTML页面中嵌入Java...
在描述中提到的"SSO实例服务器端,内含客户端所需包文件、以及文档资料"表明这是一个包含SSO解决方案的服务器端实现,可能包含了SSO服务器的配置、部署所需的文件,以及帮助开发者或管理员理解如何集成和使用SSO的...
J2EE(Java 2 Platform, Enterprise Edition)是Java平台上用于构建企业级应用的框架,它提供了多种服务、组件模型和接口,使得开发者能够创建可扩展、分布式、安全且事务处理能力强的服务器端应用程序。在J2EE 1.6...
3. **Servlet**:Servlet是Java语言编写的小程序,运行在服务器端,用于扩展服务器的功能,处理HTTP请求。Servlet_API.chm是Servlet API的参考文档,包含了Servlet接口、过滤器、监听器等关键概念的详细说明。 4. *...
1. **Servlet**:Servlet是Java编写的服务器端程序,处理HTTP请求,返回动态内容。Servlet容器如Tomcat负责加载、实例化和调用Servlet。 2. **JSP**:Java Server Pages,将HTML与Java代码结合,便于动态生成网页...
在J2EE 1.5中,Servlet API提供了处理HTTP请求和响应的方法,使得开发者可以创建服务器端的应用程序。 2. **JSP(JavaServer Pages)**:JSP是HTML与Java代码混合的视图技术,用于生成动态网页。J2EE 1.5引入了JSP ...
Java EE(Java Platform, Enterprise Edition)是Oracle公司推出的企业级应用开发平台,它提供了一系列API和服务,用于构建分布式、多层的服务器端应用程序。这个"j2ee api帮助文档"包含了Java EE API的详细信息,是...