一个用servlet实现导出csv文件的实例


作者:李书鹏 tukeyli@sohu.com

关键字: Java Servlet CSV

本文实现了一个基于servlet技术的简单的csv文件导出的程序实例。

代码如下,其中setCsvData函数的作用是设置导出的数据,并将结果保存于Vector中,实际应用时可以任意扩展该函数:

package common;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Vector;
import javax.servlet.ServletException;
import javax.servlet.http.*;

public class Go2Csv extends HttpServlet
{
public Vector vecCsvData;

private String FileName;

public void doGet(HttpServletRequest request, HttpServletResponse response)
//throws ServletException, IOException
{
FileName = "Untitled.csv"; //default file name

vecCsvData = new Vector();

//sets the data to be exported
setCsvData(request);

//Exporting vector to csv file
String strOut = "";
for (int i = 0; i < vecCsvData.size(); i++)
{
String[] strLine = (String[])vecCsvData.elementAt(i);
int col_num = strLine.length;
for (int j = 0; j < col_num; j++)
{
strOut += strLine[j];
if (j < col_num - 1)
{
strOut += ",";
}
}
strOut += "/n";
}

//***** Output strOut to Response ******
response.reset(); // Reset the response
response.setContentType("application/octet-stream;charset=GB2312"); // the encoding of this example is GB2312
response.setHeader("Content-Disposition","attachment; filename=/"" + FileName + "/"");

PrintWriter out;
try
{
out = response.getWriter();
out.write(strOut);
}
catch (IOException e)
{
e.printStackTrace();
}
//***************************************
}

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
doGet(request, response);
}

/**
* Sets the data to be exported
* @param request
*/
public void setCsvData(HttpServletRequest request)
{
//Writing vector
for (int i = 0; i < 5; i++)
{
String[] strLine = new String[10];
for (int j = 0; j < 10; j++)
{
strLine[j] = Integer.toString(i) + "-" + Integer.toString(j);
}
vecCsvData.addElement(strLine);
}
}

/**
* Sets the file name to be exported
* @param filename
*/
public void setFileName(String filename)
{
FileName = filename;
}
}

调用方法:
http://hostname:port/ApplicationName/servlet/common.Go2Csv

导出文件Untitled.csv内容如下:
0-0,0-1,0-2,0-3,0-4,0-5,0-6,0-7,0-8,0-9
1-0,1-1,1-2,1-3,1-4,1-5,1-6,1-7,1-8,1-9
2-0,2-1,2-2,2-3,2-4,2-5,2-6,2-7,2-8,2-9
3-0,3-1,3-2,3-3,3-4,3-5,3-6,3-7,3-8,3-9
4-0,4-1,4-2,4-3,4-4,4-5,4-6,4-7,4-8,4-9

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
留言板是一个常见的网站功能,可以让用户在网站上发表自己的留言、评论、意见等。本文将介绍如何使用Servlet来设计实现一个简单的留言板。 1. 前端页面设计 首先,需要设计一个前端页面来展示留言板和接收用户的留言信息。可以使用HTML、CSS和JavaScript来实现。其中,留言板界面应该包括留言列表和留言表单两部分。留言表单应该包括姓名、邮箱、留言内容等字段,用户可以填写这些信息并提交到后台。 2. 后台Servlet实现 在后台使用Java Servlet来处理留言表单的提交和留言列表的展示。首先需要在web.xml文件中配置Servlet,然后实现doGet和doPost方法。在doPost方法中可以获取用户提交的表单数据,并将其保存到数据库中。在doGet方法中可以查询数据库中的留言信息,并展示在前端页面上。在处理留言内容时,需要注意防止跨站脚本攻击(XSS)。 3. 数据库设计 要保存用户提交的留言信息,需要在后台设计一个数据库来存储留言信息。数据库表可以包括id、姓名、邮箱、留言内容、留言时间等字段。在保存留言信息时,需要对数据进行合法性检查,防止SQL注入攻击。 4. 安全问题考虑 在设计实现一个简单的留言板时,需要考虑安全问题。除了防止XSS和SQL注入攻击以外,还需要防止CSRF攻击、文件上传漏洞等。可以使用一些安全框架或者开源库来进行安全性的增强。 5. 性能问题考虑 当用户量较大时,需要考虑留言板的性能问题。可以使用缓存、负载均衡等技术来优化性能。同时,需要对数据库进行优化,确保查询和更新操作的效率。 综上所述,设计实现一个简单的留言板需要考虑众多方面的问题,包括前端页面设计、后台Servlet实现、数据库设计、安全性以及性能等。只有在全面考虑这些问题的基础上,才能有效地实现一个可靠、高效、安全的留言板。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

tukey

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值