導航:首頁 > 凈水問答 > 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過濾器鏈怎麼寫相關的資料

熱點內容
氯化鋁催化石油樹脂 瀏覽:424
delonghi咖啡機除垢劑 瀏覽:208
沙林樹脂2000 瀏覽:807
凈水器不節水怎麼辦 瀏覽:93
mac地址過濾失效 瀏覽:862
金帝凈水器的售後電話是什麼 瀏覽:921
北京污水處理後如何迴流 瀏覽:373
11污水泵揚程15米 瀏覽:48
污水進戶管線錯位怎麼辦 瀏覽:942
湖北健康碼可以回赤壁用嗎 瀏覽:911
水處理用金剛砂 瀏覽:436
電動拉桿提升器 瀏覽:107
樹脂緩釋 瀏覽:657
廢混床樹脂 瀏覽:531
一體式凈化器油煙機怎麼清洗 瀏覽:545
熱水器的除垢劑能清洗洗衣機嗎 瀏覽:383
象巢桶裝水除了純凈水還有什麼 瀏覽:686
水合肼處理含鉻廢水方法 瀏覽:55
馬桶水垢可以用硫酸嗎 瀏覽:307
小凈化器怎麼用 瀏覽:994