Giriş
Şu satırları dahil ederiz.
Şu satırları dahil ederiz.
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.FilterConfig;
Tanımlama - annotation
@WebFilter Anotasyonu yazısına taşıdımTanımlama - xml
Şöyle yaparız.
<filter>
<filter-name>MyFilter</filter-name>
<filter-class>com.bar.foo.MyFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>MyFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
destroy metoduMetodun imzası şöyle
public void destroy();
doFilter metoduMetodun imzası şöyle
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain)
throws IOException, ServletException
doFilter metodu içinde genellikle ServletRequest nesnesi HttpServletRequest nesnesin, ServletResponse nesnesi ise HttpServletResponse nesnesine cast edilir.Örnek 1
Giriş yapılıp yapılmadığına göre başka sayfaya yönlendirmek için şöyle yaparız.
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain)
throws IOException, ServletException
{
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) res;
HttpSession session = request.getSession(false);
if (null == session) {
response.sendRedirect("index.jsp");
}
Boolean isLoggedIn = session.getAttribute("isLoggedIn");
if(!isLoggedIn)
response.sendRedirect("index.jsp");
chain.doFilter(req, res);
}
Örnek 2Logout olunca şöyle yaparız.
@Override
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
// obtaining a sessionComplete value
Object value = ((HttpServletRequest) request).getSession().
getAttribute("sessionComplete");
boolean sessionComplete = Boolean.valueOf(Objects.requireNonNull(value).
toString());
// go to the final page
if (sessionComplete) {
((HttpServletResponse)response).sendRedirect("locationToRedirect");
}
// otherwise, pass a control to controllers
chain.doFilter(request, response);
}
init metoduŞöyle yaparız
public void init(FilterConfig config) throws ServletException{
...
}