springmvc中的***和過濾器相似,但是過濾器是在服務端向後台傳送請求時攔截,而***是在**控制器在處理請求做對映之前。
1、controller
先設定乙個controller層的方法,我們通過呼叫這個方法的時候來體現***。
@controller
public class intercontroller
}
2、***
然後我們再寫個***的方法,他需要繼承介面handlerinterceptor並實現它的方法
public
class
myintercepter
implements
handlerinterceptor
@override
//posthandle是在控制器放回modelandview之前執行,所以我們可以修改他的modelandview返回資訊
// prehandle在自定義控制器處理請求之前執行, true表示放行,false表示攔截
}
這三個方法中最先執行的是prehandle,他用來控制放行或者是攔截,然後就是 aftercompletion與posthandle 他們是在處理器完成後執行的,他們之間有先後順序,posthandle先於aftercompletion執行。
3、xml配置
<
!-- 配置*** interceptors 是***組,他裡面可以配置多個*** --
>
<
!-- 註冊 --
>
//引用乙個容器中的bean標籤
<
!-- 攔截哪些請求 --
>
"/**"
/>
<
!-- 具體的攔截物件 --
***可以有多個***,如果寫多個***方法,我們只需要在配置檔案中配置多個就行
spring是ioc和aop的容器框架,springmvc是基於spring功能之上新增的web框架,想用springmvc必須先依賴spring,所以這裡整合整理一下。
整合這裡我們只需要在web.xml檔案中加入監聽即可
<
!-- 這裡配置spring配置檔案的位置,param-name是固定的,
param-value是檔案位置 這個配置可以省略,如果省略,
系統預設去/
web-
inf/目錄下查詢springa.xml作為spring的配置檔案 --
>
contextconfiglocation<
/param-name>
classpath:springa.xml<
/param-value>
<
/context-param>
class
>org.springframework.web.context.contextloaderlistener<
/listener-
class
>
<
/listener>
這裡contextloaderlistener會比配置的dispatcherservlet先執行。 第六天學習
變數的作用域 區域性變數 在函式內部定義的變數,這個變數只能在函式內部使用,在全域性當中不能使用。使用就報錯了。全域性變數 在函式外部定義的變數,這個變數可以在全域性使用。但是我們一般不推薦使用全域性變數 因為可能會意外的修改掉變數的值。迫不得已不要用全域性變數 衝突處理原則 就近原則。而不是從上到...
學習第六天
還有九天,我就要去參加北大3日遊了。滑稽 像我這樣的蒟蒻去那也就是旅遊模式吧!無所謂了,隨便去考考,說不定有優秀營員呢?滑稽 不可能,絕對不可能 相信自己好了。這麼多天,好像把面試給忘了,雖然有人說面試是瞎 但是還是要準備準備的 明天看吧!還有什麼知識點沒看嗎?我們來看看st表和hash表吧!先看看...
學習android第六天
activity簡介 當在乙個activity中按下返回時,android os會自動銷毀activity物件 當在乙個activity中啟動另乙個activity時,當前activity不會被銷毀,而是被壓入activity棧中 activity的建立 1 自定義類,繼承activity 2 複寫...