很多時候,我們都需要做使用者登入和登入使用者的許可權管理,如何防止沒登入系統的使用者訪問不該訪問的頁面呢?
第一種解決辦法,在沒個使用者登入相關的頁面中判定相應的session是否為空,系統比較小該方法還可行? 系統比較大呢?上千個頁面呢?難道也要在每個頁面中去判斷嗎?這或許不太可取
第二種,引入filter
具體實現如下:
我們在action中,利用request.getsession().setattribute("user",user);並講請求分發到scuess.jsp
scuess.jsp中無需做任何session就能判定使用者是否非法登入
嘿嘿,別忘了,在web.xml中還需要配置;
<filter
>
<
filter-name
>loginfilter
filter-name
>
<
filter-class
>com.lovexx.tools.loginfilter
filter-class
>
filter
>
<
>
<
filter-name
>loginfilter
filter-name
>
<
url-pattern
>/scuess.jsp
url-pattern
>
>
忘和j2ee愛好者多多交流,共同進步
在struts開發中,對特定目錄下的頁面進行過濾的時候,要注意別對action path 相對路徑的aciton.do進行驗證,否則會出錯,
如我的web.xml中的配置如下
<
filter
>
<
filter-name
>loginfilter
filter-name
>
<
filter-class
>com.zq.tools.loginfilter
filter-class
>
<
init-param
>
<
param-name
>undo
param-name
>
<
param-value
>/index.jsp
param-value
>
init-param
>
filter
>
<
>
<
filter-name
>loginfilter
filter-name
>
<
url-pattern
>/company/*
url-pattern
>
>
而struts-config.xml中的配置如下
<
action
attribute="loginform"
name="loginform"
path="/company/login"
scope="request"
type="com.zq.struts.action.loginaction"
>
<
forward
name="scuess"
path="/company/main.jsp"
redirect="true"
/>
<
forward
name="fail"
path="/index.jsp"
redirect="true"
/>
action
>
那麼在過濾company目錄下的資源時候,company/login.do也會進行過濾,如果此時不做處理,則會出現死迴圈的現象
我是這樣做的,但好像還是有一點不合理
public
void dofilter(servletrequest arg0, servletresponse arg1,
filterchain arg2) throws ioexception, servletexception
}arg2.dofilter(arg0, arg1);}
也可以在web.xml配置filter初始化引數,在filter中得到初始化引數,並進行處理
author:jack zhang
技術總結 使用Filter進行XSS過濾
一般來說,系統進行表單資料處理時都需要解決類似xss攻擊以及轉義這樣的問題,這樣的問題具有普遍性,不可能在每個提交表單資料的處理中都加入重複的處理 通常通過 filter 或 interceptor 來攔截處理。這裡介紹下通過 filter 進行xss過濾的方法。流程 使用filter攔截請求,將普...
使用Response Filter過濾非法詞彙
一般資訊發布 論壇等均具有實現非法詞彙過濾功能,即當使用者錄入非法詞彙時,進行替換,使其無法顯示到頁面上,針對此種功能,通常採用的時,在讀取 時,在讀到非法詞彙後,進行替換。這樣做的好處是不用將非法詞彙存入資料庫,缺點是要在每次讀取時都要進行替換。另一種解決方案是在輸出時過濾掉非常詞 匯,優點是只要...
Lucene使用Filter搜尋過濾
排序查詢 param querystr 查詢匹配的字串 param domain 查詢內容的域 param filter 過濾器 public void searchbyfilter string querystr,string domain,filter filter else 輸出資訊 scor...