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
- HTTP 請求和響應格式HTTP
- 好程式設計師Java學習路線分享SpringMVC之請求和響應程式設計師JavaSpringMVC
- fiddler修改請求和響應
- 【JavaWeb】請求和響應Request&ResponseJavaWeb
- JavaScript Fetch API請求和響應JavaScriptAPI
- .net core 雜記:WebAPI的XML請求和響應WebAPIXML
- SpringMVC 入門、請求、響應SpringMVC
- Fiddler如何自動修改請求和響應包
- Spring Cloud Gateway修改請求和響應body的內容SpringCloudGateway
- 前端快閃四: 攔截axios請求和響應前端iOS
- OkHttp3簡單使用教程(一):請求和響應HTTP
- Java語言搭建介面自動化框架學習一(單介面請求和響應)Java框架
- springMVC原始碼學習之:springMVC響應請求的幾種方法SpringMVC原始碼
- vue中用axios攔截器攔截請求和響應VueiOS
- Spring Boot中如何擴充套件XML請求和響應的支援Spring Boot套件XML
- JavaScript 中如何攔截全域性 Fetch API 的請求和響應?JavaScriptAPI
- Spring系列 SpringMVC的請求與資料響應SpringMVC
- springboot+aop切點記錄請求和響應資訊Spring Boot
- Spring boot 與 json_schema ,請求和響應 校驗Spring BootJSON
- Angular 裡 HTTP 請求和響應結構的攔截器(interceptors)在 SAP Spartacus 中的應用AngularHTTP
- 請教:java安全Java
- SpringMVC處理請求頭、響應頭、編碼行為SpringMVC
- angular學習筆記(二十五)-$http(3)-轉換請求和響應格式Angular筆記HTTP
- 請教java 的反反編譯Java編譯
- Salesforce Integration 概覽(二) Remote Process Invocation—Request and Reply(遠端程式呼叫--請求和響應)SalesforceREM
- SpringMVC(1)- 入門案例、基本配置、請求、響應、Servlet相關介面SpringMVCServlet
- 【Python】python透過get方式,post方式傳送http請求和接收http響應PythonHTTP
- HTTP的請求與響應HTTP
- get請求和post請求的區別
- Java Servlet (1) —— Filter過濾請求與響應JavaServletFilter
- 請教大家一個JAVA的問題Java
- 小小java面試題(請教大家)Java面試題
- 請教JAVA如何才能學好Java
- 用JAVA能做到嗎?請教!Java
- 怎麼學習java,請教Java
- uni-app的POST請求和GET請求APP