Java/J2EE Programming Training
Java Filters
Page 2Classification: Restricted
Agenda
• Filter API
• Configuring filter
• DISPATCHER
Page 3Classification: Restricted
Page 4Classification: Restricted
Login
update
Login
add
Login
delete
CROSSCUTTING
CONCERNS
Page 5Classification: Restricted
Login
updat
e
Login
add
Login
delete
CROSSCUTTING
CONCERNS
L
O
G
I
N
Page 6Classification: Restricted
Authori
ze
updat
e
add
Authori
ze
delete
CROSSCUTTIN
G CONCERNS
l
o
g
g
i
n
g
a
u
t
h
e
n
ti
c
a
ti
o
n
Page 7Classification: Restricted
Filter API
Page 8Classification: Restricted
public class LoggingFilter implements Filter{
@Override
public void init(FilterConfig filterConfig) throws ServletException {
System.out.println("init method");
}
@Override
public void doFilter(ServletRequest request, ServletResponse
response, FilterChain chain) throws IOException, ServletException {
System.out.println("before dispatching request to servlet");
chain.doFilter(request, response);
System.out.println("After dispatching response from servlet");
}
@Override
public void destroy() {
System.out.println("Clean up resources");
}
}
Page 9Classification: Restricted
public class LoggingFilter implements Filter{
@Override
public void init(FilterConfig filterConfig) throws ServletException {
System.out.println("init method");
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain
chain) throws IOException, ServletException {
System.out.println("before dispatching request to servlet");
chain.doFilter(request, response);
System.out.println("After dispatching response from servlet");
}
@Override
public void destroy() {
System.out.println("Clean up resources");
}
}
Page 10Classification: Restricted
Configuring filter
<filter>
<description>filter to log incoming request</description>
<filter-name>logFilter</filter-name>
<filter-class>com.example.filters.LoggingFilter</filter-class>
</filter>
URL PATTERN
<filter-mapping>
<filter-name>logFilter</filter-
name>
<url-pattern>/</url-pattern>
</filter-mapping>
SERVLET NAME
<filter-mapping>
<filter-name>logFilter</filter-name>
<servlet-name>TestServlet</servlet-
name>
</filter-mapping>
Page 11Classification: Restricted
Configuring filter
<filter>
<description>filter to log incoming request</description>
<filter-name>logFilter</filter-name>
<filter-class>com.example.filters.LoggingFilter</filter-class>
</filter>
URL PATTERN
<filter-mapping>
<filter-name>logFilter</filter-name>
<url-pattern>/</url-pattern>
</filter-mapping>
SERVLET NAME
<filter-mapping>
<filter-name>logFilter</filter-name>
<servlet-name>TestServlet</servlet-
name>
</filter-mapping>
Page 12Classification: Restricted
<servlet-mapping>
<servlet-name>UpdateAccounts</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<filter-mapping>
<filter-name>authenticationFilter</filter-name>
<servlet-name>UpdateAccounts</servlet-name>
</filter-mapping>
<filter-mapping>
<filter-name>Authorization</filter-name>
<servlet-name>UpdateAccounts</servlet-name>
</filter-mapping>
<filter-mapping>
<filter-name>logFilter</filter-name>
<url-pattern>/</url-pattern>
</filter-mapping>
1
2
3
Page 13Classification: Restricted
DISPATCHER
RequestDispatcher rd =request.getRequestDispatcher(“UpdateAccounts”);
rd.forward( request, response );
• <filter-mapping>
• <filter-name>authenticationFilter</filter-name>
• <servlet-name>UpdateAccounts</servlet-name>
• <dispatcher>FORWARD</dispatcher>
• </filter-mapping>
Page 14Classification: Restricted
Login
updat
e
Login
add
Login
delete
CROSSCUTTING
CONCERNS
L
O
G
G
I
N
G
<filter-mapping>
<filter-name>loggingFilter</filter-name>
<servlet-name>UpdateAccounts</servlet-
name>
<dispatcher>REQUEST</dispatcher>
</filter-mapping>
Page 15Classification: Restricted
update
Accounts
A
U
T
H
O
R
I
Z
E
<filter-mapping>
<filter-name>audit</filter-name>
<servlet-
name>UpdateAccounts</servlet-name>
<dispatcher>INCLUDE</dispatcher>
</filter-mapping>
admin
RequestDispatcher rd
=request.getRequestDispatcher(“UpdateAccount”);
rd.include ( request,response );
update
Accounts
A
U
T
H
O
R
I
Z
E
<filter-mapping>
<filter-name>audit</filter-name>
<servlet-name>UpdateAccounts</servlet-name>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>
admin
RequestDispatcher rd =request.getRequestDispatcher(“UpdateAccount”);
rd.forward( request,response );
Page 17Classification: Restricted
update
Accounts
A
U
T
H
I
R
I
Z
E
<filter-mapping>
<filter-name>audit</filter-name>
<servlet-
name>UpdateAccounts</servlet-name>
<dispatcher>ERROR</dispatcher>
</filter-mapping>
admin
RequestDispatcher rd
=request.getRequestDispatcher(“UpdateAccount”);
rd.forward( request,response );
Page 18Classification: Restricted
Thank You

Java Filters