2016-09-30 1 views
-1
<% 
    if(session == null) { 
     System.out.println("Expire"); 
     response.sendRedirect("/login.jsp"); 
    }else{ 
     System.out.println("Not Expire"); 
    } 
%> 

<% 
    HttpSession sess = request.getSession(false); 
    String email = sess.getAttribute("email").toString(); 
    Connection conn = Database.getConnection(); 
    Statement st = conn.createStatement(); 
    String sql = "select * from login where email = '" + email + "' "; 
    ResultSet rs = st.executeQuery(sql); 
%> 

Ich habe versucht, die Seite login.jsp umzuleiten, wenn die Sitzung abgelaufen ist. Ich habe jedoch einen Fehler in "String email = sesss.getAttribute (" email "). ToString();".Wie umleiten Sie die JSP-Seite nach Ablauf der Sitzung?

Also jemand bitte helfen Sie mir, diesen Fehler zu lösen.

Grundsätzlich möchte ich auf die login.jsp Seite umleiten, wenn die Sitzung abgelaufen ist.

+0

Was ist der Fehler? –

+3

Sie müssen entweder 1) die ganze Menge in die 'if' oder 2)' return' platzieren. Oder: 3) Niemals jemals Scriptlets verwenden - sie sind seit einem Jahrzehnt sehr schlecht praktiziert; niemand sollte sie benutzen. –

+0

@BoristheSpider Ich bin bei dir bei Nr. 3, vor allem die Datenbank-Verbindung macht mich schaudern. – Thomas

Antwort

0

habe ich versucht, diese und seine Arbeit für mich in Ordnung .

Ich habe nur Return-Anweisung und es wird auf "login.jsp" umleiten, wenn die Sitzung abgelaufen ist.

0

Zunächst einmal. Sie mischen JSP- und Java-Code. Sie sollten es trennen. Behalten Sie Java-Code in den Steuerpulten bei.

können Sie verwenden:

if(request.getSession(false) == null) { 
    response.sendRedirect("/login.jsp"); 
} 

„... Wenn erstellen falsch ist und die Anforderung hat keine gültigen Http, diese Methode null zurückgibt.“

0

Zum Beispiel Authentifizierungsfilter

@WebServlet(
    name = "AuthenticationFilter", 
    description = "Authentication Filter", 
    urlPatterns = "/AuthenticationFilter" 

) @WebFilter (erstellen "*. Jsp") public class AuthenticationFilter Filter implementiert {

private ServletContext context; 

@Override 
public void init(FilterConfig filterConfig) throws ServletException { 
    this.context = filterConfig.getServletContext(); 
    this.context.log("AuthenticationFilter initialized"); 
} 

@Override 
public void destroy() { 
    //close any resources here 
} 

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { 

    HttpServletRequest req = (HttpServletRequest) request; 
    HttpServletResponse res = (HttpServletResponse) response; 

    String uri = req.getRequestURI(); 
    this.context.log("Requested Resource::" + uri); 

    HttpSession session = req.getSession(false); 
    Object user_o = req.getSession().getAttribute("username"); 
    this.context.log("Authentication Filter, user_name::" + user_o); 

    if (user_o == null && !(uri.endsWith("index.jsp") || uri.endsWith("LoginUser"))) { 
     this.context.log("None authenticatied request, session:: " + session); 
     res.sendRedirect("index.jsp"); 

    } else { 
     this.context.log("Authenticatied request, session:: " + session); 
     chain.doFilter(request, response); 
    } 

} 
Verwandte Themen