首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

现时通过mysql的jdbc访问数据库,为什么用中文账号登陆不了

2013-11-14 
现在通过mysql的jdbc访问数据库,为什么用中文账号登陆不了%@page contentTypetext/html pageEncoding

现在通过mysql的jdbc访问数据库,为什么用中文账号登陆不了
<%@page contentType="text/html" pageEncoding="utf-8"%>
<%@ page import="java.sql.*"%>
<html>
<head><title>www.mldnjava.cn,MLDN高端Java培训</title></head>
<body>
<center>
<h1>登陆操作</h1>
<hr>
<%!// 定义若干个数据库的连接常量
public static final String DBDRIVER = "org.gjt.mm.mysql.Driver" ;
public static final String DBURL = "jdbc:mysql://localhost:3306/mldn" ;
public static final String DBUSER = "root" ;
public static final String DBPASS = "admin" ;
%>
<%
Connection conn = null ;// 数据库连接
PreparedStatement pstmt = null ;// 数据库预处理操作
ResultSet rs = null ;// 查询要处理结果集
boolean flag = false ;// 保存标记
String name = null ;// 保存真实姓名
%>
<%
try{
%>
<%
Class.forName(DBDRIVER) ;
conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS) ;
String sql = "SELECT name FROM user WHERE name=? AND password=?" ;
    
pstmt = conn.prepareStatement(sql) ;
pstmt.setString(1,request.getParameter("name1")) ;
pstmt.setString(2,request.getParameter("password")) ;
rs = pstmt.executeQuery() ;// 查询
if(rs.next()){// 如果有数据,则可以执行
flag = true ;//  表示登陆成功
name = rs.getString(1) ;
}
%>
<%
}catch(Exception e){
e.printStackTrace() ;
}
finally{
try{
rs.close() ;
pstmt.close() ;
conn.close() ;
} catch(Exception e){}
}
%>
<%
if(flag){// 登陆成功
%>
<jsp:forward page="login_success.jsp">
<jsp:param name="uname" value="<%=name%>"/>
</jsp:forward>
<%
} else {// 登陆失败
%>
<jsp:forward page="login_failure.jsp"/>
<%
}
%>
</center>
</body>
</html> mysql java?web? 中文转换
[解决办法]
应该是乱码导致sql查询不到结果吧
[解决办法]
汉字乱码
response.setContentType("text/html;charset=utf-8");
[解决办法]
估计是乱码导致的,加上这段代码  request.setCharacterEncoding("utf-8");然后打印下sql
[解决办法]
如果英文可以 ,应该是字符集的问题。

热点排行