程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> java 在Jetty9中使用HttpSessionListener和Filter

java 在Jetty9中使用HttpSessionListener和Filter

編輯:關於JAVA

java 在Jetty9中使用HttpSessionListener和Filter

HttpSessionListener

當Session創建或銷毀的時候被調用

示例代碼:

class MyHttpSessionListener implements HttpSessionListener { 
  @Override 
  public void sessionCreated(HttpSessionEvent httpSessionEvent) { 
    System.out.println("sessionCreated"); 
  } 
 
  @Override 
  public void sessionDestroyed(HttpSessionEvent httpSessionEvent) { 
    System.out.println("sessionDestroyed"); 
  } 
} 

注冊方法:

ServletContextHandler.getSessionHandler().addEventListener(new MyHttpSessionListener()); 

注意:  若整個請求中都沒有用到Session, 則不會生成它, 也不會調用Listener

Filter

當客戶端請求數據時被調用

示例代碼:

class MyFilter implements Filter { 
 
  public MyFilter() { 
 
  } 
 
  @Override 
  public void init(FilterConfig filterConfig) throws ServletException { 
 
  } 
 
  @Override 
  public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { 
    if (servletRequest instanceof HttpServletRequest) { 
      HttpServletRequest httpRequest = (HttpServletRequest) servletRequest; 
 
      System.out.println(httpRequest.getServletPath()); 
    } 
    filterChain.doFilter(servletRequest, servletResponse); 
  } 
 
  @Override 
  public void destroy() { 
 
  } 
} 

注冊方法:

ServletContextHandler.addFilter(new FilterHolder(new MyFilter()), "/*", EnumSet.allOf(DispatcherType.class)); 

注意: 若請求的路徑錯誤, 則不會觸發Filter

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved