监听器$过滤器$拦截器配置

来源:互联网 发布:多种乐器模拟软件 编辑:程序博客网 时间:2024/05/16 01:22
                          监听器
1.定义一个类实现时间监听器接口
    myListener implements servletcontextListener{
       contetinitaializd()
       ..............
}


2.在web.xml配置事件监听器
   <listenr>
    <listener-class>


       类的全名 cn.sdbi.listener.myListener
    </listener-class>
    
   </listener>
                          过滤器


1.定义一个类MyFilter实现filter接口
  实现统一全站编码伪代码
  MyFilter implements Filter{
   init()
   doFilter(req,res)
    request=req;
    response=res;
    request.setcharaterEncoding("utf-8");//只对消息体有效
    reponse.setcontentType("text/html;charset="utf-8");
   //对request进行包装
   CharateRequest characterReq=new CharateRequest(request);
   chain.dofilter(characterReq,response);
   destroy()
  
  //针对request对象进行包装
  //继承 默认包装类httpServletRequestWrapper
    class CharateRequest extends httpServletRequestWrapper{


    public  CharateRequest(httpServletRequest request){
    super(request)
    public String getParameter(String name){


          String value=super.getParameter(name);
          if(value==null)


            return null;
          //判读请求方式
       String method=super.getMethod();
        if("get".equalsIgnoreCase(method)){
         try{
             value=new String (value.getBytes("iso8859-1","utf-9"));
             }catch (e){
              throw new runtimeException(e)
             }


          }
         return value;


 }
            
}
}
   
}


    
}


2.在web.xml配置过滤器
  
  <filter>
     <filter-name>MyFilter</filter-name>
      <filter-class>
      cn.sdbi.filter.MyFilter
      </filter-class>
  </filter>
  <filter-mapping>
     <filter-name>MyFilter</filter-name>
      <url-pattern>/*</url-pattern>
  </filter-mapping>
                         
                      拦截器


1.定义一类去实现Interceptor接口或者继承abstractInterceptor类
 
2.struts.xml配置自定义拦截器


  <interceptors>
<!-- 声明一个拦截器 -->
<interceptor name="checkePrivilege" class="cn.zhl.oa.interceptor.CheckPrivilegeIntercptor">
   </interceptor>


<!-- 重新定义defaultStack拦截器栈,需要先判断权限 -->
<interceptor-stack name="defaultStack">
<interceptor-ref name="checkePrivilege" />
<interceptor-ref name="defaultStack" />
</interceptor-stack>
</interceptors>


3.在struts.xml中的action使用拦截器


   在action中使用自定义拦截器
   <interceptor-ref name="defaultStack" />





































原创粉丝点击