天天看點

更改靜态資源過濾方式。

項目中,考慮了3種過濾資源方式。

1、在web.xml中過濾。

配置如下:

配置servlet-mapping,針對請求進行過濾和攔截。

攔截方式,針對請求,對字尾進行比對。

*.js,*.css

以下部分為轉載其他文章,幫助了解。

在servlet容器中,隻有servlet才能處理請求。比如在tomcat容器中,即使是jsp,也會被編譯成servlet,當通路靜态資源,比如a.jpg的時候,也是由servlet來處理,在tomcat中,對于這種資源的處理servlet就是default,上面的這段配置,就是tomcat對靜态資源的處理配置,該配置要寫在dispatcherservlet的前面,讓defaultservlet先于dispatcherservlet攔截生效。不同的servlet容器,處理靜态資源的servlet的名字不太一樣:tomcat、jetty、jboss、glassfish預設的servlet名字是default,weblogic預設的servlet名字是fileservlet,websphere預設的servlet名字是simplefileservlet。

tomcat, jetty, jboss, and

glassfish  預設 servlet的名字 -- "default"

google app engine 預設 servlet的名字 -- "_ah_default"

resin 預設 servlet的名字 -- "resin-file"

weblogic 預設 servlet的名字  -- "fileservlet"

websphere  預設 servlet的名字 -- "simplefileservlet" 

2、在applicationcontext.xml中進行配置。本篇文章不完善,補充文章位址為:

<a target="_blank" href="http://blog.csdn.net/u012246342/article/details/52366514">靜态資源過濾方式補充</a>

配置方式如下:

但是,配置 這個 标簽 mvc:resources,需要在beans中:

beans配置中,需要新增:

在xsi:schemalocation中,增加

關于beans配置,可以了解我寫的另一篇文章:

<a target="_blank" href="http://blog.csdn.net/u012246342/article/details/52230456">http://blog.csdn.net/u012246342/article/details/52230456</a>

增加對mvc标簽的支援。

這個配置是對檔案進行過濾,其實也是請求,攔截的是請求的路徑。

從webapp/下

/pages/js/**    /js/**  /css/**等等。

3、自定義攔截器,對所有請求進行攔截,并根據配置實施過濾。

首先,在web.xml中,配置如下。

關于init-param,看我轉載的另一篇文章:裡面對filter有更詳細的描述,文章是完全轉載。

<a target="_blank" href="http://blog.csdn.net/u012246342/article/details/52228642">http://blog.csdn.net/u012246342/article/details/52228642</a>

增加過濾後,需要自己實作filter。

代碼如下:

代碼很簡單,我稍微說一下。

在init初始化方法中,擷取所有的ignores 配置的參數。放到 set集合中,在請求被攔截之後,取出請求的url,與set中的所有請求進行比對。

如果有相同,則不攔截。

如果不同,則驗證使用者是否登入,

如果沒有登入,跳轉登入頁面,

如果已經登入,不攔截。

以上是三種靜态資源過濾方式。如果有其他更好的方式,請共享到任意論壇部落格,友善更好的交流,也可以聯系我,我更改本篇文章,引用你的方式,當然,肯定會标注好引用來源。

寫部落格,是為了更好的技術交流。

qq:1286238812.