SpringMVC學習筆記(一)-概述
阿新 • • 發佈:2020-12-13
SpringMVC學習筆記(一)-概述
- SpringMVC也是一個容器,使用IOC管理介面層中的控制器物件,底層基於Servlet
核心Servlet--DispatcherServlet
- DispatcherServlet是SpringMVC框架的一個Servlet物件,負責接受請求,響應處理結果,父類為HttpServlet,也稱為前端控制器(front controller)
- 在SpringMVC中使用控制器物件代替Servlet行使其職能
- 在servlet的init()方法中,建立SpringMVC中的容器物件
配置
- Maven配置
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.3.1</version> </dependency>
-
web.xml配置
- 預設解析WEB-INF下的
<servlet-name>
-servlet.xml文件,如果沒有會報出初始化異常 - 使用容器WebApplicationContext
<servlet> <servlet-name>dispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!--自定義SpringMVC配置檔案的路徑--> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:springmvc.xml</param-value> </init-param> <!--設定伺服器啟動時即建立容器,數值越小建立物件時間越小--> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>dispatcherServlet</servlet-name> <!--將所有請求交予前端控制器處理, 1.使用自定義拓展名,格式:*.xxx,例如:*.do、*.action、*.mvc等等,在存在設定的拓展名結尾時匹配成功,注意不能使用*.jsp。 2.使用"/" --> <url-pattern>/</url-pattern> </servlet-mapping>
- 預設解析WEB-INF下的
-
@Controller
- 後端控制器,放置於類上,表示建立此類的物件並放置於SpringMVC容器中
-
@RequestMapping
- 請求對映,放置於控制器類(表示類中方法的公共地址)上或者控制器方法上,作用類比於
<url-pattern>
- 控制器中的方法的形參由於設定請求引數,返回值表示本次請求的處理結果
- 屬性:
- value,表示請求的uri地址,唯一且以
/
開始,可配置多個請求攔截路徑 - RequestMethod[] method,設定請求方式,符合指定的請求方式才處理
- value,表示請求的uri地址,唯一且以
- 請求對映,放置於控制器類(表示類中方法的公共地址)上或者控制器方法上,作用類比於
-
ModelAndView
- 模型和檢視,代表本次請求的處理結果即資料和檢視
- 方法:
- mv.addObject(),設定資料,在框架的後續處理中呼叫request.setAttribute()
- mv.setViewName(),設定檢視,值應是檢視的完整路徑,後續使用request.getRequestDispatcher()轉發
-
SpringMVC請求的處理過程
-
發起請求-->Tomcat接受請求-->DispatcherServlet排程(配置了攔截路徑)-->分配控制器-->控制器方法處理返回結果
-
將訪問頁面資源置於WEB-INF下用於控制非正常訪問
-
配置檢視解析器用於簡化操作(可選):
-
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <!--字首--> <property name="prefix" value="/WEB-INF/pages/"/> <!--字尾--> <property name="suffix" value=".jsp"/> </bean>
-
若配置了檢視解析器,此時檢視的值設定為檢視的邏輯名
-
-