我是在整合 ssm 框架時發現的問題,這個問題以前我從沒深究過它 ——/
和/*
的區別。
學過 spring mvc 的小夥伴們肯定還記得,我們在配置前端控制器和字符集過濾器時,通常在web.xml
中是這樣配置的:
>
>
mvc-dispatcherservlet-name
>
>
org.springframework.web.servlet.dispatcherservletservlet-class
>
>
>
contextconfiglocationparam-name
>
>
classpath:springmvc.xmlparam-value
>
init-param
>
servlet
>
>
>
mvc-dispatcherservlet-name
>
>
/url-pattern
>
>
>
>
characterencodingfilterfilter-name
>
>
org.springframework.web.filter.characterencodingfilterfilter-class
>
>
>
encodingparam-name
>
>
utf-8param-value
>
init-param
>
filter
>
>
>
characterencodingfilterfilter-name
>
>
/*url-pattern
>
>
不知道大家有沒有發現,在前端控制器中
配置的是/
,將攔截所有請求;字符集過濾器中
配置的是/*
,也將過濾所有請求。不細看的話,它們好像作用都一樣,那麼大家有沒有想過既然都是攔截或過濾所有請求,那麼為什麼寫法會不同呢?
關於這個問題我在網上查了很多資料,基本上他們的回答要麼抄襲要麼回答不全面,或者有人都不屑回答這樣問題(他們認為沒有必須研究這個問題),經過我認真的推敲,有些人的答案還是可以借鑑的。
這個問題我們可以回到最原始的servlet和filter,因為前端控制器就是乙個servlet,字符集過濾器就是乙個filter,我從這方面下手,嘗試寫了幾個 demo,發現其實/
和/*
分別在servlet和filter中有不同的意義。並得出下列 結論:
你會發現只要後面有.***
都不會被匹配到。
/*
:它會匹配所有的路徑和頁面,上述的例子均會被匹配到。
部落格中若有不恰當的地方,請您一定要告訴我。前路崎嶇,望我們可以互相幫助,並肩前行!
Spring中與區別
用 local 屬性指定目標其實是指向同一檔案內對應 id 屬性值為此 local 值的索引 local 屬性的值必須和目標bean的id屬性相同。如果同一檔案內沒有匹配的元素,xml解析器將提示錯誤。同樣,如果目標在同一xml檔案內,使用 local 變數是最好的選擇 為了盡可能早地知道錯誤 用 ...
Spring中idref與ref的區別
開始的時候我也以為idref和ref沒有什麼區別。後來在網上google了一下,發現這兩者之間除了名字差不多,效果是完全不一樣的。idref用來將容器內其他bean的id傳給 元素,同時提供錯誤驗證功能。例如 也就是將thetargetbean代表的bean id傳給targetname屬性。所以說...
spring與springmvc的區別與聯絡
一 spring框架的介紹 spring是乙個一站式的框架,提供了表現層 springmvc 到業務層 spring 再到資料層 springdata 的全套解決方案 spring的兩大核心ioc 控制反轉 和aop 面向切面程式設計 更是給我們的程式解耦和 的簡介提供了支援。二 springmvc...