0

I have web hosted a site on Linux server. On server I am getting an error message in the log file as mentioned.

Now my question is how to handle session on Linux server, because on all the pages it's considering Session == null only, not sure why.

For below line: 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)

This is how I am sending session from Servlet to JSP:

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

And this is how I am handling session in JSP:

<%
    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><%
    }
%>
Taha
  • 1,072
  • 2
  • 16
  • 29

1 Answers1

0

I suggest that you change your code

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);

and change your scriplets with :

<%
    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><%
    }

if the problem still persist Verify your connection with database ...

Taha
  • 1,072
  • 2
  • 16
  • 29