jsp: jsp生成xml文件示例

3 views
Skip to first unread message

zhangfan xu

unread,
Jul 2, 2006, 8:05:19 AM7/2/06
to Technology_DB
<%@ page contentType="text/html; charset=gb2312" %>
<%@ page language="java"%>
<%@ page info="database handler"%>
<%@ page import="java.io.*"%>
<%@ page import="java.lang.*"%>
<%@ page import="java.util.*"%>
<%@ page import="java.sql.*"%>
<%@ page import="javax.servlet.*"%>
<%@ page import="javax.servlet.http.*"%>
<html>
<head>
<meta content="text/html; charset=gb2312" http-equiv="content-type">
</head>
<body>
<%
int i=0;
String temp=null;
String parCode = request.getParameter("code");
String strSql;
try{
Connection con;
Statement stmt;
ResultSet rs;
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url="jdbc:oracle:thin:@192.168.15.248:1521:ycdb";
con=DriverManager.getConnection(url,"webcfcquery","kill859");

//out.println("<center>jdbc连接Oracle数据库</center><br><br>");
stmt=con.createStatement();
strSql = "select account_holder,description from account_holder
";
if(parCode!=null)
strSql += " where account_holder='"+ parCode +"'";
rs=stmt.executeQuery(strSql);
FileOutputStream fo=new
FileOutputStream("/usr/local/tomcat/webapps/vehicles/treasurer_voucher.xml");
PrintStream so = new PrintStream(fo);
while(rs.next()){
String col1=rs.getString(1);
String col2=rs.getString(2);
try{
if(i==0){
so.println("<?xml version=\"1.0\" encoding=\"gb2312\" ?>");
so.println("<ufinterface roottag=\"voucher\" billtype=\"gl\"
subtype=\"\" replace=\"Y\" receiver=\"1051\" sender=\"1101\"
isexchange=\"Y\" filename=\"会计凭证.xml\">");
so.println("<voucher id=\"1234560102\">");


//
注意:这种写法在xml文件显示时会报错,不知道为什么?
so.println("<custcode>"+col1+"</custcode>");
so.print("<custcode>");
if(col2==null)
{ //如果不判断对象col2是否为null值,那么在进行编码转换时可能会出现NullPointerException异常
so.print(col2);
} else
{ //因为前面已经定义xml文件的编码显示方式是gb2312,所以在将字符串col2写入xml之前需转换成gb2312,这样在xml文件中汉字才能正常显示。
byte[] temp_col = col2.getBytes("gb2312");
col2 = new String(temp_col);
so.print(col2);
}
so.println("</custcode>");

}
}catch(Exception e){
out.println(e.toString());
}
i++;
}
so.println("</voucher>");
so.println("</ufinterface>");
so.close();
}catch(Exception e){
out.println(e);
}
%>
</body>
</html>

jsp读取大对象CLOB并生成xml文件示例
<%@ page contentType="text/html; charset=gb2312" %>
<%@ page info="database handler"%>
<%@ page import="java.io.*"%>
<%@ page import="java.net.*"%>
<%@ page import="java.lang.*"%>
<%@ page import="java.util.*"%>
<%@ page import="java.sql.*"%>
<%@ page import="javax.servlet.*"%>
<%@ page import="javax.servlet.http.*"%>
<%@ page import="oracle.sql.CLOB"%>
<%@ page import="oracle.jdbc.driver.OracleResultSet"%>

<html>
<head>
<meta content="text/html; charset=gb2312" http-equiv="content-type">
</head>
<body>
<%
int i=0;
String parID = request.getParameter("id_no");
String strSql;
String content="";

try{
String xmlFile = "/usr/local/tomcat/webapps/vehicles/test.xml";

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String dburl="jdbc:oracle:thin:@192.168.15.250:1521:ycdb";
Connection
con=DriverManager.getConnection(dburl,"training","deep1704sea");
Statement stmt=con.createStatement();

//使用流读取CLOB或BLOB列
strSql = "select xmlgen.getxml('select * from account_holder
where id_no=''0001''') from dual ";
ResultSet rs=stmt.executeQuery(strSql);
if(rs.next()){
CLOB clob = ((OracleResultSet)rs).getCLOB(1);
if(clob!=null){
Reader is = clob.getCharacterStream();
BufferedReader br = new BufferedReader(is);
String s = br.readLine();
while(s!=null){
//byte[] temp = s.getBytes("iso-8859-1");
//s = new String(temp);
content += s;
s=br.readLine();
}
}
}
//out.println(content);

//将从数据库中读出的内容写到文件中
FileOutputStream fo = new FileOutputStream(xmlFile);
PrintStream so = new PrintStream(fo);
so.println(content);
so.close();

rs.close();
stmt.close();
con.close();

}catch(Exception e){
out.println(e);
}
%>
</body>
</html>

Reply all
Reply to author
Forward
0 new messages