1. 如何創建過濾器Filter
建立一個過濾器涉及下列五個步驟: 1、建立一個實現Filter介面的類。這個類需要三個方法,分別是:doFilter、init和destroy。doFilter方法包含主要的過濾代碼,init方法建立設置操作,而destroy方法進行清楚。 2、在doFilter方法中放入過濾行為。doFilter方法的第一個參數為ServletRequest對象。此對象給過濾器提供了對進入的信息(包括表單數據、cookie和HTTP請求頭)的完全訪問。第二個參數為ServletResponse,通常在簡單的過濾器中忽略此參數。最後一個參數為FilterChain,如下一步所述,此參數用來調用servlet或JSP頁。 3、調用FilterChain對象的doFilter方法。Filter介面的doFilter方法取一個FilterChain對象作為它的一個參數。在調用此對象的doFilter方法時,激活下一個相關的過濾器。如果沒有另一個過濾器與servlet或JSP頁面關聯,則servlet或JSP頁面被激活。 4、對相應的servlet和JSP頁面注冊過濾器。在部署描述符文件(web.xml)中使用filter和filter-mapping元素。 5、禁用激活器servlet。防止用戶利用預設servlet URL繞過過濾器設置。doFilter方法: public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws ServletException, IOException{HttpServletRequest req = (HttpServletRequest)request; System.out.println(req.getRemoteHost() + " tried to access " +req.getRequestURL() +" on " + new Date() + "."); chain.doFilter(request,response); }在web.xml中進行部署 分別是:filter和filter-mapping。filter元素向系統注冊一個過濾對象,filter-mapping元素指定該過濾對象所應用的URL。 1.filter元素 filter元素位於部署描述符文件(web.xml)的前部,所有filter-mapping、servlet或servlet-mapping元素之前。filter元素具有如下六個可能的子元素: :icon 這是一個可選的元素,它聲明IDE能夠使用的一個圖象文件。 :filter-name 這是一個必需的元素,它給過濾器分配一個選定的名字。 :display-name 這是一個可選的元素,它給出IDE使用的短名稱。 :description 這也是一個可選的元素,它給出IDE的信息,提供文本文檔。 :filter-class 這是一個必需的元素,它指定過濾器實現類的完全限定名。 :init-param 這是一個可選的元素,它定義可利用FilterConfig的getInitParameter方法讀取的初始化參數。單個過濾器元素可包含多個init-param元素。2.filter-mapping元素 filter-mapping元素位於web.xml文件中filter元素之後serlvet元素之前。它包含如下三個可能的子元素:: :filter-name 這個必需的元素必須與用filter元素聲明時給予過濾器的名稱相匹配。 :url-pattern 此元素聲明一個以斜杠(/)開始的模式,它指定過濾器應用的URL。所有filter-mapping元素中必須提供url-pattern或servlet-name。但不能對單個filter-mapping元素提供多個url-pattern元素項。如果希望過濾器適用於多個模式,可重復整個filter-mapping元素。 :servlet-name 此元素給出一個名稱,此名稱必須與利用servlet元素給予servlet或JSP頁面的名稱相匹配。不能給單個filter-mapping元素提供多個servlet-name元素項。
2. 不明白Filter過濾器怎麼用,大家幫幫我
我來給你簡單的說一下吧:)
首先要明確。Filter是JSP2.0裡面的東西 ,顧名思義,也就是過濾器的意思
和你說說如何用吧。要用Filter就得在web.xml中配置
例:
//配置方法和配置普通的Servlet一樣的哦
<filter>
<filter-name>PrivFilter</filter-name>
<filter-class>com.myPriv.filter.PrivFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>PrivFilter</filter-name>
<url-pattern>/resource/*</url-pattern>
</filter-mapping>
//com.myPriv.filter.PrivFilter是這個過濾器所在的位置。當然這個過濾器必須實現介面javax.servlet.Filter。
然後就可以在過濾器這個介面方法中增加過濾條件了
public void doFilter(ServletRequset request, ServletResponse response,FilterChain chain)
thows ServletException, IOException{
}
然後你可以把過濾條件寫出來,寫在doFilter方法裡面
我這里寫一個簡單的例子:
public void doFilter(ServletRequest req, ServletResponse res,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) res;
HttpSession session=request.getSession();
ServletContext application=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. 在cad中,對象選擇過濾器在哪個裡面
選擇過濾器的話,輸入FILTER命令,看能不能執行,還有一個就是快速選擇QSELECT,快速選擇在界面里能找到,關鍵看你用的是什麼版本,特性面板(CTRL+1)上面最右側的按鈕就是
4. 過濾器<filter>配置的位置
在WEB-INF下面的web.xml裡面配置。例如:
<filter>
<filter-name>projectFilter</filter-name>
<filter-class>com.bruce.filter.ProjectFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>projectFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
5. ffmpeg 有哪些filter
AVFilter
所有我們寫的濾鏡都要用一個AVFilter結構體講給ffmpeg聽。 這個結構體里描述了ffmpeg從哪個方法進入我們的濾鏡。 這個結構體在libavfilter/avfilter.h里如下定義:
01 typedef struct
02 {
03 char *name; ///< 濾鏡名稱
04
05 int priv_size; ///< 給濾鏡分配的內存大小
06
07 int (*init)(AVFilterContext *ctx, const char *args, void *opaque);
08 void (*uninit)(AVFilterContext *ctx);
09
10 int (*query_formats)(AVFilterContext *ctx);
11
12 const AVFilterPad *inputs; ///< 一系列輸入 NULL terminated list of inputs. NULL if none
13 const AVFilterPad *outputs; ///< 一系列輸出 NULL terminated list of outputs. NULL if none
14 } AVFilter;
「query_formats」方法用於設置可以接受的輸入圖像格式和輸出的圖像格式(用於濾鏡鏈分辨哪些濾鏡可以組合在一起用)。
AVFilterPad
這個濾鏡用於描述濾鏡的輸入輸出,在libavfilter/avfilter.h中定義如下:
01 typedef struct AVFilterPad
02 {
03 char *name;
04 int type;
05
06 int min_perms;
07 int rej_perms;
08
09 void (*start_frame)(AVFilterLink *link, AVFilterPicRef *picref);
10 AVFilterPicRef *(*get_video_buffer)(AVFilterLink *link, int perms);
11 void (*end_frame)(AVFilterLink *link);
12 void (*draw_slice)(AVFilterLink *link, int y, int height);
13
14 int (*request_frame)(AVFilterLink *link);
15
16 int (*config_props)(AVFilterLink *link);
17 } AVFilterPad;
頭文件里有十分具體的描述,這里大概解釋如下:
輸入輸出pad都可以用的元素:
name pad的名字,所有的輸入pad名字不能重復,所有的輸出名字不能重復;
type 此元素目前只能為「AV_PAD_VIDEO」值
config_props 鏈接此pad的配置方法的函數指針
僅限輸入pad使用的元素:
min_perms 接受輸入需要的最小許可權
rej_perms 不接受的輸入許可權
start_frame 一幀傳入時引用的方法的函數指針
draw_slice 每個slice已經傳入後引用的方法的函數指針
end_frame 一幀完整結束後引用的方法的函數指針
get_video_buffer 前一個濾鏡調用,用以為一個圖像請求內存
僅限輸出pad使用的元素:
request_frame 請求濾鏡輸出一幀
6. 誰可以給我一個Javaweb過濾器filter的相關jar
那個東西在tomcat裡面就有,所有的web容器和javaee應用伺服器都有這個。
一個出來就行了。
而且回你開發這個的時候肯定不是空答手開發,光用一個介面的jar根本運行不起來。
所以肯定要一個開發運行環境的,直接import你的web容器裡面lib里所有的jar就肯定包括了
7. 在Photoshop界面打開的圖片,有時打不開「Filter」各種過濾器,怎麼辦
1、首先,在Photoshop中打開圖抄像,點擊「過濾器」按鈕,選擇「轉換為智能過濾器」,如下圖所示,然後進入下一步。
8. java過濾器中實現Filter的類怎麼寫
web.xml配置文件來
SessionFilter
com.qhit.system.tools.SessionFilter
SessionFilter
/*
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();
}
}
9. 汽車有哪些過濾器 都在什麼位置 哪些可以自己更換
有以下幾種:
1、空氣濾裝在機倉里,很方便更換;
2、機油濾裝在發動機邊上,看版你的動手能力權和工具情況;
3、空調濾一般在手套箱附近,很方便更換;
4、燃油濾一般在車底或油箱內,車底的好換,油箱里的麻煩一點。
能否自己更換是要看你的動手能力,還有工具情況的,這幾個正常保養的備件都是比較好換的。
過濾器(filter)是輸送介質管道上不可缺少的一種裝置,通常安裝在減壓閥、泄壓閥、定水位閥 ,方工過濾器其它設備的進口端設備。過濾器由筒體、不銹鋼濾網、排污部分、傳動裝置及電氣控制部分組成。待處理的水經過過濾器濾網的濾筒後,其雜質被阻擋,當需要清洗時,只要將可拆卸的濾筒取出,處理後重新裝入即可,因此,使用維護極為方便。
10. Filter要用到哪些jar包
Filter的意思是過濾器,需要用到一些Java的包。
在以前舉的一些示常式序中,基本上都沒有使用包,因為例子通常都是一些比較小的程序,只要兩三個類就可以完成了,不需要再進行分類組織。但是,當開發較大規模的程序時,就會發現這種開發模式的局限。
當創建了大量的類以後,會對大量冗長的名字感到厭煩,於是可能會趨向於使用較短小的名字。使用簡短的名字固然會給編程帶來便利,但是當類的數量激增時,這些類就有可能重名,而也許還不知道。使用包就可以解決這個問題,可以使用包把類組織起來,而在包內就可以使用簡單名稱,在越包訪問的時候就需要使用帶包名的限定名稱。
使用包不僅可以避免名字的沖突,還可以把大量的類按照功能和用途組織起來,訪問和查找起來更加方便。
可以把包理解為一種組合機制,包主要有兩種用途:
減少命名混亂問題。
控制包中類、介面、方法和一定的訪問許可權控制。
使用包可以提供一定的訪問控制。類、方法和域的默認訪問許可權就是可以在聲明它的包中被訪問。包中封裝了類和其它的包,所以Java提供了對類成員在四種范圍中的訪問許可權的控制,這四種范圍包括:
同一個類中。
同一個包中。
不同包中的子類。
不同包中的非子類。
訪問許可權則包括private、protected、public和friendly。
希望我能幫助你解疑釋惑。