我想用jsp显示数据表表头的值?可是显示出来是乱码!

07-04-09 askuaile
我想用jsp显示数据表表头的值?可是显示出来是乱码!

mysql数据库中存储的是中文.代码如下:

ResultSetMetaData statName= rs.getMetaData();

for(int i=1;i<=statName.getColumnCount();i++){

out.print(statName.getColumnName(i));

}

无论直接输出还是编码转化都是乱码.数据库中显示正常。

new String(str.getBytes("iso-8859-1"),"GB2312");

jsp文件如下:

<%@ page language="java" import="java.sql.*" contentType="text/html;charset=gb2312"%>

<html>

<head>

<title>My JSP '1.jsp' starting page</title>

</head>

<body>

<%

Connection con=null;

Statement stmt=null;

ResultSet rs=null;

String sql="";

String xy="理学院";

String bynf="2006";

request.setCharacterEncoding("gb2312");

//response.setCharacterEncoding("gb2312");

sql="select taizhang2.姓名,taizhang2.身份证 from biyes,taizhang2 where biyes.身份证号=taizhang2.身份证 and 院系所 like '%"+xy+"%'and taizhang2.毕业年份='"+bynf+"'";

try{

Class.forName("com.mysql.jdbc.Driver").newInstance();//加载驱动程序

String url="jdbc:mysql://localhost:3306/dhgl";

con=DriverManager.getConnection(url,"root","root"); //建立连接

System.out.println("数据库连接成功,准备插入数据......");

stmt=con.createStatement();

rs=stmt.executeQuery(sql);

ResultSetMetaData statName= rs.getMetaData();

//System.out.println(statName.getColumnCount());

response.setCharacterEncoding("gb2312");

for(int j=1;j<=statName.getColumnCount();j++)

{

out.println(statName.getColumnName(j)+"<br/>");

}

}

catch(ClassNotFoundException ce)

{ System.out.println(ce); }

catch(SQLException se)

{ System.out.println(se); }

catch(Exception e)

{ System.out.println(e); }

%>

</body>

1
猜你喜欢