2016-06-29 1 views
0

Ich versuche, Wert aus der Sitzung, aber schlägt fehl. Ein Wert in Session wurde erfolgreich in der JSP-Seite festgelegt, kann aber nicht in der Java-Klasse abgerufen werden. zu lösen Bitte helfen:Setzen Sie den Sitzungswert in JSP und Abrufen in Java-Klasse mit response.sendRedirect

Unten finden Sie Codeausschnitt:

Interceptor Eintrag in Servlet-context.xml Datei:

<interceptor> 
    <mapping path="/**" /> 
    <exclude-mapping path="/tabservice/pdfCreation/**"/> 
    <beans:bean class="com.mastek.ems.filter.ExecuteTimeInterceptor"></beans:bean> 
</interceptor> 

der Sitzungswert in jsp Seite Set: index.jsp

Versuchen Sie, den Wert in Interceptor zu erhalten: ExecuteTimeInterceptor:

System.out.println("Session Object:"+request.getSession(false)); // Prints null 
    System.out.println("Session ObjectID1:"+request.getSession(false).getId()); // Throws NullPointerException 

    long startTime = System.currentTimeMillis(); 
    if(request.getSession(false) != null){ 
     System.out.println("inside if : Ssn Data:"+request.getSession(false).getAttribute("user")); 
     if(request.getSession(false).getAttribute("user") != null){ 
     request.setAttribute("startTime", startTime); 
      System.out.println("Start Time::with Valid Session:1:"+(new SimpleDateFormat("dd/MM/YYYY:hh:mm:ss:SSSS")).format(new Date(System.currentTimeMillis()))); 
      return true; 
     } 
    } else{ 
     System.out.println("Start Time::with Invalid Session::"+(new SimpleDateFormat("dd/MM/YYYY:hh:mm:ss:SSSS")).format(new Date(System.currentTimeMillis()))); 
    } 
    request.setAttribute("startTime", startTime); 
    Utility.setResponseError(response, "sessiontimedout"); 
    return false; 
+1

schwer zu erraten, aber ich nehme an, dass eine Seite die Abfangjäger ausgelöst, bevor die Sitzung erstellt wurde. Sie sollten 'request.getRequestURL()' im Interceptor anzeigen, wenn die Sitzung null ist. –

Antwort

0

Es besteht die Möglichkeit, dass die Sitzung verloren geht, wenn Sie die Weiterleitung verwenden. Wenn Sie die Weiterleitungs-URL verwenden, stellen Sie 2 Dinge sicher.

Die Weiterleitungs-URL sollte mit der URL identisch sein, die zum Laden der aktuellen Seite verwendet wird.

Verwenden Sie auch die Umleitung Code wie folgt -

response.sendRedirect(response.encodeRedirectURL(Your URL)); 

Überprüfen Sie die Javadocs für weitere Informationen. https://tomcat.apache.org/tomcat-5.5-doc/servletapi/javax/servlet/http/HttpServletResponse.html#encodeRedirectURL(java.lang.String)

Sehen Sie ein ähnliches Problem hier - Session is lost and created as new in every servlet request

Verwandte Themen