2016-06-22 5 views
0

Ich habe Web gehostet eine Website auf Linux-Server. Auf dem Server erhalte ich wie erwähnt eine Fehlermeldung in der Protokolldatei.Problem in der Handler-JSP-Sitzung

Jetzt ist meine Frage, wie man Sitzung auf Linux-Server behandelt, weil auf allen Seiten es Session == null nur betrachtet, nicht sicher warum.

Für unterhalb der Linie: if (sessionUID.equals(rs1.getString("userid")))

Stacktrace:] with root cause java.lang.NullPointerException 
    at org.apache.jsp.iframehomemiddle_jsp._jspService(iframehomemiddle_jsp.java:544) 
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432) 
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390) 
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169) 
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98) 
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) 
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987) 
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579) 
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:309) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
    at java.lang.Thread.run(Thread.java:745) 

Dies ist, wie ich Sitzung von Servlet JSP schickte:

if (rs1.next()) { 
    HttpSession session = request.getSession(); 
    session.setAttribute("USERID", rs1.getString("userid")); 
    request.getRequestDispatcher("HomePage.jsp").include(request, response); 
} 

Und das ist, wie ich Sitzung in JSP am Umgang:

<% 
    response.setHeader("Cache-Control", "no-cache"); //Forces caches to obtain a new copy of the page from the origin server 
    response.setHeader("Cache-Control", "no-store"); //Directs caches not to store the page under any circumstance 
    response.setDateHeader("Expires", 0); //Causes the proxy cache to see the page as "stale" 
    response.setHeader("Pragma", "no-cache"); //HTTP 1.0 backward compatibility  
    String sessionUID = (String) session.getAttribute("USERID"); 
    if (null == sessionUID) { 
     request.setAttribute("Error", "Session has ended. Please login."); 
     %> <script>window.location = "LoginPage.jsp";</script><% 
    } 
%> 
+0

Sitzung nicht null ist, aber in Ihrem Code gibt es etwas, null – Taha

Antwort

0

Ich schlage vor, dass Sie Ihren Code

ändern
HttpSession session = request.getSession(); 
String h=null; 
if (rs1.next()) { 

    h=rs1.getString("userid"); 

} 
session.setAttribute("USERID", h); 
request.getRequestDispatcher("HomePage.jsp").include(request, response); 

und Ihre scriplets ändern mit:

<% 
    response.setHeader("Cache-Control", "no-cache"); //Forces caches to obtain a new copy of the page from the origin server 
    response.setHeader("Cache-Control", "no-store"); //Directs caches not to store the page under any circumstance 
    response.setDateHeader("Expires", 0); //Causes the proxy cache to see the page as "stale" 
    response.setHeader("Pragma", "no-cache"); //HTTP 1.0 backward compatibility  
    String sessionUID = (String) request.getSession().getAttribute("USERID"); 
    if (null == sessionUID) { 
     request.setAttribute("Error", "Session has ended. Please login."); 
     %> <script>window.location = "LoginPage.jsp";</script><% 
    } 

wenn das Problem weiterhin besteht nach wie vor die Verbindung mit Datenbank überprüfen ...