Filter 简单应用实例求详解

web.xml


AdminFilter
szy.shopping.filter.AdminFilter

url
/admin/login.jsp

<filter-mapping>
    <filter-name>AdminFilter</filter-name>
    <url-pattern>/admin/index.jsp</url-pattern>
</filter-mapping>

AdminFilter.java

public class AdminFilter implements Filter{
String url = "/";
@Override
public void destroy() {

}

@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
    HttpServletRequest req = (HttpServletRequest) request;
    HttpServletResponse res = (HttpServletResponse) response;
    HttpSession session = req.getSession();
    if (session.getAttribute("admin") == null) {
        res.sendRedirect(req.getContextPath() + url);
        return ;
    }
    chain.doFilter(request, response);
}

@Override
public void init(FilterConfig config) throws ServletException {
    url = config.getInitParameter("url");
}

}

能不能详细说明以上两段代码的具体解释?大致的流程是怎么样的?

[b]问题补充:[/b]
lianj_lee所说的这个权限判断是我写程序调用,还是它自动根据XML来调用验证是否登录?

还有


AdminFilter
szy.shopping.filter.AdminFilter

url
/admin/login.jsp


AdminFilter
/admin/index.jsp

可否在详细说明?谢谢~

简单的一个权限判断,admin用户登录以后会在session里面放入一个变量,变量名“admin”, 所有在filter里面判断这个在session里面是否存在,如果不存在,则跳转到admin用户登陆页。登陆页地址是,这个[color=red]web应用地址[/color] 加上 [color=red]具体页面地址[/color] 具体页面地址是通过 filter的初始化参数传入的!

回答完毕!

filter 的机制你都没有完全明白,建议你去看看filter的原理。

是他自己进行处理的,不过你要配置一下 在web。xml中。

建议还是细细的看看吧!