HTTP Status 500 - --------------------------------------------------------------------------------type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:460)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:373)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
root cause java.lang.NullPointerException
org.apache.jsp.login_jsp._jspService(login_jsp.java:72)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
note The full stack trace of the root cause is available in the Apache Tomcat/5.5.26 logs.
<%@ page contentType="text/html;charset=gb2312" language="java"%>
<%@ page import="java.io.*,java.sql.*"%>
<jsp:useBean id="rst" scope="page" class="com.mingri.dbconn.DBResult"/>
<jsp:useBean id="calendar" scope="page" class="com.mingri.showtime.ShowTime"/>
<%
request.setCharacterEncoding("gb2312");//对请求进行统一编码,能正常接受到中文
String username=request.getParameter("username"); //接收表单中的username属性
String password=request.getParameter("password");//接收表单中的password属性
String str="select * from tb_user where "+
"username='"+username+"' and password='"+password+"'";
ResultSet rs=rst.getResult(str);//执行SQL语句获得结果集对象
session.setAttribute("isLog",new String("0"));//判断用户是否登陆,当isLog的属性为0时,说明用户并没有登陆
if(!rs.next())//结果集没有找到所要查找的行
{
out.println("<script language='javascript'>alert('用户名或密码错误');"+
"parent.location.href='login.html';</script>");
}
else
{
session.setAttribute("username",rs.getString("username"));//保存登录信息到session对象中
session.setAttribute("password",rs.getString("password"));
session.setAttribute("isLog",new String("1"));//将isLog属性设置为1
//获得用户上次登陆系统的时间
session.setAttribute("userLastLogTime",rs.getString("userLastLogTime"));
String strsql=calendar.getDate();
int id=rs.getInt("ID");
//将该用户本次登陆系统的时间在用户信息表中更新
String strUpdate="update tb_user set userLastLogTime='"+strsql+"' where ID="+id+"";
rst.getResult(strUpdate);//执行SQL语句
response.sendRedirect("chat.jsp");//登陆成功后转到系统主页面
}
%>
2、calendar把这2个输出一下,可能有null
System.out.println("rst = "+rst);
System.out.println("calendar = "+calendar);
刚接触jsp不太懂, 这两段加到那里面?
<%@ page import="java.io.*,java.sql.*"%>
<jsp:useBean id="rst" scope="page" class="com.mingri.dbconn.DBResult"/>
<jsp:useBean id="calendar" scope="page" class="com.mingri.showtime.ShowTime"/>
<%
request.setCharacterEncoding("gb2312");//对请求进行统一编码,能正常接受到中文
String username=request.getParameter("username"); //接收表单中的username属性
String password=request.getParameter("password");//接收表单中的password属性
String str="select * from tb_user where "+
"username='"+username+"' and password='"+password+"'"; System.out.println("rst = "+rst);
System.out.println("calendar = "+calendar); ResultSet rs=rst.getResult(str);//执行SQL语句获得结果集对象 System.out.println("rs= "+rs); session.setAttribute("isLog",new String("0"));//判断用户是否登陆,当isLog的属性为0时,说明用户并没有登陆
if(!rs.next())//结果集没有找到所要查找的行
{
out.println("<script language='javascript'>alert('用户名或密码错误');"+
"parent.location.href='login.html';</script>");
}
else
{
session.setAttribute("username",rs.getString("username"));//保存登录信息到session对象中
session.setAttribute("password",rs.getString("password"));
session.setAttribute("isLog",new String("1"));//将isLog属性设置为1
//获得用户上次登陆系统的时间
session.setAttribute("userLastLogTime",rs.getString("userLastLogTime"));
String strsql=calendar.getDate();
int id=rs.getInt("ID");
//将该用户本次登陆系统的时间在用户信息表中更新
String strUpdate="update tb_user set userLastLogTime='"+strsql+"' where ID="+id+"";
rst.getResult(strUpdate);//执行SQL语句
response.sendRedirect("chat.jsp");//登陆成功后转到系统主页面
}
%>
HTTP Status 500 - --------------------------------------------------------------------------------type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: Exception in JSP: /login.jsp:2017: System.out.println("rs= "+rs);
18:
19: session.setAttribute("isLog",new String("0"));//判断用户是否登陆,当isLog的属性为0时,说明用户并没有登陆
20: if(!rs.next())//结果集没有找到所要查找的行
21: {
22: out.println("<script language='javascript'>alert('用户名或密码错误');"+
23: "parent.location.href='login.html';</script>");
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:451)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:373)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
root cause java.lang.NullPointerException
org.apache.jsp.login_jsp._jspService(login_jsp.java:79)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
note The full stack trace of the root cause is available in the Apache Tomcat/5.5.26 logs.
--------------------------------------------------------------------------------Apache Tomcat/5.5.26
if(!rs.next())//结果集没有找到所要查找的行
这句,你不觉得,如果rs是null的情况有没? 如果有的话,这是一个NullPointException.
2.可以像8楼这样去打印..在你不确定对象是不是null的情况下,最好是打印or判断不为null在去调用其方法.
如果 rst 或者 calendar 可能是null的话,你这样写就直接是空指针了
应该改成
out.println(rst);
out.println(rst);
就可以了
估计是connection,statement出毛病了
package com.mingri.dbconn;import java.sql.*;
import com.mingri.dbconn.DBConn;public class DBResult
{
private Connection con;
public DBResult(){
this.con=DBConn.getConnection();
}
/**
* 用于获得执行SQL语句的ResultSet对象
*/
public ResultSet getResult(String sql){
try{
Statement stmt=con.createStatement();
ResultSet rs=stmt.executeQuery(sql);
return rs;
}
catch(Exception e){}
return null;
}
/**
* 用于执行SQL语句没有返回值
*/
public void doExecute(String sql){
try{
Statement stmt=con.createStatement();
stmt.executeQuery(sql);
}catch(Exception e){}
}
/**
* 用于获得执行SQL语句的PreparedStatement(预处理)对象
*/
public PreparedStatement getPreparedStatement(String sql){
try{
PreparedStatement pstmt=con.prepareStatement(sql);
return pstmt;
}
catch(Exception e){}
return null;
}
/**
* 关闭连接
*/
public void closeCon(){
try{
this.con.close();
}catch(Exception e){
e.printStackTrace();
}
}
}package com.mingri.dbconn;import java.sql.*;
import com.mingri.dbconn.DBConn;public class DBResult
{
private Connection con;
public DBResult(){
this.con=DBConn.getConnection();
}
/**
* 用于获得执行SQL语句的ResultSet对象
*/
public ResultSet getResult(String sql){
try{
Statement stmt=con.createStatement();
ResultSet rs=stmt.executeQuery(sql);
return rs;
}
catch(Exception e){}
return null;
}
/**
* 用于执行SQL语句没有返回值
*/
public void doExecute(String sql){
try{
Statement stmt=con.createStatement();
stmt.executeQuery(sql);
}catch(Exception e){}
}
/**
* 用于获得执行SQL语句的PreparedStatement(预处理)对象
*/
public PreparedStatement getPreparedStatement(String sql){
try{
PreparedStatement pstmt=con.prepareStatement(sql);
return pstmt;
}
catch(Exception e){}
return null;
}
/**
* 关闭连接
*/
public void closeCon(){
try{
this.con.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
try{
Statement stmt=con.createStatement();
ResultSet rs=stmt.executeQuery(sql);
return rs;
}
catch(Exception e){}
return null;
}
。把e的错误信息都打出来
等别人继续打你吧,下班
org.apache.jsp.login_jsp._jspService(login_jsp.java:79)打开login_jsp.java文件,看79行就可以了
WORK在TOMCAT根目录下 一直往下找 会找到JSP对应编译的JAVA类:login_jsp.java
把他贴出来不就完事了么
login_jsp.javapackage org.apache.jsp;import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.jsp.*;
import java.io.*;
import java.sql.*;public final class login_jsp extends org.apache.jasper.runtime.HttpJspBase
implements org.apache.jasper.runtime.JspSourceDependent { private static java.util.List _jspx_dependants; public Object getDependants() {
return _jspx_dependants;
} public void _jspService(HttpServletRequest request, HttpServletResponse response)
throws java.io.IOException, ServletException { JspFactory _jspxFactory = null;
PageContext pageContext = null;
HttpSession session = null;
ServletContext application = null;
ServletConfig config = null;
JspWriter out = null;
Object page = this;
JspWriter _jspx_out = null;
PageContext _jspx_page_context = null;
try {
_jspxFactory = JspFactory.getDefaultFactory();
response.setContentType("text/html;charset=gb2312");
pageContext = _jspxFactory.getPageContext(this, request, response,
null, true, 8192, true);
_jspx_page_context = pageContext;
application = pageContext.getServletContext();
config = pageContext.getServletConfig();
session = pageContext.getSession();
out = pageContext.getOut();
_jspx_out = out; out.write('\n');
out.write('\n');
com.mingri.dbconn.DBResult rst = null;
synchronized (_jspx_page_context) {
rst = (com.mingri.dbconn.DBResult) _jspx_page_context.getAttribute("rst", PageContext.PAGE_SCOPE);
if (rst == null){
rst = new com.mingri.dbconn.DBResult();
_jspx_page_context.setAttribute("rst", rst, PageContext.PAGE_SCOPE);
}
}
out.write('\n');
com.mingri.showtime.ShowTime calendar = null;
synchronized (_jspx_page_context) {
calendar = (com.mingri.showtime.ShowTime) _jspx_page_context.getAttribute("calendar", PageContext.PAGE_SCOPE);
if (calendar == null){
calendar = new com.mingri.showtime.ShowTime();
_jspx_page_context.setAttribute("calendar", calendar, PageContext.PAGE_SCOPE);
}
}
out.write('\n'); request.setCharacterEncoding("gb2312");//对请求进行统一编码,能正常接受到中文
String username=request.getParameter("username"); //接收表单中的username属性
String password=request.getParameter("password");//接收表单中的password属性
String str="select * from tb_user where "+
"username='"+username+"' and password='"+password+"'";
ResultSet rs=rst.getResult(str);//执行SQL语句获得结果集对象
session.setAttribute("isLog",new String("0"));//判断用户是否登陆,当isLog的属性为0时,说明用户并没有登陆
if(!rs.next())//结果集没有找到所要查找的行
{
out.println("<script language='javascript'>alert('用户名或密码错误');"+
"parent.location.href='login.html';</script>");
}
else
{
session.setAttribute("username",rs.getString("username"));//保存登录信息到session对象中
session.setAttribute("password",rs.getString("password"));
session.setAttribute("isLog",new String("1"));//将isLog属性设置为1
//获得用户上次登陆系统的时间
session.setAttribute("userLastLogTime",rs.getString("userLastLogTime"));
String strsql=calendar.getDate();
int id=rs.getInt("ID");
//将该用户本次登陆系统的时间在用户信息表中更新
String strUpdate="update tb_user set userLastLogTime='"+strsql+"' where ID="+id+"";
rst.getResult(strUpdate);//执行SQL语句
response.sendRedirect("chat.jsp");//登陆成功后转到系统主页面
} out.write("\n");
out.write("\n");
out.write("\n");
out.write("\n");
out.write("\n");
out.write("\n");
out.write("\n");
out.write("\n");
out.write("\n");
out.write("\n");
out.write("\n");
out.write("\n");
out.write("\n");
out.write("\n");
out.write("\n");
out.write("\n");
out.write("\n");
out.write("\n");
out.write("\n");
} catch (Throwable t) {
if (!(t instanceof SkipPageException)){
out = _jspx_out;
if (out != null && out.getBufferSize() != 0)
out.clearBuffer();
if (_jspx_page_context != null) _jspx_page_context.handlePageException(t);
}
} finally {
if (_jspxFactory != null) _jspxFactory.releasePageContext(_jspx_page_context);
}
}
}