Wednesday, September 08, 2004

Servlet tips: Menghentikan rantai Filter? jangan lupa untuk return void

Kalau kita perlu menghentikan rantai (chain) Filter, misalnya dengan forwarding ke JSP, maka jangan lupa untuk return void, sehingga FilterChain.doFilter() tidak dieksekusi. Jika hal ini tidak dilakukan, lihat saja errornya!

Ini contohnya:

public class LoginFilter implements Filter {
public void doFilter(
ServletRequest req,
ServletResponse resp,
FilterChain chain)
throws ServletException, IOException {

LoginSession loginSession = WebUtility.getLogin((HttpServletRequest) req);
if ( loginSession == null) {
req.setAttribute("message","Login Required: Your session is expired or you are not login.");
((HttpServletRequest) req).getRequestDispatcher( "/errorNotLogin.jsp").forward(req, resp);
return;
}
chain.doFilter(req, resp);
}
public void init(FilterConfig config) throws ServletException {
}
public void destroy() {
}

}

No comments:

Followers