Jsp页面登录时连接数据库出错
我做了一个登录验证的Jsp页面,javabean已经写好了,但是登录验证时出现错误,其错误信息如下:
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: An exception occurred processing JSP page /default.jsp at line 15
12: if(session.getAttribute("user") ==null){
13: String loginName = request.getParameter("loginName");
14: String passWord = request.getParameter("passWord");
15: User user = UserDAO.checkUser(loginName, passWord);
16: if(user != null){
17: session.setAttribute("user", user);
18: }else{
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:524)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:435)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
com.test.web.CheckUserfilter.doFilter(CheckUserfilter.java:40)
root cause
java.lang.NullPointerException
com.test.dao.UserDAO.checkUser(UserDAO.java:27)
org.apache.jsp.default_jsp._jspService(default_jsp.java:73)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
com.test.web.CheckUserfilter.doFilter(CheckUserfilter.java:40)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.14 logs.
其中用到的javabean代码如下:
UserDAO:
public class UserDAO {
public static User checkUser(String loginName, String passWord){//登录验证
Connection con = null;
PreparedStatement prest = null;
ResultSet re = null;
User user = null;
try {
con= DataBaseManager.getConnection();
String strQuery = "select loginName, passWord from customer where loginName=? and passWord=?";
prest = con.prepareStatement(strQuery);
prest.setString(1, loginName);
prest.setString(2, passWord);
re = prest.executeQuery();
if(re.next()){
user = new User();
user.setLoginName(re.getString(1));
user.setPassWord(re.getString(2));
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
DataBaseManager.close(re);
DataBaseManager.close(prest);
DataBaseManager.close(con);
}
return user;
}
.......//因为错误中只出现这个方法,所以后面省略了
CheckUserfilter:
public class CheckUserfilter implements Filter {
private FilterConfig filterConfig = null;
public void destroy() {
this.filterConfig = null;
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain)throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest)request;
HttpServletResponse res = (HttpServletResponse)response;
HttpSession session = req.getSession();
if(session.getAttribute("user")==null){
String uri = req.getRequestURI();
if(!(uri.contains("default.jsp")&& "login".equals(req.getParameter("action")))&&!uri.contains("login.jsp")){
RequestDispatcher dispatcher = req.getRequestDispatcher("/login.jsp");
dispatcher.forward(req, res);
}
}
chain.doFilter(request, response);
}
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
}
}
希望好心人给指点一下,我初学者,谢谢!