filterconfig

ServletContextgetServletContext()返回Servlet上下文对象的引用,示例在net.biancheng.www.filter包中,

Javax.Servet包中提供了一个FilterCofig接口,代码如下,FilterConfig接口(Servlet),如下表,packagenet.biancheng.www.filter;importjavax.servlet.*;importjava.io.IOException;importjava.util.Enumeration;/***黑名单过滤器**@author编程帮www.biancheng.net*/publicclassBlackListFilterimplementsFilter{privateFilterConfigfConfig;publicvoiddoFilter(ServletRequestrequest,ServletResponseresponse,FilterChainchain)throwsIOException,ServletException{response.setContentType("text/html;charset=UTF-8");Booleansuccessde=true;//获取前台登录的账号信息Stringname=request.getParameter("username");//获取过滤器中的初始化参数EnumerationblackListNames=fConfig.getInitParameterNames();//判断前台登录账号是否为空if(name==null||"".equals(name)){response.getWriter().write("用户名不能为空");}else{//登录账号不为空,packagenet.biancheng.www.servlet;importjavax.servlet.ServletException;importjavax.servlet.annotation.WebServlet;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importjava.io.IOException;/***@author编程帮www.biancheng.net*/@WebServlet("/login")publicclassLoginServletextendsHttpServlet{privatestaticfinallongserialVersionUID=1L;publicLoginServlet(){super();}protectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{response.setContentType("text/html;charset=UTF-8");response.getWriter().write("编程帮www.biancheng.net欢迎您");}protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{doGet(request,response);}}在web.xml中配置过滤器以及初始化参数,BlackListFilternet.biancheng.www.filter.BlackListFilterblackList1编程帮黑名单用户1blackList2编程帮黑名单用户2blackList3userBlackListFilter/login在WebContent目录下创建login.html,代码如下,在FilterConfig接口中,创建名称为LoginServlet的类,结果如下

代码如下

通过filterConfig对象就可以获得Filter的初始化参数。

它与ServletConfig接口相似,返回值类型方法描述StringgetInitParameter(Stringname)根据初始化参数名name,,循环遍历黑名单while(blackListNames.hasMoreElements()){//若登录账号是黑名单账号则不允许登录if(fConfig.getInitParameter(blackListNames.nextElement()).equals(name)){successde=false;}}if(successde){chain.doFilter(request,response);}else{response.getWriter().write("温馨提示:您的存在风险,用于在过滤器初始化期间向其传递信息,在浏览器地址栏中输入“http://localhost:8080/filterDemo/login.html”,返回对应的初始化参数值。

相关信息