導航:首頁 > 凈水問答 > dofilter不過濾session

dofilter不過濾session

發布時間:2025-04-10 22:41:57

① 在springmvc中使用過濾器chain.dofilter 出不去

如果走chain的話,通過chain.doFilter(request,response)這個方法會立即跳轉到被攔截的servlet並且執行完還要再返回filter.chain相當於一扇門,從這扇門出去再從這扇門回來.調用filter的方法就是在web.xml中配置,需要配置一個與你需要攔截的servlet相同的url-pattern.
<!-- 配置一個過濾器 -->
<filter>
<filter-name>suibianxie</filter-name>
<filter-class>com.etoak.filter.MyEncoding</filter-class>
<!-- 配置一個私有參數 -->
<init-param>
<param-name>mycode</param-name>
<param-value>gbk</param-value>
</init-param>
</filter>
<!-- 攔截的先後順序和mapping的順序有關 -->
<filter-mapping>
<filter-name>suibianxie</filter-name>
<!-- 注意這里和要攔截的servlet的url-pattern必須一致,等於是過濾器
搶在servlet之前攔截住了 -->
<url-pattern>/servlet/Test</url-pattern>
</filter-mapping>
<!-- 配置第二個過濾器 -->
<filter>
<filter-name>suibianxie2</filter-name>
<filter-class>com.etoak.filter.Naming</filter-class>
</filter>
<filter-mapping>
<filter-name>suibianxie2</filter-name>
<url-pattern>/servlet/Test</url-pattern>
</filter-mapping>

<servlet>
<servlet-name>Test</servlet-name>
<servlet-class>com.etoak.servlet.Test</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Test</servlet-name>
<url-pattern>/servlet/Test</url-pattern>
</servlet-mapping>

② web.xml lt;filter-mapping>我不想過濾html文件,怎麼設置

用過濾器實現 ..需要進行web.xml的手工配置, 步驟一般是建一個過濾器,在doFilter這個方法里寫驗證session 中用戶的許可權,如果不符,則不能進入你所配置訪問的文件夾內所有的JSP頁面了..它便會自動重定向到你的指定頁,比如登入頁等還有就是配置XML文件了.有多個許可權可以配置多個文件夾 下面是配置的代碼.. AdminFilter group1.filter.AdminFilter AdminFilter /affiche/*

③ chain.doFilter過濾器如果要過濾多個網頁但不是所有的網頁web.xml在配置的時候怎麼寫~~~

HttpServletRequest req = (HttpServletRequest )request;
HttpServletRequest res = (HttpServletRequest )response;

String s = req.get***url(); //----具體去試,就是每次的請求的地址
//一般都是「/項目名/***」
if(!s.equel*******("/項目名/***") && !s.equel*******("/項目名/***") ){
//如果不匹配給出的路徑,則放行
chain.doFilter(req, res);
}else{
return;
}

s.equel******* ----(最長的那一個,就是比較字元串)

在web.xml裡面把這個Filter配進去,放在其他的Filter前面
<filter-mapping>
<url-parme>/*</url-parme>
</filter-mapping>
/* 攔截所有的請求~~~~~~~~~~

都是手打,大概的在myeclipse都有提示的
這樣過濾了沒什麼好處,最好是設一個session,不然你過濾的網頁永遠都訪問不到了~~~~~~~~~~~

④ 怎麼用過濾器管理用戶session

我們經常會碰到這樣的情況,當我們有事情離開了一會,等再回來繼續我們在網頁中的操作時,會出現session超時的錯誤,然後跟上一堆的錯誤,讓用戶感覺很不爽,像這種情況如果能在一個錯誤頁面給個Session超時的提示就會比較友好些,再一種情況,當一個系統中的用戶角色有多個,有些頁面對於一些級別低的用戶來說是沒有許可權觀看的,可能在頁面上能根據不同的許可權屏蔽了一些鏈接讓低級別的用戶無法進入,但是這只能讓低級別的用戶看不見高級操作的鏈接,假如用戶知道鏈接的地址直接在地址欄中輸入鏈接,豈不是也可以進入系統啊,要解決這兩個問題就得在頁面中做判斷了。

If(session== null) {

//如果是超時則跳轉到登陸頁面重新登陸

}

If(checkAuthority() == false) {

//如果許可權不足則跳轉到錯誤頁面給個提示

}

每個.jsp頁面中加上以上的判斷貌似能夠解決問題,然而一個系統往往有成百上千的jsp頁面,倘若每個頁面都這樣加豈不是很費事,而且如果將來的許可權判斷發生變化,將要維護所有的jsp這樣的工作量是很大的,靈活性很差,要是在進入這些jsp之前必須統一經過一個地方,在這個地方來做判斷貌似要好一下,我們使用了過濾器來解決了這個問題

新建一個過濾器命名為:FilterDemo,該類繼承自:javax.servlet.Filter

{

publicvoiddestroy() {}

publicvoiddoFilter(ServletRequest sreq, ServletResponse response,

FilterChain filterChain)

throwsIOException, ServletException {

HttpServletRequest request=(HttpServletRequest)sreq;

HttpSessionsession= request.getSession(false);

if(session==null) {

//如果是session超時,在此處做處理

}

if(request.getRequestURI().endsWith("download.do")) {

//此處可以針對不同的請求根據用戶是否具有許可權來做處理

}

request.getRequestDispatcher("/Error.jsp").

forward(request,response);

}

publicvoidinit(FilterConfig filterConfig)

throwsServletException {}

}

然後將新建的Filter添加到web.xml中,部署Filter需要添加兩部分:

1.filter元素

filter元素位於部署描述符文件(web.xml)的前部,所有filter-mapping、servlet或servlet-mapping元素之前。

<filter>

<filter-name>SessionFilter</filter-name>

<filter-class>myPackage.FilterDemo</filter-class>

</filter>

2.filter-mapping元素

filter-mapping元素位於web.xml文件中filter元素之後serlvet元素之前

<filter-mapping>

<filter-name>SessionFilter</filter-name>

<url-pattern>*.do</url-pattern>

</filter-mapping>

以上內容表示所以的請求中以.do結尾的都有首先通過我們這里指定的過濾器:

新建一個Servlet來測試:

{

=1L;

publicDownLoadDemo() {

super();

}

protectedvoiddoGet(HttpServletRequest request, HttpServletResponse response)throwsServletException, IOException {

this.doPost(request, response);

}

protectedvoiddoPost(HttpServletRequest request, HttpServletResponse response)throwsServletException, IOException {

request.getRequestDispatcher("/DownLoadExcel.jsp").

forward(request, response);

}

}

在web.xml中部署好該servlet

<servlet>

<servlet-name>DownLoadDemo</servlet-name>

<servlet-class>com.sinosoft.base.sessiondemo.DownLoadDemo</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>DownLoadDemo</servlet-name>

<url-pattern>/download</url-pattern>

</servlet-mapping>

新建jsp來測試

Index.jsp
<body>

<formaction="download.do">

<h1>This is a Demo Application</h1>

<ahref='DownLoadExcel.jsp'>導出Excel</a>

<inputtype='submit'>

</form>

</body>

為了便於對比我們使用了一個是超鏈接的形式,一個是通過servlet來跳轉,當點擊提交按鈕時會被攔截,而直接點擊超鏈接就不會被攔截,因為我們的Filter中配置的是攔截.do形式的,如果要攔截jsp也可以使用<url-pattern>DownLoadExcel.jsp </url-pattern>

再添加一個錯誤頁面Error.jsp

<body>

<h1>對不起,你沒有許可權</h1>

</body>

閱讀全文

與dofilter不過濾session相關的資料

熱點內容
蒸餾酒許可證怎麼辦6 瀏覽:484
美的飲水機浮球組件怎麼放 瀏覽:664
濟南水處理廠有限公司 瀏覽:868
洗衣櫃的清污水如何排管 瀏覽:735
城市污水回用 瀏覽:240
生物膜對廢水的凈化過程及原理 瀏覽:411
閻良水處理環保公司 瀏覽:918
桑普空氣凈化器怎麼辦 瀏覽:97
北京賽諾超濾膜原件 瀏覽:841
美國陶氏RO膜是哪裡產的 瀏覽:285
污水管道清理費入什麼賬 瀏覽:53
反相色譜為什麼不能用純水 瀏覽:445
廣州光明村污水管工程 瀏覽:647
全自動咖啡機可以用檸檬酸除垢嗎 瀏覽:68
養綠蘿用什麼凈化器好 瀏覽:50
英尼克純水機怎麼安裝 瀏覽:379
污水處理中存在的問題調查報告 瀏覽:58
濾芯裡面有螞蟻怎麼辦 瀏覽:939
純水電導多少合適 瀏覽:276
汽油濾芯40bar什麼意思 瀏覽:507