知識(shí)
不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價(jià)值,我們?cè)谧非笃湟曈X表現(xiàn)的同時(shí),更側(cè)重于功能的便捷,營銷的便利,運(yùn)營的高效,讓網(wǎng)站成為營銷工具,讓軟件能切實(shí)提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序?yàn)楹笃谏?jí)提供便捷的支持!
SpringMVC概念和第一個(gè)程序
發(fā)表時(shí)間:2020-10-19
發(fā)布人:葵宇科技
瀏覽次數(shù):70
根據(jù)B站視潑魅整頓:https://www.bilibili.com/video/BV1Mt411G7A8?p=1
文┞仿目次
- 1、SringMVC 概念
- 1.1、三層架構(gòu)
- 1.2、MVC模型
- 1.3、第一個(gè)SpringMVC法度榜樣
- 1.4、第一個(gè)SpringMVC法度榜樣履行流程
- 1.5、RequestMapping注解
1、SringMVC 概念
1.1、三層架構(gòu)
1、我們開辟架構(gòu)一般都是基于兩種情勢(shì):
一種是 Client/Server 架構(gòu)(C/S架構(gòu)),也就是客戶端/辦事器;
另一種是 Browser/Server 架構(gòu)(B/S架構(gòu)),也就是瀏覽器/辦事器。
2、在JavaEE開辟種,幾乎全都是基于B/S架構(gòu)的開辟。在B/S架構(gòu)中,又分成了三層架構(gòu)。
3、三層架構(gòu)
表示層:web層,用來和客戶端進(jìn)行數(shù)據(jù)交互的,表示層一般采取MVC設(shè)計(jì)模型。
營業(yè)層:寫營業(yè)邏輯代碼
持久層:用來操作數(shù)據(jù)庫的
1.2、MVC模型
1、MVC是模型(model)-視圖(view)-控制器(controller)的縮寫,模型視圖控制器。
2、Model
:數(shù)據(jù)模型,JavaBean的類,用來進(jìn)行數(shù)據(jù)封裝。
3、View
:指用JSP、HTML來站視數(shù)據(jù)給用戶
4、Controller
:用來接收用戶的請(qǐng)求,全部流程的┞菲握器。
5、角色:
前端控制器(DispatcherServlet)
處理映射器(HandlerMapping)
處理適配器(HandlerAdapter)
視圖解析器(ViewResolver)
處理器或頁面控制器(Controller)
驗(yàn)證器(Validator)
敕令對(duì)象(Command)
表單對(duì)象(From Object)
1.3、第一個(gè)SpringMVC法度榜樣
步調(diào):
1、建立一個(gè)maven項(xiàng)目,勾選web框架,創(chuàng)建java包和resource包,右擊,把它們作為source root和resource root。
2、導(dǎo)入pom依附坐標(biāo),在resources目次下,新建設(shè)備文件springmvc.xml。
3、編寫index.jsp,在web.xml中添加攔截器。
4、編寫controller類,導(dǎo)入tomcat辦事器。
5、運(yùn)行測(cè)試
- 全部項(xiàng)目構(gòu)造
具體步調(diào):
1、建立一個(gè)maven項(xiàng)目,勾選web框架,創(chuàng)建java包和resource包,右擊,把它們作為source root和resource root,如下圖。
2、導(dǎo)入pom依附坐標(biāo),在resources目次下,新建設(shè)備文件springmvc.xml。
pom依附
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>5.2.9.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.9.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.2.9.RELEASE</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jsp-api</artifactId>
<version>2.0</version>
</dependency>
springmvc.xml設(shè)備文件。因?yàn)橐_啟注解掃描和用mvc,所以要加上mvc和context,添加如下圖。
完全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:mvc="http://www.springframework.org/schema/mvc"
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/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<!--開啟注解掃描-->
<context:component-scan base-package="com.lu"></context:component-scan>
<!--視圖解析器-->
<bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/pages/"/>
<property name="suffix" value=".jsp"/>
</bean>
<!--開啟SpringMVC框架注解的支撐-->
<mvc:annotation-driven/>
</beans>
3、編寫index.jsp,在web.xml中添加攔截器。
index.jsp中在第一行添加,防止亂碼;在body標(biāo)簽中添加a標(biāo)簽。
<%--防止中文亂碼--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h3>入門法度榜樣</h3>
<a href="hello">入門法度榜樣</a>
</body>
</html>
在web.xml中,添加攔截器和加載設(shè)備文件
<servlet>
<servlet-name>dispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!--加載springmvc設(shè)備文件-->
<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>
<url-pattern>/</url-pattern>
</servlet-mapping>
load-on-startup
元素標(biāo)記容器是否應(yīng)當(dāng)在web應(yīng)用法度榜樣啟動(dòng)的時(shí)刻就加載這個(gè)servlet
,(實(shí)例化并調(diào)用其init()辦法)。- 它的值必須是一個(gè)整數(shù),表示servlet被加載的先后次序。
- 如不雅該元素的
值為負(fù)數(shù)或者沒有設(shè)置
,則容器會(huì)當(dāng)Servlet被請(qǐng)求時(shí)再加載
。- 如不雅值為
正整數(shù)或者0時(shí)
,表示容器在應(yīng)用啟動(dòng)時(shí)就加載并初始化這個(gè)servlet,值袈浣小,servlet的優(yōu)先級(jí)越高,就越先被加載
。值雷同時(shí),容器就會(huì)本身選擇次序來加載。
4、編寫controller類,導(dǎo)入tomcat辦事器。
編寫類HelloController
//控制器
@Controller
public class HelloController {
@RequestMapping(path = "/hello")
public String syaHello(){
System.out.println("Hello SpringMVC!");
return "success";
}
}
返回的是一個(gè)success界面。在WEB-INF包下邊建一個(gè)pages包,在包瑯綾擎建一個(gè)success.jsp,作為一個(gè)點(diǎn)擊后的結(jié)不雅,在springmvc.xml中也加了視圖解析器,為的是可以找到這個(gè)文件。
編寫success.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h3>入門成功</h3>
</body>
</html>
怎么導(dǎo)入tomcat,具體看這篇文┞仿:https://blog.csdn.net/qq_42524288/article/details/103304138
5、運(yùn)行測(cè)試
運(yùn)行后界面:
點(diǎn)擊入門法度榜樣后跳轉(zhuǎn)到hello界面:
1.4、第一個(gè)SpringMVC法度榜樣履行流程
1.5、RequestMapping注解
RequestMapping是一個(gè)用來處理請(qǐng)求地址映射的注解。
可以感化在類上和辦法上。感化在類上,類中的辦法都是以該路徑作為父類路徑。
RequestMapping注解有六個(gè)屬性
-
value
:指定請(qǐng)求的url。它和path屬性的感化一樣。 -
method
:指定請(qǐng)求的方法。例如GET、POST、PUT、DELETE等。 -
params
:指定請(qǐng)求中必須包含某些參數(shù)值是,才讓該辦法處理。 -
headers
:用于指定限制請(qǐng)求消息頭的前提。
在index.jsp添加標(biāo)簽:
<a href="testRequestMapping">testRequestMapping</a>
在測(cè)試類HelloController中添加::
//請(qǐng)求方法為post
//@RequestMapping(value = "/testRequestMapping", method = {RequestMethod.POST})
//請(qǐng)求參數(shù)必須包含username=lu,不然請(qǐng)求掉敗
//@RequestMapping(value = "/testRequestMapping",params = {"username=lu"})
//請(qǐng)求頭必須包含Accept,不然請(qǐng)求掉敗
@RequestMapping(value = "/testRequestMapping",headers = {"Accept"})
public String testRequestMapping(){
System.out.println("測(cè)試RequestMapping...");
return "success";
}
相關(guān)案例查看更多
相關(guān)閱讀
- SEO
- 網(wǎng)站建設(shè)招商
- 云南網(wǎng)站建設(shè)報(bào)價(jià)
- 昆明小程序哪家好
- python開發(fā)小程序
- 制作一個(gè)小程序
- 小程序開發(fā)
- 網(wǎng)站制作哪家好
- 云南網(wǎng)站建設(shè)公司哪家好
- 網(wǎng)站優(yōu)化公司
- 小程序開發(fā)平臺(tái)前十名
- web開發(fā)
- 云南網(wǎng)站建設(shè)首頁
- 云南小程序設(shè)計(jì)
- 汽車報(bào)廢系統(tǒng)
- 報(bào)廢車拆解軟件
- 云南網(wǎng)站建設(shè)電話
- 汽車報(bào)廢軟件
- 云南網(wǎng)站建設(shè)案例
- 昆明網(wǎng)站制作
- 小程序表單
- 昆明做網(wǎng)站
- 企業(yè)網(wǎng)站
- 云南旅游網(wǎng)站建設(shè)
- 關(guān)鍵詞快速排名
- 網(wǎng)絡(luò)公司電話
- 專業(yè)網(wǎng)站建設(shè)公司
- 網(wǎng)站建設(shè)首頁
- 云南網(wǎng)站建設(shè)費(fèi)用
- 汽車報(bào)廢回收