AipoでServletのFilterを追加する

otaguro 30views 更新:2015年12月4日

https://github.com/aipocom/aipo/blob/master/war/src/main/webapp/WEB-INF/web.xml に設定ファイルがありますので、
web.xmlに

<filter>
      <filter-name>{フィルタ名}</filter-name>
      <filter-class>{フィルタのプログラムへのパス}</filter-class>
</filter>

<filter-mapping>
      <filter-name>{フィルタ名}</filter-name>
      <url-pattern>/{フィルタを適用するフォルダ名}/*</url-pattern>
      <url-pattern>/{フィルタを適用するフォルダ名}/*</url-pattern>
      <url-pattern>/{フィルタを適用するフォルダ名}/*</url-pattern>
      <dispatcher>{フィルタを呼び出す処理}</dispatcher>
</filter-mapping>

フィルタのプログラムに

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

/**
 *
 */
public class {フィルタのプログラムのクラス名} implements Filter {

  /**
   *
   */
  @Override
  public void destroy() {
  }

  /**
   * @param paramServletRequest
   * @param paramServletResponse
   * @param paramFilterChain
   * @throws IOException
   * @throws ServletException
   */
  @Override
  public void doFilter(ServletRequest request, ServletResponse response,
      FilterChain filterChain) throws IOException, ServletException {
    //ここに何かしらの処理を書く
    filterChain.doFilter(request, response);//次のFilterか元々要求されていたプログラムを呼び出し
  }

  /**
   * @param paramFilterConfig
   * @throws ServletException
   */
  @Override
  public void init(FilterConfig filterConfig) throws ServletException {
  }

}

と書きます。
Filterの呼び出される順番(FilterChain)は、web.xmlに記述した位置で決まるようです。Filterでデータベースにアクセスしたいときは、baseFilterの後に呼び出すようにすると、データベースのコネクションが確立されているので、簡単にアクセスできます。

この辺の外部サイトが参考になります。
http://www.javadrive.jp/servlet/filter/index5.html
http://www.techscore.com/tech/Java/JavaEE/Servlet/6-3/
http://www.javaroad.jp/servletjsp/sj_servlet10.htm

ログイン / 新規登録してコメントする

このソースコードをストックして後で利用したり、作業に利用したソースコードをまとめることができます。

こちらもお役に立つかもしれません