<%
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页面。 但我在&#34; String email = sesss.getAttribute(&#34; email&#34;)。toString();&#34;。
中出现了错误。所以任何人都可以帮我解决这个错误。
基本上我想在会话过期时重定向到login.jsp页面。
答案 0 :(得分:0)
首先。您正在混合使用JSP和Java代码。你应该分开它。 将Java代码保存在控制器中。
您可以使用:
if(request.getSession(false) == null) {
response.sendRedirect("/login.jsp");
}
“...如果create为false且请求没有有效的HttpSession,则此方法返回null。”
答案 1 :(得分:0)
例如,创建身份验证过滤器
@WebServlet(
name = "AuthenticationFilter",
description = "Authentication Filter",
urlPatterns = "/AuthenticationFilter"
) @WebFilter( “*。JSP”) 公共类AuthenticationFilter实现Filter {
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);
}
}
答案 2 :(得分:0)
我试过这个,它对我来说很好。
this->
我只是把return语句,它将重定向到&#34; login.jsp&#34;当会话到期时。