您好,登錄后才能下訂單哦!
本篇內(nèi)容介紹了“SpringMVC的概述及原理介紹”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
SpringMVC
一,概述
二、原理:
1.創(chuàng)建form表單
css代碼
2.準備Student類
3.創(chuàng)建啟動類
4,創(chuàng)建數(shù)據(jù)庫,表
使用JDBC把得到的數(shù)據(jù)入庫
5.創(chuàng)建StudentController類
6.測試
總結
作用是接受服務器請求并做出響應,是spring的后續(xù)產(chǎn)品,使用注解@RestController和@RequestMapping
MVC設計模式:
M是model模型,用來封裝數(shù)據(jù)
V是view視圖,用來展示數(shù)據(jù)
C是control控制器,用來控制瀏覽器如何請求,做出數(shù)據(jù)響應
好處:提高代碼的復用性,松耦合
1.前端控制器DispatcherServlet:當瀏覽器發(fā)送請求成功后,充當調(diào)度者的角色,負責調(diào)度每個組件
2.處理器映射器HandlerMapping:根據(jù)請求的url路徑,找到能處理請求的類名和方法名
Url:http://localhost:8080/abc 在HelloControl類中找到abc()
3.處理器適配器HandlerAdaptor:正式處理業(yè)務,并返回結果交給DispatcherServlet
4.視圖解析器ViewResolver:找到正確的能展示數(shù)據(jù)的視圖,準備展示數(shù)據(jù)
5.視圖渲染view:展示數(shù)據(jù)
表單form默認提交方式是get,將提交的數(shù)據(jù)展示在網(wǎng)址上,而post提交方式隱藏了數(shù)據(jù)在網(wǎng)址上,因此更加的安全,這里使用springMVC來處理post的請求參數(shù)
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>學生管理系統(tǒng)</title> <link rel="stylesheet" href="../css/form.css"/> </head> <body> <!-- 利用表單,向服務器發(fā)送數(shù)據(jù), 默認是get提交,通過method屬性修改提交方式 action屬性,指定提交的位置--> <form method="post" action="http://localhost:8080/stu/add"> <table width="500px" height="300px"> <tr><td><h3>學生信息管理系統(tǒng)MIS</h3></td></tr> <tr><td>姓名:</td></tr> <tr><td><input class="a" type="text" placeholder="請輸入姓名..." name="name" /></td></tr> <tr><td>年齡:</td></tr> <tr><td><input class="a" type="number" placeholder="請輸入年齡..." name="age"/></td></tr> <tr><td>性別:(單選框) <input type="radio" name="sex" value="1" />男 <input type="radio" name="sex" value="0" />女 </td></tr> <tr><td>愛好:(多選) <input type="checkbox" name="hobby" value="ppq" />乒乓球 <input type="checkbox" name="hobby" value="ps" />爬山 <input type="checkbox" name="hobby" value="cg" />唱歌 </td></tr> <tr><td>學歷:(下拉框) <select name="edu"> <option value="1">本科</option> <option value="2">碩士</option> <option value="3">博士</option> <option value="4">專科</option> </select> </td></tr> <tr><td>入學日期:</td></tr> <tr><td><input type="date" name="intime" /></td></tr> <tr><td> <input type="submit" value="保存"/ > <input type="reset" value="取消" /> </td></tr> </table> </form> </body> </html>
css的三種引入方式
1.行內(nèi)樣式:通過style屬性引入css樣式
例如:<h2 >行內(nèi)樣式</h2>
一般實際寫頁面時不提倡,測試的時候可以使用
2,內(nèi)部樣式表
通過<style></style>標簽,寫在head標簽中
例如:<style> .b{ width: 200px; height: 100px; background-color: #FF69B4; } </style>
3,外部樣式表
創(chuàng)建.css文件,將css樣式寫入其中,然后在html文件中引入,使用link標簽
例如:href是css文件路徑
<link rel="stylesheet" href="../css/form.css"/>`
我這里使用了外部樣式表的方式,使css代碼和html代碼分離,使結構更加清晰
/* 輸入框 */ /* 類選擇器 */ .a{ width: 300px;/*寬度*/ height: 40px;/*高度*/ padding: 5px;/*內(nèi)邊距*/ 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做得更加美觀哦,這里只是為了測試,如果有興趣還可以自己做得更加好看哦~
package cn.tedu.pojo; import org.springframework.format.annotation.DateTimeFormat; import java.util.Arrays; import java.util.Date; //@RequestMapping("find") //是Model層,用來封裝數(shù)據(jù),就是一個pojo(封裝的屬性+get/set) public class Student { //屬性(成員變量):變量類型 變量名 //提交數(shù)據(jù)的類型 頁面上name屬性的值 // public Student find(){ private String name; private Integer age;//避免一些異常,能用引用類型最好使用引用類型 private Integer sex; private String[] hobby; private Integer edu; //瀏覽器上提交的日期默認是2021/8/12默認是String類型 //報錯400,需要把String的日期轉成Date日期,使用注解 @DateTimeFormat @DateTimeFormat(pattern = "yyyy-MM-dd") private Date intime; // } // 獲取get set toString public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public Integer getSex() { return sex; } public void setSex(Integer sex) { this.sex = sex; } public String[] getHobby() { return hobby; } public void setHobby(String[] hobby) { this.hobby = hobby; } public Integer getEdu() { return edu; } public void setEdu(Integer edu) { this.edu = edu; } public Date getIntime() { return intime; } public void setIntime(Date intime) { this.intime = intime; } @Override public String toString() { return "Student{" + "name='" + name + '\'' + ", age=" + age + ", sex=" + sex + ", hobby=" + Arrays.toString(hobby) + ", edu=" + edu + ", intime=" + intime + '}'; } }
一般命名為RunApp,位置必須放在所有資源之上的包里
package cn.tedu; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; /**這是一個啟動類 * 位置:必須在所有資源之上的包里*/ @SpringBootApplication public class RunApp { public static void main(String[] args) { SpringApplication.run(RunApp.class); } }
要與Student類相對應,愛好這一字段是數(shù)組類型,而MySQL中沒有數(shù)組類型,因此使用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>
下面是將數(shù)據(jù)入庫的代碼
package cn.tedu.controller; //是controller層,控制層,用來接受請求和給出響應 import cn.tedu.pojo.Student; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.util.Arrays; @RestController @RequestMapping("stu") public class StudentController { @RequestMapping("add") public Object add(Student s) throws Exception { //實現(xiàn)入庫insert--jdbc //注冊驅動 Class.forName("com.mysql.jdbc.Driver"); //獲取連接 String url = "jdbc:mysql://localhost:3306/cgb2106"; Connection conn = DriverManager.getConnection(url, "root", "123456"); //SQL骨架 String sql = "insert into tb_student values(null,?,?,?,?,?,?)"; //獲取傳輸器 PreparedStatement ps = conn.prepareStatement(sql); //給SQL設置值 ps.setObject(1, s.getName()); ps.setObject(2, s.getAge()); ps.setObject(3, s.getSex()); //s.getHobby())得到一個數(shù)組,不能直接入數(shù)據(jù)庫,需要變成串 ps.setObject(4, Arrays.toString(s.getHobby())); ps.setObject(5, s.getEdu()); ps.setObject(6, s.getIntime()); //執(zhí)行SQL ps.executeUpdate();//執(zhí)行增刪改的SQL System.out.println("數(shù)據(jù)插入成功"); return s; } }
運行啟動類,執(zhí)行前端頁面,提交表單數(shù)據(jù),并在數(shù)據(jù)庫中查看數(shù)據(jù)入庫情況
“SpringMVC的概述及原理介紹”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關的知識可以關注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。