2023-01-19 一、SpringMVC簡介 1、SpringMVC是Spring子框架 2、SpringMVC是Spring為“控制層”提供的基於MVC設計理念的優秀的Web框架,是目前最主流的MVC框架。 3、SpringMVC是非侵入式:可以使用註解讓普通java對象,作為請求處理器(Co ...
2023-01-19
一、SpringMVC簡介
1、SpringMVC是Spring子框架
2、SpringMVC是Spring為“控制層”提供的基於MVC設計理念的優秀的Web框架,是目前最主流的MVC框架。
3、SpringMVC是非侵入式:可以使用註解讓普通java對象,作為請求處理器(Controller)
4、即SpringMVC就是來代替Javaweb中的Servlet(處理請求、做出響應)
二、SpringMVC處理請求原理簡圖
三、SpringMVC搭建框架
1、創建工程(web工程)
2、導入jar包
<dependencies> <!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.3.1</version> </dependency> <!-- https://mvnrepository.com/artifact/org.thymeleaf/thymeleaf-spring5 --> <dependency> <groupId>org.thymeleaf</groupId> <artifactId>thymeleaf-spring5</artifactId> <version>3.0.12.RELEASE</version> </dependency> <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>4.0.1</version> <scope>provided</scope> </dependency> </dependencies>
3、編寫配置文件
(1)web.xml註冊DispatcherSerrvlet
①url配置:/
②init-param:contextConfigLocation,設置springmvc.xml配置文件路徑(管理容器對象)
③<load-on-startup>:設置DispatcherServlet優先順序(啟動伺服器時,創建當前Servlet對象)
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version="4.0"> <!-- 註冊DispatcherSerrvlet【前端控制器】--> <servlet> <servlet-name>DispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!-- 設置springmvc,xml配置文件路徑【管理容器對象】--> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:springmvc.xml</param-value> </init-param> <!-- 設置DispatcherServlet優先順序(啟動伺服器時,創建當前Servlet對象)--> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>DispatcherServlet</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app>
(2)springmvc.xml
①開啟組件掃描
②配置視圖解析器(解析視圖(設置視圖首碼&尾碼))
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd"> <!--①開啟組件掃描--> <context:component-scan base-package="com.hh"></context:component-scan> <!--②配置視圖解析器(解析視圖(設置視圖首碼&尾碼))--> <bean class="org.thymeleaf.spring5.view.ThymeleafViewResolver" id="viewResolver"> <!--配置字元集屬性--> <property name="characterEncoding" value="UTF-8"></property> <!--配置模板引擎屬性--> <property name="templateEngine"> <!-- 配置內部bean--> <bean class="org.thymeleaf.spring5.SpringTemplateEngine"> <!--配置模塊解析器屬性--> <property name="templateResolver"> <!--配置內部bean--> <bean class="org.thymeleaf.spring5.templateresolver.SpringResourceTemplateResolver"> <!--配置首碼--> <property name="prefix" value="/WEB-INF/pages/"></property> <!--配置尾碼--> <property name="suffix" value=".html"></property> <!--配置字元集--> <property name="characterEncoding" value="UTF-8"></property> </bean> </property> </bean> </property> </bean> </beans>
4、編寫請求處理器(Controller|Handler)
(1)使用@Controller註解標識請求處理器
@Controller //標識當前類是一個請求處理器類 public class HelloController { /** * 配置url(/),映射到WEB-INF/index.html * @return */ @RequestMapping("/") public String toIndex(){ // /WEB-INF/pages/index.html //物理視圖名 = 視圖首碼 + 邏輯視圖名 + 視圖尾碼 return "index"; } @RequestMapping("/HelloControllerMethod") public String HelloWorld(){ System.out.println("==>HelloController->HelloWorld()!!!"); //返回的是一個邏輯視圖名 return "success"; } }
(2)使用@RequestMapping註解處理方法(URL)
5、測試