2016-09-30 113 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();”中出现了geeting错误。如何在会话过期后重定向jsp页面?

所以任何人都请帮我解决这个错误。

基本上我想在会话过期时重定向到login.jsp页面。

+0

什么是错误? –

+3

你需要1)把整个地段放在'if'或2)'return'中。或者3)永远不会再使用脚本 - 他们十年来一直是非常糟糕的练习;没有人应该使用它们。 –

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

“......如果制作的是虚假的,该请求没有有效的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); 
    } 

} 
相关问题