Java教程之SpringMVC的請求和響應
前言
前面我們學習了SpringMVC的基本配置,接下來一個非常重要的知識點是如何接受使用者的請求以及如何將資料傳送給使用者。
獲得請求引數
獲得頁面引數的幾種方式
1)透過引數名獲得
給控制器的方法設定引數名和表單name相同
2)透過@RequestParam("引數名")註解設定引數
@RequestParam("表單元素的name") 引數型別 引數名
3)自動裝箱,建立屬性名和表單名稱一樣的類
把類作為方法的引數
透過引數名獲得
頁面表單:
<form action=”/user/login” method=”post”>
<input type=”text” name=”username”><br>
<input type=”password” name=”password”><br>
<input type=”submit” value=”登入”><br>
</form>
控制器:
@Controller
@RequestMapping(“/user”)
public class UserController{
@RequestMapping(“/login”)
public String login(String username,String password){
System.out.println(“username : ” + username);
System.out.println(“password: ” + password);
return “index”;
}
}
注意:這裡login方法的引數名必須和表單元素的name屬性一致
透過@RequestParam("引數名")註解設定引數
控制器:
@Controller
@RequestMapping(“/user”)
public class UserController{
@RequestMapping(“/login”)
public String login(@RequestParam(“username”)String name,
@RequestParam(“password”)String pwd){
System.out.println(“username : ” + name);
System.out.println(“password: ” + pwd);
return “index”;
}
}
注意:這裡login方法的引數名必須和表單元素的name屬性不需要一致,只需要在引數前面的註解@RequestParam中設定表單元素的名稱就可以了。
自動裝箱,建立屬性名和表單名稱一樣的類
定義User類:
public class User{
private String username;
private String password;
省略get、set方法
}
控制器:
@Controller
@RequestMapping(“/user”)
public class UserController{
@RequestMapping(“/login”)
public String login(User user){
System.out.println(“username : ” + user.getName());
System.out.println(“password: ” + user.getPassword());
return “index”;
}
}
注意:login方法的引數使用了自定義類,該類的屬性名稱必須和表單元素名稱一致,必須提供get和set方法。
將資料返回給頁面
前面我們瞭解瞭如何從頁面獲取資料,下面我們將學習如何將資料返回給頁面。
1)透過Map集合
在方法的引數中,新增Map集合,把資料存入集合
2)透過Model模型
在方法的引數中,新增Model引數,使用Model的addAttribute("名稱",值) 新增資料
3)透過請求物件、Session物件
在方法中新增HttpServletRequest引數或HttpSession引數
透過Map集合
在index.jsp頁面中使用EL表示式來繫結資料:
<h2>你好,歡迎 ${username}</h2>
控制器:
@Controller
@RequestMapping(“/user”)
public class UserController{
@RequestMapping(“/login”)
public String login(@RequestParam(“username”)String name,
@RequestParam(“password”)String pwd,Map<String,String> map){
System.out.println(“username : ” + name);
System.out.println(“password: ” + pwd);
map.put(“username”,name);
return “index”;
}
}
注意:Map集合可以作為login方法的引數放在任意位置,在集合中存入的鍵username將是EL表示式${username}對應的名稱,集合中存入的值會在頁面中顯示出來。
透過Model模型
@Controller
@RequestMapping(“/user”)
public class UserController{
@RequestMapping(“/login”)
public String login(@RequestParam(“username”)String name,
@RequestParam(“password”)String pwd,Model model){
System.out.println(“username : ” + name);
System.out.println(“password: ” + pwd);
model.addAttribute(“username”,name);
return “index”;
}
}
注意:這裡使用的是Mode物件,此物件的作用類似於前面的Map集合,不過它是專門用於儲存資料,然後傳送給頁面的,實際開發中用得更多。
透過請求物件、Session物件
控制器:
@Controller
@RequestMapping(“/user”)
public class UserController{
@RequestMapping(“/login”)
public String login(@RequestParam(“username”)String name,
@RequestParam(“password”)String pwd,HttpServletRequest req){
System.out.println(“username : ” + name);
System.out.println(“password: ” + pwd);
req.setAttribute(“username”,name);
return “index”;
}
}
注意:這裡使用了JavaWeb中常用的HttpServletRequest請求物件,用於將資料傳遞給頁面,也可以使用HttpSession物件,HttpSession中的物件在使用者的所有元件共享,物件儲存在記憶體的時間比較長,所以儘量使用HttpServletRequest,以更加高效的使用記憶體。
總結
本章我們學習了控制器從頁面獲得資料的幾種方式,以及將資料從控制器返回給頁面的幾種方式。透過本章的學習我們掌握了SpringMVC運算元據的基本方法,結合資料庫我們將能實現一個基本的JavaWeb專案。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31548651/viewspace-2769713/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 學習SpringMVC必知必會(3)~springmvc的請求和響應SpringMVC
- 請求和響應
- 好程式設計師Java學習路線分享SpringMVC之請求和響應程式設計師JavaSpringMVC
- fiddler修改請求和響應
- JavaScript Fetch API請求和響應JavaScriptAPI
- 【JavaWeb】請求和響應Request&ResponseJavaWeb
- SpringMVC 入門、請求、響應SpringMVC
- .net core 雜記:WebAPI的XML請求和響應WebAPIXML
- Fiddler如何自動修改請求和響應包
- Spring Cloud Gateway修改請求和響應body的內容SpringCloudGateway
- Spring系列 SpringMVC的請求與資料響應SpringMVC
- 前端快閃四: 攔截axios請求和響應前端iOS
- Spring boot 與 json_schema ,請求和響應 校驗Spring BootJSON
- Spring Boot中如何擴充套件XML請求和響應的支援Spring Boot套件XML
- JavaScript 中如何攔截全域性 Fetch API 的請求和響應?JavaScriptAPI
- Java語言搭建介面自動化框架學習一(單介面請求和響應)Java框架
- springboot+aop切點記錄請求和響應資訊Spring Boot
- SpringMVC處理請求頭、響應頭、編碼行為SpringMVC
- Angular 裡 HTTP 請求和響應結構的攔截器(interceptors)在 SAP Spartacus 中的應用AngularHTTP
- SpringMVC(1)- 入門案例、基本配置、請求、響應、Servlet相關介面SpringMVCServlet
- Salesforce Integration 概覽(二) Remote Process Invocation—Request and Reply(遠端程式呼叫--請求和響應)SalesforceREM
- get請求和post請求的區別
- HTTP的請求與響應HTTP
- uni-app的POST請求和GET請求APP
- java Servlet結構概述3之請求響應1JavaServlet
- HTTP 請求與響應HTTP
- Http請求與響應HTTP
- ThinkPHP 請求與響應PHP
- Django基礎教程之請求與相應Django
- 🔥《吐血整理》進階系列教程 - 拿捏 Fiddler 抓包教程 (13)-Fiddler 請求和響應斷點除錯斷點除錯
- http請求頭與響應頭的應用HTTP
- Django REST framework的請求與響應DjangoRESTFramework
- vue 發起get請求和post請求Vue
- Go如何響應http請求?GoHTTP
- DRF之請求與響應
- Spring MVC能響應HTTP請求的原因?SpringMVCHTTP
- 請教怎樣測試工具類的 windows 應用程式?Windows
- Wireshark的HTTP請求包和響應包如何對應HTTP