Filter不過濾CSS和JS

jkxqj發表於2015-02-14

Filter是Java Web中用於禁止瀏覽器在未登入的情況下訪問內部網址。

用法就不說了,看了下網上的用法基本都是貼的李剛的那本J2EE書上的程式碼。

需要注意的是,如果你直接設定  <url-pattern>/*</url-pattern>, 那麼你的CSS和JS檔案也會一同被過濾掉。

那麼怎麼樣解決呢?網上又說建一個jspPage的資料夾把jsp頁面放進去然後 設定 <url-pattern>jspPage/*</url-pattern>,我想說這個方法對於簡單的頁面跳轉也許可以,但是遇到帶有導航欄的網站時調整會出現混亂,不可取。

建議做法是:改Filter檔案裡的程式碼 

if( session.getAttribute(“user”)== null && !requestPath.endsWith(loginPage) && !requestPath.endsWith(LoginServlet) &&  !requestPath.endsWith(“.css”)&&!requestPath.endsWith(“.js”) ){
request.setAttribute(“loginError” , “您還沒有登入呢”);

request.getRequestDispatcher(loginPage).forward(request, response);

}


相關文章