filterclass怎么写( 二 )


<filter-mapping>
<filter-name>NoteFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
如果涉及到编码问题的过滤器 , 最好放在前面执行 , 最好是最前面 , 否则会出现乱码问题无法解决 。
6.Struts 2.2.1 的 struts2 org.apache.struts2.dispatcher.ng.filter. struts2 /* 是这样的配置的!!这里出错了多了个空格应该是 。
7.C# filter怎么写主要是采用了HttpResponse.Filter属性来处理 。
具体代码如下: 首先自定义一个类 , 来作为非法词汇的过滤器 1 public class ResponseFilter:Stream 2 { 3 #region properties 4 5 Stream responseStream; 6 long position; 7 StringBuilder html = new StringBuilder(); 8 9 #endregion 10 11 #region constructor 12 13 public ResponseFilter(Stream inputStream) 14 { 15 16 responseStream = inputStream; 17 18 } 19 20 #endregion 21 22 #region implemented abstract members 23 24 public override bool CanRead 25 { 26 get { return true; } 27 } 28 29 public override bool CanSeek 30 { 31 get { return true; } 32 } 33 34 public override bool CanWrite 35 { 36 get { return true; } 37 } 38 39 public override void Close() 40 { 41 responseStream.Close(); 42 } 43 44 public override void Flush() 45 { 46 responseStream.Flush(); 47 } 48 49 public override long Length 50 { 51 get { return 0; } 52 } 53 54 public override long Position 55 { 56 get { return position; } 57 set { position = value; } 58 } 59 60 public override long Seek(long offset, System.IO.SeekOrigin direction) 61 { 62 return responseStream.Seek(offset, direction); 63 } 64 65 public override void SetLength(long length) 66 { 67 responseStream.SetLength(length); 68 } 69 70 public override int Read(byte[] buffer, int offset, int count) 71 { 72 return responseStream.Read(buffer, offset, count); 73 } 74 75 #endregion 76 77 #region write method 78 79 public override void Write(byte[] buffer, int offset, int count) 80 { 81 82 string sBuffer = System.Text.UTF8Encoding.UTF8.GetString(buffer, offset, count); 83 84 //得到非法词汇列表 , 这个可以在数据库或Web.Config中读取出来 85 string pattern = @"(非法词汇1|非法词汇2|非法词汇3)"; 86 87 88 string[] s = pattern.Split(new string[] { "|" }, StringSplitOptions.RemoveEmptyEntries); 89 90 foreach (string s1 in s) 91 { 92 sBuffer = sBuffer.Replace(s1, "**"); 93 } 94 95 96 byte[] data = http://www.xuexi88.com/zhishi/System.Text.UTF8Encoding.UTF8.GetBytes(sBuffer); 97 responseStream.Write(data, 0, data.Length); 98 99 }100 101 #endregion102 103 104 } 然后再Global.asax文件中 , 添加如下代码:1 public void Application_BeginRequest()2 {3 Response.Filter = new ResponseFilter(Response.Filter);4 5 } 。
8.写了一个filter,想要与多个路径匹配该怎么写<filter>
<filter-name>MyFilter</filter-name>
<filter-class>my.filter.MyFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>MyFilter</filter-name>
<url-pattern>/def/*</url-pattern>
<url-pattern>/abc/*</url-pattern>
</filter-mapping>
url-pattern可以设置多个来访问多个路径
9.web多个filter怎么写应该这么写: <!-- 编码问题过滤器配置--> TypeFilter TypeFilter com.servlet.TypeFilter encoding gb2312 TypeFilter /* <!--黑名单过滤器配置--> NoteFilter NoteFilter com.servlet.NoteFilter