項目中,考慮了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.