springMVC簡介
springMVC又 叫Spring web mvc,是Spring框架中的一部分,是Spring3.0后發布的,
SpringMVC框架的優點
1、基于MVC架構模式:MVC架構模式
2、容易理解上手快,使用簡單:可以開發一個注解的SpringMVC專案,SpringMVC也是輕量級的框架,jar包很小,不依賴特定的介面和類,
3、作為Spring的一部分,能夠使用Spring框架的IOC容器和Aop編程,方便整合Strtus、MyBatis、Hibernate、JPA等其他框架,
4、SpringMVC強化注解的使用,在控制器,Service、Dao都可以使用注解,方便靈活,使用@Controller創建物件容器,@Service創建業務物件,@AutoWired或者@Resource在控制器類中注入Service,Service類中注入Dao,
第一個SpringMVC程式
所謂SpringMVC注解式開發是指,在代碼中通過對類與方法的注解,便可以完成處理器在springMVC容器的注冊,注冊是開發的重點
步驟
第一步:創建maven-web專案

第二步:在pom.xml中添加依賴和插件
加入servlet、jsp、springmvc依賴
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<!--加入servlet依賴-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version> <scope>provided</scope>
</dependency>
<!-- jsp依賴 -->
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.2.1-b03</version>
<scope>provided</scope>
</dependency>
<!--加入springMVC依賴-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.5.RELEASE</version>
</dependency>
</dependencies>
加入插件
<resources>
<resource>
<directory>src/main/java</directory><!--所在的目錄-->
<includes><!--包括目錄下的.properties,.xml 檔案都會掃描到-->
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
第三步注冊中央調度器
中央調度器為一個Servlet,名稱為DispatcherServlet中央調度器的全限定性類名在匯入的 Jar 檔案 spring-webmvc-5.2.5.RELEASE.jar 的第一個包 org.springframework.web.servlet下可找到
<load-on-startup/>標簽:
在<servlet/>中添加<load-on-startup/>的作用是,標記是否在Web服務器(這里是Tomcat)啟動時會創建這個 Servlet 實體,即是否在 Web 服務器啟動時呼叫執行該 Servlet 的 init()方法,而不是在真正訪問時才創建,它的值必須是一個整數,
當值大于等于 0 時,表示容器在啟動時就加載并初始化這個 servlet,數值越小,該 Servlet的優先級就越高,其被創建的也就越早;
當值小于 0 或者沒有指定時,則表示該 Servlet 在真正被使用時才會去創建,
當值相同時,容器會自己選擇創建順序,
<url-pattern/>標簽:
可以寫為 / ,建議寫為*.do 的形式
組態檔的位置和名稱
注冊完畢后,可直接在服務器上發布運行,此時,訪問瀏覽器頁面,控制臺均會拋出FileNotFoundException 例外,即默認要從專案根下的 WEB-INF 目錄下找名稱為 Servlet 名稱-servlet.xml 的組態檔,這里的“Servlet 名稱”指的是注冊中央調度器<servlet-name/>標簽中指定的 Servlet 的 name 值,本例組態檔名為 springmvc-servlet.xml,
而一般情況下,組態檔是放在類路徑下的,即resources目錄下,所以在注冊中央調度器,需要為sprigMVC組態檔路徑
<!--配置springMVC核心容器物件DispatcherServlet-->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationcontext-servlet.xml</param-value>
</init-param>
<!--在Tomcat啟動后,創建servlet物件
load-on-startup:表示Tomcat啟動后創建物件的順序,它的值是整數,數值越小,Tomcat創建物件的事件越早,大于等于0
-->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<!--可以寫為 / ,建議寫為*.do 的形式-->
<url-pattern>*.do</url-pattern>
</servlet-mapping>
第四步:創建springMVC組態檔
宣告組件掃描器
配置視圖決議器
SpringMVC 框架為了避免對于請求資源路徑與擴展名上的冗余,在視圖決議器InternalResouceViewResolver 中引入了請求的前輟與后輟,而 ModelAndView 中只需給出要跳轉頁面的檔案名即可,對于具體的檔案路徑與檔案擴展名,視圖決議器會自動完成拼接,
<?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 http://www.springframework.org/schema/context/spring-context.xsd">
<!--開啟注解掃描-->
<context:component-scan base-package="school.xauat"></context:component-scan>
<!--配置視圖決議器-->
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/view/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
</beans>
第五步:創建Controller類
使用@Controller注解
使用@RequestMapping注解
@RequestMapping:(可以加載在類上面,也可以加載在方法上,若類和方法上都加的有,先訪問類,再訪問方法)
設定請求映射,把請求和控制層中的方法設定映射關系
當請求路徑和@RequestMapping的value屬性值一樣時,則該注解所標注的方法即為處理請求的方法
method:用來設定請求方式,只有客戶端發送請求的方式和method的值一致,才能處理請求

請求方式:GET 查詢 POST 添加 PUT 修改 DELETE 洗掉
params:用來設定客戶端傳到服務器的資料,支持運算式
-username:必須包含username引數
-!username:不能包含username引數
-username = admin :username必須等于admin
-username != admin :username必須不等于admin
headers:用來設定請求頭資訊,所發送的請求的請求頭資訊一定要和headers屬性中所設定的一致
@Controller()
public class TestServlet {
@RequestMapping(value = "/some.do")
public ModelAndView doSome(){
//表示本次請求的處理結果
//Model:資料,請求處理完成后,要顯示給用戶
//View:視圖,比如jsp等
ModelAndView mv = new ModelAndView();
//添加資料,底層執行request.setRequestContext();
mv.addObject("msg","歡迎使用SpringMVC做web專案");
mv.addObject("fun","執行doSome方法");
//指定視圖,指定視圖的完整路徑
//框架對視圖執行forward操作
mv.setViewName("show");
return mv;
}
}
第六步:創建主頁面和定義目標頁面
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<a href="some.do">發起some.do的請求</a>
</body>
</html>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
SpringMVC的第一個專案
<h3>msg資料:${msg}</h3><br/>
<h3>fun資料:${fun}</h3>
</body>
</html>
使用SpringMVC框架web請求處理順序

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/250254.html
標籤:其他
上一篇:倪文迪陪你學藍橋杯2021寒假每日一題:1.17日(2018省賽A組第5題)
下一篇:Typora初步學習
