導航:首頁 > 凈水問答 > java過濾器鏈怎麼寫

java過濾器鏈怎麼寫

發布時間:2024-08-16 20:03:53

Ⅰ 關於java過濾器(filter)的一個疑惑。。。

msg+="!!!"; 這句話 其實是NWE了一個String 對象了
msg是一個新的對象 不是你先前的那個對象了

已經不是以前的那個對象了
懂了吧

Ⅱ filter的使用 java 過濾器的幾種使用方法

過濾器來

過濾器是處於客戶端自與伺服器資源文件之間的一道過濾網,在訪問資源文件之前,通過一系列的過濾器對請求進行修改、判斷等,把不符合規則的請求在中途攔截或修改。也可以對響應進行過濾,攔截或修改響應。

過濾器一般用於登錄許可權驗證、資源訪問許可權控制、敏感詞彙過濾、字元編碼轉換等等操作,便於代碼重用,不必每個servlet中還要進行相應的操作。

Ⅲ jsp\java 如何編寫過濾器過濾特殊字元

package com.jing.common;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class IllegalCharacterFilter implements Filter {
private String[] characterParams = null;
private boolean OK=true;

public void init(FilterConfig config) throws ServletException {

// if(config.getInitParameter("characterParams").length()<1)
// OK=false;
// else
// this.characterParams = config.getInitParameter("characterParams").split(",");
System.out.println("初始化");
}

@SuppressWarnings("unchecked")
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain arg2) throws IOException, ServletException {
HttpServletRequest servletrequest = (HttpServletRequest) request;
HttpServletResponse servletresponse = (HttpServletResponse) response;
String param = "";
String paramValue = "";

//設置請求編碼格式
servletresponse.setContentType("text/html");
servletresponse.setCharacterEncoding("UTF-8");
servletrequest.setCharacterEncoding("UTF-8");
java.util.Enumeration params = request.getParameterNames();
//循環讀取參數
while (params.hasMoreElements()){
param = (String) params.nextElement(); //獲取請求中的參數
String[] values = servletrequest.getParameterValues(param);//獲得每個參數對應的值

for (int i = 0; i < values.length; i++) {

paramValue = values[i];

//轉換目標字元變成對象字元,可以多個。後期擴展特殊字元庫用於管理
paramValue = paramValue.replaceAll("'","");
paramValue = paramValue.replaceAll("@","");
paramValue = paramValue.replaceAll("胡錦濤","***");

//這里還可以增加,如領導人 自動轉義成****,可以從資料庫中讀取非法關鍵字。
values[i] = paramValue;

}

//把轉義後的參數重新放回request中
request.setAttribute(param, paramValue);
}
//繼續向下 執行請求,如果有其他過濾器則執行過濾器
arg2.doFilter(request, response);
}

public void destroy() {
// TODO Auto-generated method stub
}
}

Ⅳ java如何創建過濾器

弄過濾器,要實現filter介面,下面我寫一個小例子
主要是用過濾器處理中文編碼,至於你要用來做什麼,你再自己寫。。。比如許可權控制,登錄驗證,之類

//下面這是一個類。。。。
import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class EncodingFilter implements Filter {
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
request.setCharacterEncoding("GBK");//處理編碼
response.setCharacterEncoding("GBK");//處理編碼

chain.doFilter(request, response);//讓過濾器執行下一個請求
}

public void destroy() {}

public void init(FilterConfig arg0) throws ServletException {}
}

//下面這個是在web.xml下的配置

<filter>
<filter-name>encoding</filter-name>
<filter-class>
剛剛創建的那個實現filter介面的類的位置
例如:com.temp.filter.EncodingFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>encoding</filter-name>
<url-pattern>*.jsp這個是以jsp為後綴的文件都攔截下來</url-pattern>
</filter-mapping>
可以寫多個的<filter-mapping>來配置你所要攔截的東西

恩,有點嘮叨,希望可以幫助到你

Ⅳ java過濾器中的FilterChain對象

1、什麼是過濾器?
與Servlet相似,過濾器是一些web應用程序組件,可以綁定到一個web應用程序中。但是與其他web應用程序組件不同的是,過濾器是"鏈"在容器的處理過程中的。這就意味著它們會在servlet處理器之前訪問一個進入的請求,並且在外發響應信息返回到客戶前訪問這些響應信息。這種訪問使得過濾器可以檢查並修改請求和響應的內容。
2、過濾鏈FilterChain
兩個過濾器,EncodingFilter負責設置編碼,SecurityFilter負責控制許可權,伺服器會按照web.xml中過濾器定義的先後循序組裝成一條鏈,然後一次執行其中的doFilter()方法。執行的順序就如下圖所示,執行第一個過濾器的chain.doFilter()之前的代碼,第二個過濾器的chain.doFilter()之前的代碼,請求的資源,第二個過濾器的chain.doFilter()之後的代碼,第一個過濾器的chain.doFilter()之後的代碼,最後返回響應。
3、過濾鏈的好處是,執行過程中任何時候都可以打斷,只要不執行chain.doFilter()就不會再執行後面的過濾器和請求的內容。而在實際使用時,就要特別注意過濾鏈的執行順序問題,像EncodingFilter就一定要放在所有Filter之前,這樣才能確保在使用請求中的數據前設置正確的編碼。

Ⅵ Javaweb 鐨勮繃婊ゅ櫒鏄濡備綍瀹炵幇鐨勶紵

Javaweb 鐨勮繃婊ゅ櫒鏄閫氳繃瀹炵幇 Filter 鎺ュ彛鏉ュ疄鐜扮殑銆侳ilter 鎺ュ彛鏈変笁涓鏂規硶錛歩nit()銆乨oFilter() 鍜 destroy()銆傚叾涓錛宨nit() 鏂規硶鐢ㄤ簬鍒濆嬪寲榪囨護鍣錛宒oFilter() 鏂規硶鐢ㄤ簬榪囨護璇鋒眰鍜屽搷搴旓紝destroy() 鏂規硶鐢ㄤ簬閿姣佽繃婊ゅ櫒銆傚湪 web.xml 鏂囦歡涓浣跨敤 鍏冪礌瀵圭紪鍐欑殑 filter 綾昏繘琛屾敞鍐岋紝騫惰劇疆瀹冩墍鑳芥嫤鎴鐨勮祫婧愩

閱讀全文

與java過濾器鏈怎麼寫相關的資料

熱點內容
江門小區污水處理多少錢 瀏覽:776
德龍除垢劑替代 瀏覽:777
反滲透膜制純水 瀏覽:284
河南反滲透凈水設備 瀏覽:463
建設局和污水廠什麼聯系 瀏覽:384
五指山污水處理廠在哪裡 瀏覽:861
600ro膜有多少廢水比 瀏覽:323
家用凈水器需要安裝多少濾芯 瀏覽:689
水蒸氣蒸餾法是不是和胡蘿卜素的提取 瀏覽:745
紙箱廠廢水含什麼 瀏覽:59
雙杉家用凈水器怎麼樣 瀏覽:755
先路水處理 瀏覽:319
樹脂假山流水擺件 瀏覽:658
紅外測油儀如何測工業廢水 瀏覽:327
自來水為什麼不如凈水器的水好喝 瀏覽:163
上海凈水器如何選擇 瀏覽:505
反滲透凈水器起什麼作用 瀏覽:670
汽車換油水和濾芯多少錢 瀏覽:787
排污水管圖紙怎麼看 瀏覽:311
濾紙能否過濾酸鹼性溶液 瀏覽:293