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