SpringMVC學習筆記(三)-SSM整合開發
SpringMVC學習筆記(三)-SSM整合開發
攔截引數的配置
-
<url-pattern>/</url-pattern>
:將對應攔截引數的請求交予指定的servlet處理 -
當攔截引數為*.xx時,靜態資源等交予Tomcat處理,匹配字尾的交予DispatcherServlet處理
-
Tomcat的DefaultServlet,處理靜態資源及沒有被其他Servlet匹配的請求
<servlet> <servlet-name>default</servlet-name> <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class> <init-param> <param-name>debug</param-name> <param-value>0</param-value> </init-param> <init-param> <param-name>listings</param-name> <param-value>false</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>
-
-
當攔截器引數設定為
/
時,DispatcherServlet將替代Tomcat的DefaultServlet,預設情況下js、圖片、html等靜態資源都沒有配置對應的控制器物件,導致不能正常訪問 -
使用
<mvc:default-servlet-handler />
標籤後,SpringMVC將在容器中呼叫DefaultServletHttpRequestHandler將靜態資源的訪問交予伺服器預設的處理器處理,此標籤與@RequestMapping註解存在一定的衝突,需要加入註解驅動標籤<mvc:annotation-driven/>
解決 -
使用
<mvc:resources mapping="/Xxx/Xxx" location="/Xxx/"/>
<!--可以使用萬用字元 ** --> <mvc:resources mapping="/resource/**" location="/resource/"/>
SSM整合開發
-
由於SpringMVC本身就是Spring的一部分,其並不需要專門整合,SSM整合實質是將Mbatis整合入Spring,實現方式有兩種:1.基於XML配置方式;2.基於註解的方式
-
將物件交予容器管理,存在的兩個容器分別為:1.Spring容器;2.SpringMVC容器(管理控制器物件)
-
Spring容器的建立
-
容器物件是WebApplicationContext,將會讀取指定的檔案,將bean標籤與註解標識的物件放入容器
-
<listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener>
-
-
SpringMVC容器的建立
-
前端控制器DispatcherServlet將會呼叫Servlet的init()方法建立容器物件,容器物件是WebApplicationContext,將會讀取配置檔案,將控制權物件放入容器中進行管理
-
<servlet> <servlet-name>dispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:springmvc.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet>
-
-
SpringMVC是Spring的子容器,可以訪問父容器的Service或Dao物件