Java资源网

| JAVA基础 | 环境配置 | JDBC | 线程技术 | Socket编程 | JavaMail | JAVA与XML | 设计模式 | 技术新闻 | Java认证 | 程序人生 软件下载
| JSP&Servlet | Spring | Struts | Hibernate | JBuilder | Eclipse | WebService | EJB技术 | J2ME开发 | 应用服务器 | JXTA | Ajax
Articles search文章搜索
   关键字:
   类 别:
       
New download 最新下载
· [组件]HTML Parser 1.5
· [教程]WebSphere Studio应用教程
· [组件]JDom 1.0
· [工具]Junit3.8.1
· [教程]EJB编程及J2EE系统架构和设计
· [教程]EJB教程
· [教程]J2EE Tutorial中文版
· [教程]Java编程思想2(英文)
· [教程]java编程思想(完整版)
· [教程]Java网络编程
New articles 最新文章
· 设计移动 Web 服务
· 解析XML的时候完全忽略DTD
· 理解XML Schema XML Schema 初步
· 标签库的深入研究
· 提升JSP应用程序的七大绝招
· 如何使用JDOM对XML文件进行操作
· 处理XML字符串中特殊字符
· 利用Digester把XML转换成为Java对象
· 使用WebService 和RMI远程协作
· 使用Axis开发Web Service程序
Articles top 热门文章
· Eclipse基础--plugin插件安装(6644)
· eclipse+tomcat+lomboz的安装配置说明(4774)
· Java程序员就业前景(4584)
· Windows下JAVA环境变量的设置祥解(3788)
· Tomcat下JSP、Servlet和JavaBean环境的配置(3716)
· 使用links方式安装Eclipse插件(3698)
· 一个老程序员的心理话(3533)
· linux下jdk的安装与配置(3459)
· 初学者入门:Structs中基本配置入门(3334)
· Eclipse 运行命令行参数大全(3084)
您的位置:首页>>JSP和Servlet>>通过文本文档实现信息的批量导入
通过文本文档实现信息的批量导入
2005-08-05   来源:CSDN  作者:CMTobby
最近参与了一个网上直报项目的维护工作,该网上直报应用程序有一个功能就是通过导入文本文档的方式向后台数据库中批量导入直报用户,包括用户各项信息如单位名称、企业资质等级等等。其核心之处就是如何获取所上载文本文档中的内容,现将该部分程序简单介绍如下:

        首先是后台的javabean程序如下所示:

package Util;

import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import java.util.LinkedList;
import java.io.*;

public class ReadRequest{
 public LinkedList getRequest(HttpServletRequest request){
  LinkedList output=new LinkedList();
  try{
      ServletInputStream in=request.getInputStream();
      int len=request.getContentLength();
      System.out.println (len);
      byte []b=new byte[len];
      in.read(b,0,len);
      String str=new String(b);
      System.out.println (str);
      BufferedReader con=new BufferedReader(new StringReader(str));
      String c="";
      while((c=con.readLine())!=null){
       output.add(c);
                                  }
         }
     catch(Exception e){e.printStackTrace();}
     return output;
                                                    }
                }

        然后是写相应的jsp测试页面,此页面没有经过美工处理,仅为测试之用:)。

        index.jsp

<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<jsp:useBean id="pn" scope="page" class="Util.ReadRequest"/>
<%--<jsp:useBean id="pn" scope="request" class="Util.GetFile"/>--%>
<%@ page import="java.util.*"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>测试</title>
</head>

<body>
<form name="form1" action="index.jsp" method="post" enctype="multipart/form-data">
 <input name="sdf" type="file"><input name="aa" type="submit" value="提交">
 
 <%
LinkedList output=new LinkedList();
output=pn.getRequest(request);
//output=pn.readHttpData(request);
System.out.println(output.size());
for(int i=0;i<output.size();i++){
    out.println(output.get(i)+"<br>");
                                                   }
 %>
</form>
</body>
</html>

        这样就会输出文档中的内容来了,当然还有一些其他的内容,可根据实际需要对内容进行处理。需要注意的是,在该网上直报程序中,文档的格式是有要求的,每行为一个公司的基本信息,各个属性之间用“,”隔开(也可以是其他的符号如“@”),并且各个属性出现的顺序也是固定的(如必须第一项是法人代码,第二项是公司名称)。得到了文档中的内容后,就可以用一个循环批量的插入用户信息了。比如说,我上载的文本文档内容如下所示:

        300000000,武汉,420101,230,A304,A211,4700
        300000001,武汉,420101,230,A304,A211,4700
        300000002,武汉,420101,230,A304,A211,4700
        300000003,武汉,420101,230,A304,A211,4700
首先对output进行处理,把前面的http头内容如:Content-Disposition: form-data; name="sdf"; filename="C:\Documents and Settings\yy\桌面\test_jz.txt"以及尾remove掉,现在的output就只有文档中的内容了。然后就开始插入数据库(只给出代码片断):

//以下代码仅适合本人的例子,具体情况具体而定

for(int i=0;i<output.size();i++){
 if (output.get(i) == null || ( (String) output.get(i)).equals("")) {
          continue; //空行则自动换行        }
 String s = (String) output.get(i); //取得一行 String[] ss = s.split(",");
 String sql="insert into xt_user(f001,f002,f003,f004,f005,f006) values(?,?,?,?,?,?)";
 PreparedStatement ps=con.prepareStatement(sql);
 ps.setString(1,ss[0]);
 ps.setString(2,ss[1]);
 ps.setString(3,ss[2]);
 ps.setString(4,ss[3]);
 ps.setString(5,ss[4]);
 ps.setString(6,ss[5]);
 ps.executeUpdate();
                             }

  --相关文章--
· 漫步j2ee之jsp技术(1) (2007-04-13)
· 提升JSP应用程序的七大绝招 (2007-04-13)
· 如何在JSP中处理中文 (2007-04-13)
· 第一章 taglibnbsp;原理和实现 (2007-04-13)
· 用jsp动态输出excel文档和中文乱码问题的解决 (2007-04-13)
· 可以自动跳转到出错页面的servlet jsp框架 (2007-04-13)

版权所有©2005-2006 JAVA资源网 渝ICP备05007591号 虚拟主机 | 关于我们 | 联系方式 | 广告业务 | 网站地图 | 友情链接