2016-09-30 16 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); 
%> 

セッションが終了したときにlogin.jspページをリダイレクトしようとしました。 しかし、私は "String email = sesss.getAttribute(" email ")。toString();のエラーを起こしています。"セッションの期限切れ後にjspページをリダイレクトする方法は?

だから誰も私はこのエラーを解決するのを助けてください。

セッションが期限切れになると、基本的にlogin.jspページにリダイレクトします。

+0

エラーは何ですか? –

+3

あなたは、1)ロット全体を「if」または2) 'return'に置く必要があります。または、3)スクリプトレットを再び使用することは決してありません。10年前から非常に悪い習慣でした。誰もそれらを使用すべきではありません。 –

+0

@BoristheSpider私はあなたと一緒にいません。 3、特にデータベース接続の問題は私を震わせさせる。 – Thomas

答えて

0

を実装して、私は私のために、この、その作業罰金を試してみました。

<% 
    if(session.getAttribute("email") == null) { 
     response.sendRedirect("login.jsp"); 
     return ; 
    } 
%> 

return文を入れて、セッションが終了すると "login.jsp"にリダイレクトされます。

0

まずは、 JSPとJavaコードを混在させています。それを分けてください。 コントローラにJavaコードを保存します。

あなたは使用することができます。

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

"falseで、要求が有効なのHttpSessionを持っていない場合は作成する...、このメソッドはnullを返します。"例えば

0

認証フィルタ

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

を作成する) @WebFilter( "*。JSP") パブリッククラスAuthenticationFilterはフィルター{

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

} 
関連する問題