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 /WebContent/register_new_user.jsp at line 5249: finally
50: {
51: //关闭数据库链接
52: stmt.close();
53: conn.close();
54: }
55: //设置session属性
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:515)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:426)
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)
root cause java.lang.NullPointerException
org.apache.jsp.WebContent.register_005fnew_005fuser_jsp._jspService(register_005fnew_005fuser_jsp.java:105)
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:384)
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)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.10 logs.
--------------------------------------------------------------------------------Apache Tomcat/6.0.10
50: {
51: //关闭数据库链接
52: stmt.close();
53: conn.close();
54: }
55: //设置session属性
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:515)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:426)
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)
root cause java.lang.NullPointerException
org.apache.jsp.WebContent.register_005fnew_005fuser_jsp._jspService(register_005fnew_005fuser_jsp.java:105)
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:384)
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)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.10 logs.
--------------------------------------------------------------------------------Apache Tomcat/6.0.10
java.lang.NullPointerException
可能是你的 stmt还没有用,也就是没有初始化,你就给关闭了
<%@page language="java" import="java.sql.*" %>
<%
//获得用户提交表单
String sUsername, sPassword;
sUsername=request.getParameter("username");
sUsername=sUsername.replaceAll("'","''");
sPassword=request.getParameter("password");
sPassword=sPassword.replaceAll("'","''");
//检索该用户输入信息是否正确
String query = "select * from player_info where username='"
+ sUsername + "' and password = '" + sPassword + "'"; Connection conn=null;
Statement stmt=null;
ResultSet rs =null;
try
{
//获取数据库链接
Class.forName("com.mysql.jdbc.Driver").newInstance();
conn = DriverManager.getConnection("jdbc:mysql://localhost/ch02?user=jspdb&password=jspdb");
//创建statement
stmt = conn.createStatement();
//执行查询
rs = stmt.executeQuery(query);
if( rs.next() )
{
//往session中设置相关属性
session.setAttribute("username", rs.getString("username"));
session.setAttribute("realname", rs.getString("realname"));
//重定向到入口页面
response.sendRedirect("entry.jsp");
}
else
{
//如果用户名密码错误
response.sendRedirect("welcom.htm");
}
}catch(SQLException ex)
{
ex.printStackTrace();
response.sendRedirect("welcom.htm");
return;
}
finally
{
//关闭数据库链接
stmt.close();
conn.close();
}
%>
finally
{
if (stmt != null)
stmt.close();
if (conn != null)
conn.close();
}另外你也可以打印一下看看到底stmt是不是为空
看下CONN 是不是空,依次下来 stmt是不是空
先不要RS的操作看下
如: if (stmt != null)
{
stmt.close();
stmt = null;
}
if (con != null)
{
conn.close();
conn = null;
}
这种问题很常见的,
debug一下吧
finally
{
//关闭数据库链接
if(stmt!=null)
stmt.close();
if(conn!=null)
conn.close();
}
...
finally {
if (stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
//Log
} finally {
stmt = null;
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
//Log
} finally {
conn = null;
}
}
}
...
//执行查询
rs = stmt.executeQuery(query);
改一下,试试
stmt = conn.createStatement(query);
//执行查询
rs = stmt.executeQuery();
又报错如下:
org.apache.jasper.JasperException: An exception occurred processing JSP page /WebContent/register_new_user.jsp at line 6360: session.setAttribute("realname", sRealname);
61:
62: //注册成功即意味着登录成功,迁移到游戏选择画面
63: response.sendRedirect("entry.jsp");
64: %>
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:515)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:420)
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)
root cause java.lang.IllegalStateException
org.apache.catalina.connector.ResponseFacade.sendRedirect(ResponseFacade.java:435)
org.apache.jsp.WebContent.register_005fnew_005fuser_jsp._jspService(register_005fnew_005fuser_jsp.java:116)
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:384)
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)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.10 logs.