SpringMVC
一,概述
二、原理:
1.創建form表單
css代碼
2.準備Student類
3.創建啟動類
4,創建數據庫,表
使用JDBC把得到的數據入庫
5.創建StudentController類
6.測試
總結
作用是接受服務器請求并做出響應,是spring的后續產品,使用注解@RestController和@RequestMapping
MVC設計模式:
M是model模型,用來封裝數據
V是view視圖,用來展示數據
C是control控制器,用來控制瀏覽器如何請求,做出數據響應
好處:提高代碼的復用性,松耦合
1.前端控制器DispatcherServlet:當瀏覽器發送請求成功后,充當調度者的角色,負責調度每個組件
2.處理器映射器HandlerMapping:根據請求的url路徑,找到能處理請求的類名和方法名
Url:http://localhost:8080/abc 在HelloControl類中找到abc()
3.處理器適配器HandlerAdaptor:正式處理業務,并返回結果交給DispatcherServlet
4.視圖解析器ViewResolver:找到正確的能展示數據的視圖,準備展示數據
5.視圖渲染view:展示數據
表單form默認提交方式是get,將提交的數據展示在網址上,而post提交方式隱藏了數據在網址上,因此更加的安全,這里使用springMVC來處理post的請求參數
<!DOCTYPEhtml><html><head><metacharset="utf-8"><title>學生管理系統</title><linkrel="stylesheet"href="../css/form.css"/></head><body><!--利用表單,向服務器發送數據,默認是get提交,通過method屬性修改提交方式action屬性,指定提交的位置--><formmethod="post"action="http://localhost:8080/stu/add"><tablewidth="500px"height="300px"><tr><td><h3>學生信息管理系統MIS</h3></td></tr><tr><td>姓名:</td></tr><tr><td><inputclass="a"type="text"placeholder="請輸入姓名..."name="name"/></td></tr><tr><td>年齡:</td></tr><tr><td><inputclass="a"type="number"placeholder="請輸入年齡..."name="age"/></td></tr><tr><td>性別:(單選框)<inputtype="radio"name="sex"value="1"/>男<inputtype="radio"name="sex"value="0"/>女</td></tr><tr><td>愛好:(多選)<inputtype="checkbox"name="hobby"value="ppq"/>乒乓球<inputtype="checkbox"name="hobby"value="ps"/>爬山<inputtype="checkbox"name="hobby"value="cg"/>唱歌</td></tr><tr><td>學歷:(下拉框)<selectname="edu"><optionvalue="1">本科</option><optionvalue="2">碩士</option><optionvalue="3">博士</option><optionvalue="4">???lt;/option></select></td></tr><tr><td>入學日期:</td></tr><tr><td><inputtype="date"name="intime"/></td></tr><tr><td><inputtype="submit"value="保存"/><inputtype="reset"value="取消"/></td></tr></table></form></body></html>
css的三種引入方式
1.行內樣式:通過style屬性引入css樣式
例如:<h2 >行內樣式</h2>
一般實際寫頁面時不提倡,測試的時候可以使用
2,內部樣式表
通過<style></style>標簽,寫在head標簽中
例如:<style> .b{ width: 200px; height: 100px; background-color: #FF69B4; } </style>
3,外部樣式表
創建.css文件,將css樣式寫入其中,然后在html文件中引入,使用link標簽
例如:href是css文件路徑
<linkrel="stylesheet"href="../css/form.css"/>`
我這里使用了外部樣式表的方式,使css代碼和html代碼分離,使結構更加清晰
/*輸入框*//*類選擇器*/.a{width:300px;/*寬度*/height:40px;/*高度*/padding:5px;/*內邊距*/font-size:15px;/*字號*/}/*屬性選擇器*//*修飾提交按鈕*/input[type="submit"]{width:60px;height:30px;background-color:blue;color:#fff;font-size:15px;border-color:blue;}input[type="reset"]{width:60px;height:30px;background-color:hotpink;color:#fff;font-size:15px;border-color:hotpink;}body{font-size:20px;}
頁面還可以用css做得更加美觀哦,這里只是為了測試,如果有興趣還可以自己做得更加好看哦~
packagecn.tedu.pojo;importorg.springframework.format.annotation.DateTimeFormat;importjava.util.Arrays;importjava.util.Date;//@RequestMapping("find")//是Model層,用來封裝數據,就是一個pojo(封裝的屬性+get/set)publicclassStudent{//屬性(成員變量):變量類型變量名//提交數據的類型頁面上name屬性的值//publicStudentfind(){privateStringname;privateIntegerage;//避免一些異常,能用引用類型最好使用引用類型privateIntegersex;privateString[]hobby;privateIntegeredu;//瀏覽器上提交的日期默認是2021/8/12默認是String類型//報錯400,需要把String的日期轉成Date日期,使用注解@DateTimeFormat@DateTimeFormat(pattern="yyyy-MM-dd")privateDateintime;//}//獲取getsettoStringpublicStringgetName(){returnname;}publicvoidsetName(Stringname){this.name=name;}publicIntegergetAge(){returnage;}publicvoidsetAge(Integerage){this.age=age;}publicIntegergetSex(){returnsex;}publicvoidsetSex(Integersex){this.sex=sex;}publicString[]getHobby(){returnhobby;}publicvoidsetHobby(String[]hobby){this.hobby=hobby;}publicIntegergetEdu(){returnedu;}publicvoidsetEdu(Integeredu){this.edu=edu;}publicDategetIntime(){returnintime;}publicvoidsetIntime(Dateintime){this.intime=intime;}@OverridepublicStringtoString(){return"Student{"+"name='"+name+'\''+",age="+age+",sex="+sex+",hobby="+Arrays.toString(hobby)+",edu="+edu+",intime="+intime+'}';}}
一般命名為RunApp,位置必須放在所有資源之上的包里
packagecn.tedu;importorg.springframework.boot.SpringApplication;importorg.springframework.boot.autoconfigure.SpringBootApplication;/**這是一個啟動類*位置:必須在所有資源之上的包里*/@SpringBootApplicationpublicclassRunApp{publicstaticvoidmain(String[]args){SpringApplication.run(RunApp.class);}}
要與Student類相對應,愛好這一字段是數組類型,而MySQL中沒有數組類型,因此使用varchar
注意字符集使用utf-8
首先要在pom.xml中導入jar包(工具包)
<!--添加jdbc的jar包依賴--><dependencies><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.48</version></dependency></dependencies>
下面是將數據入庫的代碼
packagecn.tedu.controller;//是controller層,控制層,用來接受請求和給出響應importcn.tedu.pojo.Student;importorg.springframework.web.bind.annotation.RequestMapping;importorg.springframework.web.bind.annotation.RestController;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.PreparedStatement;importjava.util.Arrays;@RestController@RequestMapping("stu")publicclassStudentController{@RequestMapping("add")publicObjectadd(Students)throwsException{//實現入庫insert--jdbc//注冊驅動Class.forName("com.mysql.jdbc.Driver");//獲取連接Stringurl="jdbc:mysql://localhost:3306/cgb2106";Connectionconn=DriverManager.getConnection(url,"root","123456");//SQL骨架Stringsql="insertintotb_studentvalues(null,?,?,?,?,?,?)";//獲取傳輸器PreparedStatementps=conn.prepareStatement(sql);//給SQL設置值ps.setObject(1,s.getName());ps.setObject(2,s.getAge());ps.setObject(3,s.getSex());//s.getHobby())得到一個數組,不能直接入數據庫,需要變成串ps.setObject(4,Arrays.toString(s.getHobby()));ps.setObject(5,s.getEdu());ps.setObject(6,s.getIntime());//執行SQLps.executeUpdate();//執行增刪改的SQLSystem.out.println("數據插入成功");returns;}}
運行啟動類,執行前端頁面,提交表單數據,并在數據庫中查看數據入庫情況
“SpringMVC的概述及原理介紹”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注本站網站,小編將為大家輸出更多高質量的實用文章!
本文由 貴州做網站公司 整理發布,部分圖文來源于互聯網,如有侵權,請聯系我們刪除,謝謝!
c語言中正確的字符常量是用一對單引號將一個字符括起表示合法的字符常量。例如‘a’。數值包括整型、浮點型。整型可用十進制,八進制,十六進制。八進制前面要加0,后面...
2022年天津專場考試原定于3月19日舉行,受疫情影響確定延期,但目前延期后的考試時間推遲。 符合報名條件的考生,須在規定時間登錄招考資訊網(www.zha...
:喜歡聽,樂意看。指很受歡迎?!巴卣官Y料”喜聞樂見:[ xǐ wén lè jiàn ]詳細解釋1. 【解釋】:喜歡聽,樂意看。指很受歡迎。2. 【示例】:這是...
(資料圖)據胡潤研究院今日公布的2022“胡潤百富榜”顯示,農夫山泉和養生堂創始人鐘睒睒以4550億元第二次成為中國首富,其財富比去年增加650億元。這也是二十多年來中國首富財富的最高紀錄。據胡潤官網信息顯示:68歲的鐘睒睒財富比去年增長650億元,即17%,以4,550億元第二次成為中國首富。旗下兩家上市公司萬泰生物和農夫山泉股價表現穩定,業績增長表現突出。萬泰生物今年上...
相信很多人都看到了如今美容行業的發展。大街小巷,商場里,各種美容機構隨處可見。很多人都知道美容機構利潤可觀,門檻不高。對于剛開始自主創業的人來說,這是一個很好的機會,也是一個很好的市場前景。所以都加入了美容行業。那么,美容機構都有哪些品牌呢?美容店應該加盟哪個品牌?下面,索爾整理了一些資料,供參考。索爾巍子集團有限公司的祛痘護膚品牌,擁有國內領先的祛痘技術,由專業機構研發。自2011年在中國建立門...
(資料圖片)在生活中,很多人都不知道oppo老板段永平是哪里人是什么意思,其實他的意思是非常簡單的,下面就是小編搜索到的oppo老板段永平是哪里人相關的一些知識,我們一起來學習下吧!段永平,男,漢族,江西泰和人,1961年3月生于南昌,1982年浙江大學無線電系畢業后分配到北京 電子管廠 。后攻讀中國 人民大學 經濟系計量 經濟學專業 ,取得碩士學位。曾以創立"小霸王"和"步步高""OPPO"三個...