[英]validate session in java ee project
我需要制作一个控制器,该控制器首先验证会话,如果无效,它将发送我回到登录页面。 如果有效,我需要停留在当前页面上; 我总是得到太多重定向。 有没有办法从void方法重定向? 这是来自控制器的方法:
public String onLoad(HttpSession session){
AngajatiBean ab=(AngajatiBean) session.getAttribute("myAng");
session.setAttribute("forms",pas.getForms(ab));
if(ab!=null)
return "redirect:hello.htm";
else
return "redirect:here.htm";
}
有没有办法从void方法重定向?
实际上,您可以实现Filter
的doFilter
方法,以便在会话过期时将用户重定向到登录页面。
public class RedirectFilter implements Filter{
public void init(FilterConfig filterConfig) throws ServletException {
}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
HttpServletRequest req=(HttpServletRequest)request;
req.getSession().setAttribute("forms",pas.getForms(ab));
if(req.getSession().getAttribute("myAng")==null){
req.getRequestDispatcher("/here.htm").forward(request, response);
}else{
chain.doFilter(request, response);
}
}
public void destroy() {}
}
然后将其添加到web.xml
以配置过滤器
<filter>
<filter-name>FilterExample</filter-name>
<filter-class>com.stackoverflow.answer.RedirectFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>FilterExample</filter-name>
<url-pattern>/here.htm</url-pattern>
</filter-mapping>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.