頁面過濾器製作

2021-08-22 11:17:13 字數 1557 閱讀 5749

需求描述:

在**中有一些網頁是受保護的,即只有規定的使用者才能訪問,而有一些網頁任何人都可以訪問。所以使用者在ie中輸入url提交後,伺服器必須對使用者輸入的url進行分析過慮。

分析:需要考慮的問題:

1、 怎麼攔截使用者輸入的url?

2、 怎麼判斷輸入的url是否是受保護的?

3、 在使用者量很大的情況下,每乙個url都要進行判斷,怎樣提高判斷的效能?

方法:1、 在web.xml中可以定義filter,伺服器會更據filter的定義進行攔截,以及相應的處理。例如下面的配置:

webfilter

com.cyberway.web.filter.webfilter

webfilter

/*filter-name:定義過濾器的名稱

filter-class:定義過濾器處理的類

url-pattern:定義攔截url

/*:表示所有的都攔截

*.jsp:只攔截jsp檔案

2、利用資料庫把需要保護的url儲存起來,每請求一次,檢測一次。

3、如果每請求一次,都去資料庫訪問檢測一次,這樣效能一定會非常差的。**穩定以後受保護的頁面一般更新較少,我們可以第一次請求時,從資料庫中獲取所有的受保護頁面,儲存在hashtble中,然後每次從hashtable中進行檢測。如果更新了受保護頁面,則需更新hashtable。其實就是一種catch模式。事例**如下:

public class urlhelper{

private static urlhelper me;

private hashtable  urltable;

private boolean hasinit=false;

static{

me=new urlhelper();

}private urlhelper()

public urlhelper getinstance()

public boolean ishasinit

public void init()

}//根據url判斷是否上受保護的

public boolean isprotected(string url)

private collection getallurls()

}webfilter類如下:

}//forward乙個頁面

private void setforward(string url, servletrequest request,

servletresponse response) throws exception

Vue 過濾器案例(全域性過濾器和區域性過濾器)

doctype html en utf 8 viewport content width device width,initial scale 1.0 js vue 2.4.0 js script 過濾器 title head 兩個過濾器的名稱都為msgformat,但是控制不同作用,乙個是全域性的...

過濾器(6) 過濾器的攔截

本系列部落格彙總在這裡 過濾器彙總 我們來做個測試,寫乙個過濾器,指定過濾的資源為 index.jsp,然後我們在瀏覽器中直接訪問 index.jsp,你會發現過濾器執行了!但是,當我們在 helloservlet 中使用伺服器端的跳轉request.getrequestdispathcer ind...

hbase 過濾器 scala 過濾器系列

過濾器系列710 c30810 賓士 c64 1500 004 09411 04 004094 3504 h12 110 2 w11102 2 wdk724 wdk725 沃爾沃 3825778 8149064 3825133 3825215 466634 11110668 11711074 477...