HTTP Status 500 - 求解

guangxircw 2010-05-14 03:51:17

HTTP Status 500 -

--------------------------------------------------------------------------------

type Exception report

message

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.
...全文
206 28 打赏 收藏 转发到动态 举报
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
tfish2014 2010-05-15
  • 打赏
  • 举报
回复
把这个JSP的WORK贴出来就一下找到了 瞎猜啥啊
WORK在TOMCAT根目录下 一直往下找 会找到JSP对应编译的JAVA类:login_jsp.java
把他贴出来不就完事了么
guangxircw 2010-05-15
  • 打赏
  • 举报
回复
[Quote=引用 27 楼 tangyu477 的回复:]
把这个JSP的WORK贴出来就一下找到了 瞎猜啥啊
WORK在TOMCAT根目录下 一直往下找 会找到JSP对应编译的JAVA类:login_jsp.java
把他贴出来不就完事了么
[/Quote]

login_jsp.java

package 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);
}
}
}
空心兜兜 2010-05-14
  • 打赏
  • 举报
回复
空指针很常见
找起来也不难
hepeng_8 2010-05-14
  • 打赏
  • 举报
回复
空指针 看看是不是那块没初始化
jbz001 2010-05-14
  • 打赏
  • 举报
回复
已经看不懂这个了
tanxd39 2010-05-14
  • 打赏
  • 举报
回复
java.lang.NullPointerException
org.apache.jsp.login_jsp._jspService(login_jsp.java:79)

打开login_jsp.java文件,看79行就可以了
Mars_Ma_OK 2010-05-14
  • 打赏
  • 举报
回复
在公司里面,就我们公司来说,catch里面不能什么东西都不写的..如果有异常都没有处理,这是错误的..无声无息的就给默认了..我就给老大讲过, 知道可以是返回null,至少也要给点log呀..下班了..走人了
soli11722984 2010-05-14
  • 打赏
  • 举报
回复
晕,不是那段,是加上e.printStackTrace(),现在那段错误信息你没输出
guangxircw 2010-05-14
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 hongzhonghong 的回复:]
把rs、rst、calendar等对象都输出来看看
[/Quote]

在10楼
soli11722984 2010-05-14
  • 打赏
  • 举报
回复
是答。。。。。。打错字
soli11722984 2010-05-14
  • 打赏
  • 举报
回复
public ResultSet getResult(String sql){
try{
Statement stmt=con.createStatement();
ResultSet rs=stmt.executeQuery(sql);
return rs;
}
catch(Exception e){}
return null;
}
。。。。。。。把e的错误信息都打出来
等别人继续打你吧,下班
IAMJourney 2010-05-14
  • 打赏
  • 举报
回复
把rs、rst、calendar等对象都输出来看看
guangxircw 2010-05-14
  • 打赏
  • 举报
回复
帮忙看看 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();
}
}
}



soli11722984 2010-05-14
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 mars_ma_ok 的回复:]
1.假设你的connection,statement都没有问题..

Java code
if(!rs.next())//结果集没有找到所要查找的行

这句,你不觉得,如果rs是null的情况有没? 如果有的话,这是一个NullPointException.
2.可以像8楼这样去打印..在你不确定对象是不是null的情况下,最好是打印or判断不为null在去调用其方法.
[/Quote]

估计是connection,statement出毛病了
guangxircw 2010-05-14
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 hly_886 的回复:]
引用 6 楼 soli11722984 的回复:
System.out.println("rst = "+rst);
System.out.println("calendar = "+calendar);


如果 rst 或者 calendar 可能是null的话,你这样写就直接是空指针了
应该改成
out.println(rst);
out.println(rst);
就可以……
[/Quote]

还是提示一样的错误
hly_886 2010-05-14
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 soli11722984 的回复:]
System.out.println("rst = "+rst);
System.out.println("calendar = "+calendar);
[/Quote]

如果 rst 或者 calendar 可能是null的话,你这样写就直接是空指针了
应该改成
out.println(rst);
out.println(rst);
就可以了
nickDeLove 2010-05-14
  • 打赏
  • 举报
回复
可能有没有查出的结果集 rs可能为空
Mars_Ma_OK 2010-05-14
  • 打赏
  • 举报
回复
1.假设你的connection,statement都没有问题..
if(!rs.next())//结果集没有找到所要查找的行
这句,你不觉得,如果rs是null的情况有没? 如果有的话,这是一个NullPointException.
2.可以像8楼这样去打印..在你不确定对象是不是null的情况下,最好是打印or判断不为null在去调用其方法.
guangxircw 2010-05-14
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 soli11722984 的回复:]
System.out.println("rst = "+rst);
System.out.println("calendar = "+calendar);
[/Quote]



HTTP Status 500 -

--------------------------------------------------------------------------------

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: Exception in JSP: /login.jsp:20

17: 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
shine333 2010-05-14
  • 打赏
  • 举报
回复
先会走,然后再跑
加载更多回复(8)

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧