JavaEE(Session与Filter)

2021/11/29 1:06:32

本文主要是介绍JavaEE(Session与Filter),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Session (会话)

  • 访问这个用户的全部菜单都可以访问到 跨越了多个请求

  • request.setCharacterEncoding("utf-8");  // 数据库中接收到中文 这里处理乱码
// 1.创建会话
HttpSession session = request.getSession();
//2.将用户信息放到会话中
session.setAttribute("username", inputUsername);
  • 会话的保存机制

Filter(过滤器)

  • 上一个环节完成后,要交互到下一个环节。

 

//配置路径
@WebFilter("/*")
public class SecurityFilter implements Filter{
 @Override
    public void doFilter(ServletRequest servletRequest ,ServletRespons servletRepone,FilterChain filterChain){
    HttpServletRequest request = (HttpServletRequest)ServletRequest;
    HttpServletResponse response = (HttpServletResponse)ServletResponse
    if(isLoginRequest(request) || LoginAlready(request) || isHomeRequest(request)){
    //放行
    filterChain.doFilter(ServletRequest,ServletResponse)
    }else{
    //重定向登录页
    response.sendRedirect(request.getContextPath())  //request.getContextPath() 拿到登录页
    }
  }
  
  //判断当前的请求是否是登录请求,登录请求的Servlet地址:/login,判断当前的请求uri是否是/login,如果是login就放行。
  private boolean isLoginRequest(HttpServletRequest reqeust){
        System.out.println(reqeust.getContextPath());
        String uri = request.getRuquestURI();  //uri虚拟地址
        if(uri.equals(request.getContextPath) + "/login"){
        return turn;
        }
        return false;
  } 
  //判读用户是否登录
  private boolean LoginAlready(HttpServletRequest reqeust){
  //得到session 因为登录成功后 我们在session里放了一个值
  HttpSession session = request.getSession();
  Object username = session.getAttribute("username");
  }
  if(username != null{
    return ture;
  }
  return flase;
}
  // 判断当前请求是否是请求的项目首页,如果是项目首页,就放行
  private boolean isHomeRequest(HttpServletRequest request){
   String contextPath = request.getContextPath();
   String uri = request.getRequestURI();
   
   contextPath = contextPath.replaceAll)("/","");
   uri = uri.replaceAll("/","");
   if(contextPath.equals(uri)){
   return true;
   }
   return flase;
  }

 



这篇关于JavaEE(Session与Filter)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程