`

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
分享到:
评论

相关推荐

    Java_2企业版服务器端高级编程(一)

    这是描述JavaEE服务器高端编程的pdf文件 欢迎大家下载!

    j2ee、SSH、SSO实例服务器端

    SSO实例服务器端,内含客户端所需包文件、以及文档资料

    J2EE平台

    Web组件 J2EE的Web组件...服务器端应用类也可以与Web组件捆绑,象HTML一样,没有作为Web组件。 如图3展示,向客户层一样,Web层有JavaBeans对象管理用户的输入,并把输入发送到运行在业务层的企业Bean处理。

    J2EE基础:使用JSF技术开发Web应用程序

    JSF是基于Java的Web应用开发领域里提供了一个可重用、可扩展、基于组件、工具友好的服务器端UI框架。在支持JSF的RAD开发工具中,人们可以像使用Visual Studio.NET一样方便快捷地构建Web用户界面,大大降低了利用Java...

    J2EE程序设计复习题.doc

    服务器端产品 B. 服务器端组件开发架构 C. 特殊类型的JavaBean D. 用于实现商业逻辑 2. EJB架构主要使用的设计模式是: [AC] A. Proxy 代理 B. Strategy C. Delegate 委派 D. Responsibility Chain 3. EJB的类型...

    J2EE系统设计方案.doc

    J2EE系统技术方案 J2EE系统技术方案 1 一、 技术平台 2 1. J2EE的概念 3 2. J2EE的优势 3 3. J2EE相关核心技术 4 4. 轻量级J2EE架构 5 二... 可伸缩性: 企业必须要选择一种服务器端平台,这种平台应能提供极佳的可伸缩

    基于J2EE框架的个人博客系统项目毕业设计论...

    由于B/S架构管理软件只安装在服务器端(Server)上,即应用程序在部署、升级、维护时,只需要在服务器端进行配置就可以了,网络管理人员只需要管理服务器就行了,用户界面主要事务逻辑在服务器(Server)端完全通过...

    J2EE体系之-JSP学习

    JSP( Java Sserver Page )是基于Java语言的服务器端页面 JSP本质就是一个文档,他不仅可以包含静态的HTML代码,也可以包含动态的JAVA代码,服务器容器可以将JSP转换成Servlet发布,并接受请求 JSP文件只需放在...

    中国象棋J2EE源码

    1.服务器端配置 (1)将\XiangQiServer文件夹拷贝到Eclipse的工作空间中。 (2)启动Eclipse。 (3)选择“文件”/“导入”菜单项,展开“常规”节点,选择“现有项目到工作空间中”子节点。 特点有: 界面设计简洁...

    J2EE系统设计方案(1).doc

    J2EE系统技术方案 J2EE系统技术方案 1 一、 技术平台 2 1. J2EE的概念 3 2. J2EE的优势 3 3. J2EE相关核心技术 4 4. 轻量级J2EE架构 5 二... 可伸缩性: 企业必须要选择一种服务器端平台,这种平台应能提供极佳的可伸缩

    信息办公基于Ajax+J2EE的MicroERP源码下载-microerp-0.1.rar

    该系统采用了当下流行的前后端分离架构,通过Ajax技术实现了前端页面与后端服务器之间的异步数据交互,大大提升了用户的操作体验。作为一款适用于毕业设计或课程设计的项目,MicroERP-0.1版本提供了完整的JSP和Java...

    在eclipse中同时开发j2ee模块和flex_客户端模块DOC

    原文:《使用easy eclipse,flex ...l 在 j2ee 视图中 release 产生的 war 文件中包含了最终的服务器代码和 flex 应用编译后的 swf 文件 , 可以直接部署 . 压缩包里是详细步骤、以及最终生成的eclipse 模板项目信息

    基于J2EE框架的个人博客系统项目毕业设计论文(源码和论文)

    由于B/S架构管理软件只安装在服务器端(Server)上,即应用程序在部署、升级、维护时,只需要在服务器端进行配置就可以了,网络管理人员只需要管理服务器就行了,用户界面主要事务逻辑在服务器(Server)端完全通过...

    JClass ServerViews-灵活的Java报表图表处理工具

    JClass ServerReport是一个100%纯Java 服务器端组件库,能在您的J2EE基于服务器的Java应用程序中动态的生成定制的Adobe Acrobat PDF 文档,为您的用户提供专业的,高质量,可随处打印的定制报表。JClass Server...

    web服务器和应用服务器.docx

    综上:Apache是纯粹的web服务器,而Tomcat和IIS因为具有了解释执行服务器端代码的能力,可以称作为轻量级使用服务器或带有服务器功能的Web服务器。 Weblogic、WebSphere因为能提供强大的J2EE功能,毫无疑问是绝对的...

    基于J2EE的B2C电子商务系统开发(论文+系统+开题报告+文献综述+任务书+答辩PPT+中期报表+外文文献+说明书)

    本次我们的B2C电子商务系统设计过程中主要用到的技术为分别为JSP、Servlet...JSP 组合了服务器端脚本和标记,同时允许将显示逻辑(如HTML) 与业务逻辑区分开来。在每一个JSP 文件中,可以包括JSP 语法、HTML 标记、Servlet

    servlet错误总结(png)

    Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,主要功能在于交互式地浏览和修改数据,生成动态Web内容。(错误总结图404、500、405三个)

    resin-2.1.8服务器

    目前resin可以支持sun的j2ee,而tomcat不能直接支持,而j2ee是基于java服务器端大系统的基础。但tomcat结构非常合理,而且是apache组织的产品,因此有着很好的远景。 Resin1.1的特性包括: 1 支持jsp1.1和在服务器...

    jxcell库文件

    ● jxcell是可以在服务器或客户端操作Excel文件的Java工具,可以用作快速的服务器端计算引擎,执行复杂的快速计算。 ● 可以在 Java 用户界面中嵌入jxcell电子表格,应用于可嵌入小程序(java applet)和 Java 桌面...

    基于J2EE的博客系统的设计与实现毕业设计.doc

    无疑会添加服务器的处理能力,在服务器端并发性一定的情况下,由于请求的用户 过多,而服务器又一时处理不过来,所请求的用户必然会经历一个排队的过程,从而使 得系统的整体响应时候大幅度添加,这样的用户体验也就...

Global site tag (gtag.js) - Google Analytics