`

J2EE下载服务器端文件

阅读更多

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;
	}

}

 

 

 

 

 

0
2
分享到:
评论

相关推荐

    J2EE网络服务器

    Servlet是Java编写的服务器端程序,可以处理来自客户端的请求并生成响应。JSP则是一种视图技术,允许开发者将HTML代码与Java代码混合,以方便生成动态页面。 3. **连接管理**:J2EE服务器通常支持多种数据源连接池...

    j2ee服务器端生成带有背景验证码

    在本场景中,我们关注的是如何在J2EE服务器端生成带有背景的验证码。 验证码的生成通常包含以下几个步骤: 1. **随机字符生成**:首先,我们需要生成一串随机字符,这可以是数字、字母或者两者的组合。通常,...

    J2EE架构的做文件上传和下载的文件

    2. Servlet类:处理文件上传和下载的服务器端代码。 3. 配置文件:如web.xml,定义了Servlet的映射路径和初始化参数。 4. 可能还有额外的Java类,用于处理文件存储、权限验证或日志记录等辅助功能。 文件上传和下载...

    J2EE1.5 api文档

    在J2EE 1.5中,它为基于XML的Web服务提供了客户端和服务器端的实现。 以上是J2EE 1.5 API文档中涵盖的主要技术组件及其功能。通过深入学习和理解这些API,开发者可以更好地构建高效、可靠的分布式企业级应用。文档...

    j2ee体系chm帮助文档大全

    1. **Servlet**:Servlet是Java编写的小型服务器端程序,用于处理HTTP请求。它扩展了Web服务器的功能,能够动态生成HTML内容,是J2EE应用的基础。 2. **JSP(JavaServer Pages)**:JSP是一种动态网页技术,它允许...

    自己手写的一个简单的J2EE服务器

    【标签】"J2EE服务器"明确了这个项目的核心在于实现一个J2EE的服务器端环境。J2EE服务器通常包含了多个组件,如Web容器(用于处理HTTP请求和响应,支持Servlet和JSP)、EJB容器(管理业务逻辑组件,提供事务、安全性...

    J2EE中文英文帮助文档下载

    开发者可以通过查阅此文档来学习如何使用J2EE提供的各种服务,进行服务器端的编程。 **J2EE的主要组件和功能**: 1. **Servlet**:Servlet是Java语言中处理HTTP请求的服务器端组件,用于扩展Web服务器的功能,如...

    java j2ee poi xsl excel 文档操作 包括上传 下载

    - **文件下载**:当用户请求下载时,服务器端会读取文件内容并设置响应头,指定Content-Type和Content-Disposition,确保浏览器正确地处理和呈现文件。 5. **安全性与优化**: - 安全性:在处理用户上传的文件时...

    J2EE文件下载

    标题中的“J2EE文件下载”表明我们讨论的是与Java企业版(J2EE)相关的文件,这通常涉及服务器端应用程序开发、分布式计算和企业级服务。J2EE是Java平台的一部分,它提供了一个框架来构建可扩展且高度模块化的多层...

    FusionCharts在服务器端导出图片(J2EE版)

    标题 "FusionCharts在服务器端导出图片(J2EE版)" 指向的是一个关于如何在Java(J2EE)环境中使用FusionCharts库来实现服务器端图片导出的技术主题。FusionCharts是一个强大的JavaScript图表库,它允许开发者创建交互...

    J2EE(中文帮助文档)

    J2EE提供了一个标准的环境,使开发者能够用Java语言编写可移植的服务器端应用程序。 **Java API** 是J2EE的核心组成部分,它为开发者提供了丰富的类库和接口,涵盖了网络通信、数据库交互、安全性、事务处理、邮件...

    j2ee的DOC文档

    4. **EJB (Enterprise JavaBeans)**:EJB是J2EE规范的一部分,用于构建可部署在服务器端的组件。EJB组件分为三种类型:Session Beans(处理客户端请求)、Message-driven Beans(处理消息队列)和Entity Beans(代表...

    J2EE5.0帮助文档

    2. **Servlet**:Servlet 是Java服务器端的组件,用于处理HTTP请求。J2EE 5.0 中的Servlet 2.5规范改进了部署描述符的配置,支持注解,简化了Servlet的编写。 3. **Enterprise JavaBeans (EJB)**:EJB 是J2EE的核心...

    J2EE全实例教程下载

    1. **Servlet**:Servlet是Java编写的服务器端程序,用于处理HTTP请求。它是J2EE中的基础,常用于动态网页生成。 2. **JSP(JavaServer Pages)**:JSP是Servlet的一种简化方式,允许开发者在HTML页面中嵌入Java...

    j2ee、SSH、SSO实例服务器端

    在描述中提到的"SSO实例服务器端,内含客户端所需包文件、以及文档资料"表明这是一个包含SSO解决方案的服务器端实现,可能包含了SSO服务器的配置、部署所需的文件,以及帮助开发者或管理员理解如何集成和使用SSO的...

    j2EE帮助文档

    J2EE(Java 2 Platform, Enterprise Edition)是Java平台上用于构建企业级应用的框架,它提供了多种服务、组件模型和接口,使得开发者能够创建可扩展、分布式、安全且事务处理能力强的服务器端应用程序。在J2EE 1.6...

    j2ee_doc api文档

    5. **EJB(Enterprise JavaBeans)**:EJB是Java EE的服务器端组件模型,提供了业务逻辑的容器管理。`javax.ejb`包包括了会话bean、消息驱动bean和实体bean的相关接口。 6. **JMS(Java Message Service)**:JMS...

    J2EE技术文档资料

    1. **Servlet**:Servlet是Java编写的服务器端程序,处理HTTP请求,返回动态内容。Servlet容器如Tomcat负责加载、实例化和调用Servlet。 2. **JSP**:Java Server Pages,将HTML与Java代码结合,便于动态生成网页...

    J2EE1.5API帮助文档

    在J2EE 1.5中,Servlet API提供了处理HTTP请求和响应的方法,使得开发者可以创建服务器端的应用程序。 2. **JSP(JavaServer Pages)**:JSP是HTML与Java代码混合的视图技术,用于生成动态网页。J2EE 1.5引入了JSP ...

    j2ee api帮助文档

    Java EE(Java Platform, Enterprise Edition)是Oracle公司推出的企业级应用开发平台,它提供了一系列API和服务,用于构建分布式、多层的服务器端应用程序。这个"j2ee api帮助文档"包含了Java EE API的详细信息,是...

Global site tag (gtag.js) - Google Analytics