JSP访问数据库乱码问题求解决
不善^ 2009-04-05 06:06:04 有几个问题求解决
1.我往MYSQL数据库添加信息时添加了汉字,但是查询后发现数据库里不显示汉字
2.通过JSP访问数据库,可以把数据显示在JSP页面上(我用表格把数据显示出来),但是汉字全部变为乱码
3.把数据放到表格中,表格的大小不一致,表格宽度有大有小不工整很难看。
谁能帮我解决下 谢谢
附代码:
<%@ page language="java" contentType="text/html; charset=GB2312"
pageEncoding="GB2312"%>
<%@ page import="java.io.*"%>
<%@ page import="java.sql.*"%>
<%@ page import="java.util.*"%>
<!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=GB2312">
<title>DBACCESS</title>
</head>
<body>
<%
ResultSet rs = null;
Statement stmt = null;
Connection conn = null;
try{
Class.forName("com.mysql.jdbc.Driver");
String url ="jdbc:mysql://localhost/BookDB?useUnicode=true&characterEncoding=GB2312";
String user = "root";
String pw = "1234";
conn = DriverManager.getConnection(url,user,pw);
stmt = conn.createStatement();
//stmt.executeUpdate("insert into BOOKS values('999','TOM''TomCAT',44,5,'TOMCAT1',80000)");
rs = stmt.executeQuery("select ID,NAME,TITLE,PRICE from BOOKS");
while(rs.next()){
String col1 =rs.getString(1);
String col2 =rs.getString(2);
String col3 =rs.getString(3);
float col4 =rs.getFloat(4);
out.println("<table border=1 width=400>");
out.println("<tr><td>"+col1+"</td><td>"+col2+"</td><td>"+col3+"</td><td>"+col4+"</td></tr>");
out.println("</table>");
}
}
catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if(rs != null) {
rs.close();
rs = null;
}
if(stmt != null) {
stmt.close();
stmt = null;
}
if(conn != null) {
conn.close();
conn = null;
}
} catch (SQLException e) {
e.printStackTrace();
}
}
%>
</body>
</html>