1.Spring Web MVC 創(chuàng)建+配置+Hibernate+定義控制器

8.19? ? 項(xiàng)目maven_springmvc

https://www.w3cschool.cn/wkspring/9pf81ha5.html


項(xiàng)目搭建

1.idea搭建一個(gè)maven項(xiàng)目

2.配置各個(gè)文件家的顏色

3.設(shè)置git

4.pom里導(dǎo)入依賴:在項(xiàng)目里復(fù)制

注意在這寫版本號(hào)

因?yàn)橛锌赡苡械囊蕾囈冒姹咎?hào)

5.程序啟動(dòng)會(huì)先找web.xml,通過(guò)web.xml的描述文件去加載我們的配置文件

那么要在wenb.xml中寫些東西:

在前端控制器配置中,這段代碼為監(jiān)聽(tīng)的處是話參數(shù),要寫配置文件的地址

6.創(chuàng)建Spring Web MVC的配置文件[servlet-name]-servlet.xml :名字和位置不是默認(rèn)的,別忘了添加監(jiān)聽(tīng)

6.1包掃描:位置填對(duì)

如果有爆紅,創(chuàng)建對(duì)應(yīng)的文件夾名.

連接數(shù)據(jù)庫(kù)的操作:DispatcherServlet 發(fā)送請(qǐng)求到控制器中執(zhí)行特定的功能。@Controller?注釋表明一個(gè)特定類是一個(gè)控制器的作用。@RequestMapping?注釋用于映射 URL 到整個(gè)類或一個(gè)特定的處理方法。



定義控制器 (網(wǎng)址發(fā)送的get請(qǐng)求)

1.DispatcherServlet 發(fā)送請(qǐng)求到控制器中執(zhí)行特定的功能。@Controller?注釋表明一個(gè)特定類是一個(gè)控制器的作用。@RequestMapping?注釋用于映射 URL 到整個(gè)類或一個(gè)特定的處理方法。

也可以這么寫

2.model相當(dāng)于以前servlet的里的參數(shù),也有方法能保存在model中,以后讓頁(yè)面以名值對(duì)的方式獲取、顯示。

3.return的字符串會(huì)去找配置文件中的視圖解析器

會(huì)去找路徑,找到后 字符串拼接.jsp? hello.jsp

4.創(chuàng)建對(duì)應(yīng)的jsp頁(yè)面

根據(jù)在controller存在model的Key 獲取到值,在頁(yè)面顯示

5.配置tomcat測(cè)試一下


定義控制器 (表單的post請(qǐng)求)8.20

1.用jsp的頁(yè)面創(chuàng)建表單要引用Spring提供的標(biāo)簽庫(kù),就要在jsp的上端寫

<%@taglib prefix="form" uri="http://www.springframework.org/tags/form" %>

紫色的就是標(biāo)簽名

注意屬性prefix,它的名字是什么,應(yīng)用標(biāo)簽的時(shí)候下面的標(biāo)簽就是什么

2.在創(chuàng)建表單的時(shí)候,重點(diǎn)的幾個(gè)屬性

????action:屬性規(guī)定當(dāng)提交表單時(shí),向何處發(fā)送表單數(shù)據(jù)。

????method:發(fā)送的請(qǐng)求的方式

????commandName:表單里填的數(shù)據(jù)都存在這個(gè)屬性里,在controller里用@ModelAttribute("user")標(biāo)簽填寫賦值的屬性名獲取賦值給對(duì)象,這個(gè)方法能自動(dòng)把表單填寫的數(shù)據(jù)一次性賦值給一個(gè)bean的對(duì)象。

3.? ?Hibernate? ?的應(yīng)用與特點(diǎn)

Hibernate 是一個(gè)全自動(dòng)化的持久層框架,提供了所有的方法,但是不好添加自己定義的方法,而mybatis就是半自動(dòng)化的框架

3.1創(chuàng)建實(shí)體Bean的標(biāo)簽:需要描述與數(shù)據(jù)庫(kù)的關(guān)系,跟mybatis一樣也是可以自動(dòng)生成的

主鍵的標(biāo)簽??@Column表中的列名,屬性name與數(shù)據(jù)庫(kù)對(duì)應(yīng)? 只在get方法上添加標(biāo)簽

普通列的標(biāo)簽

3.2創(chuàng)建持久層repository接口:因?yàn)榕渲梦募x的持久層的名字不是dao所以根據(jù)配置文件定義的持久層的包掃描 定義了一個(gè)新的名字。repository

一定要繼承Spring中提供的接口 JpaRepository<T,ID>填寫相應(yīng)的參數(shù)

*? ? 第一個(gè)參數(shù)傳了model里的類,第二個(gè)參數(shù)是類里主鍵的類型

*? ? 之后Hibernate會(huì)提供所有的增刪改查的操作

沒(méi)有其他的映射文件 就結(jié)束了

4.創(chuàng)建controller調(diào)用一下試試Hibernate

5.創(chuàng)建對(duì)應(yīng)的顯示數(shù)據(jù)的jsp頁(yè)面 users.jsp

樣式是bootstrap里的,再引用一下js的標(biāo)簽庫(kù),prefix標(biāo)簽的名字,uri標(biāo)簽庫(kù)再lib里的位置,自己引一下就可以


6.在這個(gè)頁(yè)面中如果想刪除數(shù)據(jù),要傳入對(duì)應(yīng)的參數(shù)id

以前的方式 映射網(wǎng)址

現(xiàn)在可以簡(jiǎn)化

7.要在controller里添加對(duì)應(yīng)的刪除的方法,匹配對(duì)應(yīng)的網(wǎng)址

重點(diǎn):@PathVariable

8.刪除之后 重定向??"redirect:映射地址"

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容