JSP和Servlet连接数据库 登陆验证ResultSet.getString("power")空指针问题
2012-03-24 00:00
513 查看
今天在做一个用户登陆验证时,出现了ResultSet方法getString("power")空指针问题
我再客户端输入用户名和密码链接上数据库验证是否正确,并返回此用户的权限power(admin/ user),,发现当我输入客户端输入的用户时中文时,服务器验证后
时:
public String getUserByNameAndPwd(String userName, String password) {
String power = null;
String sql = "select power from t_user where userName='" + userName
+ "' AND password='" + password + "'";
ResultSet rs = ConnectionDB.query(sql);
try {
if (rs != null && rs.next()) {
power = rs.getString("power");//错误createSQLExeception
}
} catch (Exception e) {
e.printStackTrace();
}
return power;
}
发现用rs取出来的power总是空的,而用字母用户名验证时却总能成功,最后从数据库与Servlet的链接入手,认为java代码在链接数据库时的编码方式应该有问题。
于是我改成:
public static String url = "jdbc:mysql://localhost:3306/bbs"+"?userUnicode=true&characterEncoding=utf-8";//刚开始我没加红色的部分导致出错
public static String dbUser = "root";
public static String dbPwd = "";
public static Connection connect() {
Connection con = null;
try {
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection(url, dbUser, dbPwd);
} catch (Exception e) {
e.printStackTrace();
}
return con;
}
$(document).ready(function(){dp.SyntaxHighlighter.HighlightAll('code');});
原文链接:
http://blog.csdn.net/weiyirong/article/details/7374912
我再客户端输入用户名和密码链接上数据库验证是否正确,并返回此用户的权限power(admin/ user),,发现当我输入客户端输入的用户时中文时,服务器验证后
时:
public String getUserByNameAndPwd(String userName, String password) {
String power = null;
String sql = "select power from t_user where userName='" + userName
+ "' AND password='" + password + "'";
ResultSet rs = ConnectionDB.query(sql);
try {
if (rs != null && rs.next()) {
power = rs.getString("power");//错误createSQLExeception
}
} catch (Exception e) {
e.printStackTrace();
}
return power;
}
发现用rs取出来的power总是空的,而用字母用户名验证时却总能成功,最后从数据库与Servlet的链接入手,认为java代码在链接数据库时的编码方式应该有问题。
于是我改成:
public static String url = "jdbc:mysql://localhost:3306/bbs"+"?userUnicode=true&characterEncoding=utf-8";//刚开始我没加红色的部分导致出错
public static String dbUser = "root";
public static String dbPwd = "";
public static Connection connect() {
Connection con = null;
try {
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection(url, dbUser, dbPwd);
} catch (Exception e) {
e.printStackTrace();
}
return con;
}
$(document).ready(function(){dp.SyntaxHighlighter.HighlightAll('code');});
原文链接:
http://blog.csdn.net/weiyirong/article/details/7374912
相关文章推荐
- JSP和Servlet连接数据库 登陆验证ResultSet.getString("power")空指针问题
- jsp连接数据库的乱码问题 servlet请求参数编码处理get post
- 登陆示例(利用jsp,servlet)不连接数据库
- 解决当字段不存在使用resultSet.getString("id")报异常的问题
- java 连接 mysql 数据库"javax.servlet.ServletException: org.gjt.mm.mysql.Driver"是什么问题,怎样解决?
- JSP用记事本当数据库验证用户登陆问题
- Jsp登陆页面和前后台验证并连接数据库
- jsp登陆页面和前后台验证并连接数据库
- 基于play的用户登陆验验证和数据库的相关连接问题
- jsp+servlet+ajax+oracle数据库-实现简单的登陆、注册、找回密码功能(与Oralce数据库连接)
- jsp数据库连接中"无效的描述符索引"问题的解决
- 问题解决:javax.servlet.jsp.el.ELException: The "." operator was supplied with an index value of type "java.lang.String" to be applie
- ASP.NET的MEMBERSHIP问题:你在用WEBPART, 登陆控件的时候,可能会发生的数据库连接错误。
- JSP 问题: "javax.servlet.http.HttpServlet" was not found on the Java Build Path
- jsp的注册登陆链接数据库验证
- jbpm 错误 loader constraint violation: when resolving interface method "javax.servlet.jsp.JspApplicationContext.getExpressionFacto
- Servlet连接mysql数据库验证账号密码问题
- jdbc 通过rs.getString()获取数据库中的时间字段问题
- java制作登陆界面验证问题mysql为数据库
- MacOS登陆win10 时出现”远程桌面无法验证您希望连接的计算机的身份"解决方法