Spring攔截器
為什麼SpringMVC沒有像Struts 2.x那樣的攔截器棧?
從我個人角度來看,我認為不使用攔截器棧會更好。
首先必須要明确的一點,在Spring的設計之中,它實際上隻是更加忠實于原始的MVC技術的提升。如果要處理請求,使用DisptacherServlet完成,這一點要比Struts 2.x使用Filter更好。
Struts 2.x占用了過濾器的過程,而這一過程對開發很不友善,在實際的開發裡面過濾器可能需要完成許多輔助功能,Struts 2.x做的時候考慮到Struts 1.x的區分,是以沒有使用Servlet。如果使用者要實作一些AOP有關的設計,那該怎麼做呢?在這樣的情況下,Struts 2.x提出了攔截器,但由于Struts2.x攔截器 裡面承載的内容過多,提出了攔截器棧。
如果在傳統的MVC開發裡面,需要進行攔截的操作控制,那麼最簡化的處理是使用多個過濾器完成。是以SpringMVC也采用了同樣的模式來進行處理,它的攔截器是基于配置的方式完成,按照過濾器的使用模式,如果需要多個攔截器,就在配置裡面編寫多個攔截器的配置即可,因為所有的攔截器會按照路徑攔截。
更多專業知識,面試技巧就在面試一點通,持續更新中……
感謝浏覽~
本内容來源于
阿裡雲大學-Java面試技巧