1. 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 = 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 }。
2. 不明白Filter过滤器怎么用,大家帮帮我首先问一个问题,FilterChain
我来给你简单的说一下吧:) 首先要明确。
Filter是JSP2.0里面的东西,顾名思义,也就是过滤器的意思 和你说说如何用吧。要用Filter就得在web.xml中配置 例: //配置方法和配置普通的Servlet一样的哦 PrivFilter com.myPriv.filter.PrivFilter PrivFilter /resource/* //com.myPriv.filter.PrivFilter是这个过滤器所在的位置。
当然这个过滤器必须实现接口javax.servlet.Filter。 然后就可以在过滤器这个接口方法中增加过滤条件了 publicvoiddoFilter(ServletRequsetrequest,ServletResponseresponse,FilterChainchain) thowsServletException,IOException{ } 然后你可以把过滤条件写出来,写在doFilter方法里面 我这里写一个简单的例子: publicvoiddoFilter(ServletRequestreq,ServletResponseres, FilterChainchain)throwsIOException,ServletException{ HttpServletRequestrequest=(HttpServletRequest)req; HttpServletResponseresponse=(HttpServletResponse)res; HttpSessionsession=request.getSession(); ServletContextapplication=session.getServletContext(); if(session.getAttribute("userSession")==null) { response.sendRedirect("error/priv_error.jsp"); return; } else { chain.doFilter(request,response); } } 在上面的这个过滤方法中,如果session.getAttribute("userSession")==null)那就跳转到错误页面。
如果不为空,则继续 所以 chain.doFilter(request,response);的意思就是跳转到下个页面, 明白了吧? 如果还有不明白。,可以留下你的问题 ------------------------ 还有忘了回答你的问题了。
java会在处理每一个Servlet时都走一次Filter的。所以你不必担心你的过滤不起作用了 而且chain.doFilter(request.response); 是必须的。
没有他,程序就不会继续了:)他是让你的request和response继续运行哦 -------------------------------- 这个你就可接写/* 好了。它是说对哪些范围起作里这个过滤器。
3. filter java 怎么写
web.xml配置文件
4. web多个filter怎么写
应该这么写:
<filter><;!-- 编码问题过滤器配置-->
<display-name>TypeFilter</display-name>
<filter-name>TypeFilter</filter-name>
<filter-class>com.servlet.TypeFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>gb2312</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>TypeFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter><;!--黑名单过滤器配置-->
<display-name>NoteFilter</display-name>
<filter-name>NoteFilter</filter-name>
<filter-class>com.servlet.NoteFilter</filter-class>
<init-param>
<param-name>Blacklist</param-name>
<param-value>;黑名单</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>NoteFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
如果涉及到编码问题的过滤器,最好放在前面执行,最好是最前面,否则会出现乱码问题无法解决。
5. java过滤器中实现Filter的类怎么写
web.xml配置文件
<filter>
<filter-name>SessionFilter</filter-name>
<filter-class>com.qhit.system.tools.SessionFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>SessionFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
java类
public class ConnFilter extends HttpServlet implements Filter {
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain filterchain) throws IOException, ServletException
{
try
{
filterchain.doFilter(request, response);此处为过滤链 理解为请求通过该过滤继续前行 可在此处加上判断 如果TRUE执行该语句 有过FALSE 则直接跳转其他页面 常用于判断是否有权限进入某页面
}
finally
{
DBUtils.close();
}
}
6. java过滤器中实现Filter的类怎么写
web.xml配置文件SessionFiltercom.qhit.system.tools.SessionFilterSessionFilter/*java类 public class ConnFilter extends HttpServlet implements Filter {public void doFilter(ServletRequest request,ServletResponse response,FilterChain filterchain) throws IOException,ServletException{try{filterchain.doFilter(request,response);此处为过滤链 理解为请求通过该过滤继续前行 可在此处加上判断 如果TRUE执行该语句 有过FALSE 则直接跳转其他页面 常用于判断是否有权限进入某页面 }finally{DBUtils.close();}}。
7. 过滤器怎么写
英文版
filtrator; strainer; absorber; leach; sieve; percolator; filter; purifier; cleaning strainer; filter filtrator purifier; strainer; cold filter; inlet rose box; pass filter; rose head; filter apparatus
中文版
过滤器
8. web.xml 所有页面都 filter怎么写
<filter>
<filter-name>Test Filter</filter-name>
<filter-class>com.yourcompany.filters.TestFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>Test Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>