//源码:
<%
String SessionVB,SessionContent;
SessionVB=session.getAttribute("LoginStatus");
SessionContent="ok";if(!SessionVB.equals(SessionContent))
{
    out.print("<script>window.alert('超时或未登录');window.location.href='index.jsp'</script>");
}
%>//出错信息:
type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: Unable to compile class for JSPAn error occurred at line: 0 in the jsp file: /www.kingvjsp.com/kingvsys/../include/session/sessionLoginStatus.jspGenerated servlet error:
    [javac] Compiling 1 source fileC:\Program Files\Apache Group\Tomcat 4.1\work\Standalone\localhost\kingv\www.kingvjsp.com\kingvsys\Main_System_jsp.java:49: incompatible types
found   : java.lang.Object
required: java.lang.String
SessionVB=session.getAttribute("LoginStatus");
                              ^
1 error

解决方案 »

  1.   

    getAttribute()方法返回的是一个字符串,不是一个session对象
      

  2.   

    SessionVB=(String)session.getAttribute("LoginStatus");
      

  3.   

    SessionVB=(String)session.getAttribute("LoginStatus");session.getAttribute方法返回的是Object对象 所以要强制转换
      

  4.   

    //我改为这样了:,但还是出错
    <%
    String SessionVB,SessionContent;
    SessionVB=(String)session.getAttribute("LoginStatus");
    SessionContent="ok";if(!SessionVB.equals(SessionContent))
    {
        out.print("<script>window.alert('超时或未登录');window.location.href='index.jsp'</script>");
    }
    %>
    //出错信息
    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
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:207)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:240)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:187)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:809)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:200)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:146)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:209)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:144)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
    at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2358)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:133)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
    at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:118)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:116)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:127)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
    at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:152)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
    at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
    at java.lang.Thread.run(Thread.java:536)
    root cause java.lang.NullPointerException
    at org.apache.jsp.Main_System_jsp._jspService(Main_System_jsp.java:52)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:92)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:809)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:162)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:240)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:187)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:809)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:200)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:146)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:209)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:144)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
    at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2358)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:133)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
    at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:118)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:116)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:127)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
    at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:152)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
    at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
    at java.lang.Thread.run(Thread.java:536)--------------------------------------------------------------------------------Apache Tomcat/4.1.31
      

  5.   

    继续改:if判断条件不足,SessionVB可能为空
    <%
    String SessionVB,SessionContent;
    SessionVB=(String)session.getAttribute("LoginStatus");
    SessionContent="ok";if(SessionVB!=null && !SessionVB.equals(SessionContent))
    {
        out.print("<script>window.alert('超时或未登录');window.location.href='index.jsp'</script>");
    }
    %>
      

  6.   

    条件写错了,应该是
    if(SessionVB==null || !SessionVB.equals(SessionContent))
    {
        out.print("<script>window.alert('超时或未登录');window.location.href='index.jsp'</script>");
    }
      

  7.   

    我对session.getParameter("LoginStatus")进行了输入,发现结果是null,为何?
    对其进行赋值的语句如下:<%@ page contentType="text/html;charset=gb2312"%>
    <%@ page import="java.sql.*"%>
    <%
    String checkt,checkh;
    checkt=request.getParameter("my_check_t");
    checkh=request.getParameter("my_check_h");
    if(!checkt.equals(checkh))
    {
        out.print("<script>window.alert('验证码不正确');window.location.href='index.jsp'</script>");
    }%>
    <body>
    <%//链接数据库
    String user="sa";
    String password="";
    Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
    String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=kingvsql";
    Connection conn= DriverManager.getConnection(url,user,password);
    String User,Pwd;
    User=request.getParameter("usr_id");
    Pwd=request.getParameter("usr_pwd");
    Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
    String sql="select * from Kingv_Login where Kingv_Login_Username='"+User+"' and Kingv_Login_Password='"+Pwd+"'";
    ResultSet rs=stmt.executeQuery(sql);
    if (rs.next())
       {
          session.setAttribute("Login_Status","ok");
          response.sendRedirect("Main_System.jsp");
        }
    else
    {      response.sendRedirect("index.jsp");
    }
    rs.close();
    stmt.close();
    conn.close();
    %>
      

  8.   

    在你的代码里打印调试语句,看看程序有没有进if(rs.next())
      

  9.   

    晕列,System.out.println("程序执行到此处");
    在觉得可能出错的地方都打印一些东西
    看看那些代码执行了,那些代码没有被执行
    从而找出错误所在
      

  10.   

    if (rs.next())
       {
          session.setAttribute("Login_Status","ok");
          response.sendRedirect("Main_System.jsp");
        }
    else
    {
          session.setAttribute("Login_Status","ng");
          response.sendRedirect("index.jsp");
    }这个试试
      

  11.   

    我什么都不知道,只知道在
    out.print("<script>window.alert('验证码不正确');window.location.href='index.jsp'</script>");
    后面最好加上return;
      

  12.   

    session.getAttribute("LoginStatus")  ?