package com.fuyou.servlet;import java.io.IOException;
import java.sql.ResultSet;
import java.sql.SQLException;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import com.fuyou.util.DBConnection;
import com.fuyou.util.mvconnection;public class loginservlet extends HttpServlet {
private DBConnection dbc = new DBConnection(); private static final long serialVersionUID = -3265621922663327137L; public loginservlet() { } public void destroy() {
super.destroy(); } public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
} public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String username = request.getParameter("username");
String password = request.getParameter("password");
String conformPswd = "";
String sql = "select * from user where username='" + username + "'"; ResultSet rs = null;
mvconnection mvc = new mvconnection();
if (mvc != null) {
rs = mvc.getResultSet(sql);
} else {
return;
}
if (rs != null) {
try {
if (rs.getString("password") != null) {
conformPswd = rs.getString("PASSWORD");
}
return;
} catch (SQLException e) {
e.printStackTrace();
} finally {
this.dbc.closeResultSet(rs);
}
}
if (password.equals(conformPswd)) { } } public void init() throws ServletException { }}
异常信息:
type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception java.lang.NullPointerException
com.mysql.jdbc.ResultSet.buildIndexMapping(ResultSet.java:596)
com.mysql.jdbc.ResultSet.findColumn(ResultSet.java:946)
com.mysql.jdbc.ResultSet.getString(ResultSet.java:5613)
com.fuyou.servlet.loginservlet.doPost(loginservlet.java:50)
javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
import java.sql.ResultSet;
import java.sql.SQLException;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import com.fuyou.util.DBConnection;
import com.fuyou.util.mvconnection;public class loginservlet extends HttpServlet {
private DBConnection dbc = new DBConnection(); private static final long serialVersionUID = -3265621922663327137L; public loginservlet() { } public void destroy() {
super.destroy(); } public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
} public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String username = request.getParameter("username");
String password = request.getParameter("password");
String conformPswd = "";
String sql = "select * from user where username='" + username + "'"; ResultSet rs = null;
mvconnection mvc = new mvconnection();
if (mvc != null) {
rs = mvc.getResultSet(sql);
} else {
return;
}
if (rs != null) {
try {
if (rs.getString("password") != null) {
conformPswd = rs.getString("PASSWORD");
}
return;
} catch (SQLException e) {
e.printStackTrace();
} finally {
this.dbc.closeResultSet(rs);
}
}
if (password.equals(conformPswd)) { } } public void init() throws ServletException { }}
异常信息:
type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception java.lang.NullPointerException
com.mysql.jdbc.ResultSet.buildIndexMapping(ResultSet.java:596)
com.mysql.jdbc.ResultSet.findColumn(ResultSet.java:946)
com.mysql.jdbc.ResultSet.getString(ResultSet.java:5613)
com.fuyou.servlet.loginservlet.doPost(loginservlet.java:50)
javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
解决方案 »
- 关于注册时的一个问题
- java连接.net的webservice问题
- 如何取出session中存放的变量?
- 页面上如何显示jfreechart生成图形的值
- 一个关于JSP里面自定义标签的问题
- 如何实现网络蜘蛛啊!!! 好难的 !
- 并发10个用户查询,tomcat返回日志如下:跪求解答方法
- pos机怎么对接自己写的java程序
- 一个菜鸟的问题
- 请问 怎么设置IE里面的 密码提示对话框????使得用户打开IE访问URL的时候提示输入密码!!
- 在eclipse中web.xml配置都是说找不到web.xml,不知道是怎么回事急!!谢谢!!
- java.lang.IllegalStateException
这是第50行
mvc.getResultSet(sql);
把这mvconnection类及相关代码贴上来
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;public class mvconnection { private DBConnection dbC = new DBConnection(); public ResultSet getResultSet(String sql) {
ResultSet rs = null;
Statement stmt = null;
Connection con = null;
con = this.dbC.getConnection();
if (con != null) {
try { stmt = con.createStatement();
if (stmt != null) {
rs = stmt.executeQuery(sql);
} else {
return null;
} } catch (SQLException e) {
e.printStackTrace();
}
return rs; } else {
return null;
} }
}
唉。老花眼啦。("password") ,这一行啊,怕是在数据库里不存在吧?如果确实不是数据库,就可能是驱动包本身有问题了,咱们也懒得看他的代码,要不换个别的版本?
rs在创建索引对象影射的时候null了 是不是缺这种之类的
rs.hasNext()
试试吧
把user表的结构发上来
| Field | Type | Null | Key | Default | Extra |
+------------------+------------------+------+-----+---------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment || USERNAME | varchar(20) | NO | | | || PASSWORD | varchar(20) | NO | | | || PASSWORDQUESTION | varchar(45) | YES | | NULL | || PASSWORDANSWER | varchar(45) | YES | | NULL | || RESUMEINFO | varchar(45) | NO | | | || ISENROLL | char(2) | NO | | | || ISAUDIT | char(2) | NO | | | |+------------------+------------------+------+-----+---------+----------------+
if (rs != null) {
应当转换成:
if (rs != null && rs.hasNext() ) {
rs.next();
.....
public boolean valieLogin(String userName,String passWord) {
boolean sucess = false; Connection conn = null;
PreparedStatement pst = null;
ResultSet rs = null;
conn = DBConnection.getSQL();
try {
pst = conn
.prepareStatement("select * from user_login where userId=? and userPass=?");
pst.setString(1,userName);
pst.setString(2, passWord);
rs = pst.executeQuery();
if (rs.next()) { sucess = true;
}
} catch (SQLException e) {
e.printStackTrace(); } finally { try {
if (rs != null) {
rs.close();
rs = null;
}
if (pst != null) {
pst.close();
pst.close();
}
if (conn != null) {
conn.close();
conn = null;
}
} catch (SQLException e) {
e.printStackTrace();
}
} return sucess; }
{}这样就可以避免出现异常。
if (rs != null) {
转换成:
if (rs != null && rs.next()) {
其原因dracularking已经说得很清楚了。