好程式設計師Java學習路線分享SpringMVC之請求和響應
好程式設計師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/69913892/viewspace-2653915/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 好程式設計師Java學習路線分享SpringMVC之MVC概述程式設計師JavaSpringMVC
- 好程式設計師Java學習路線之SpringMVC之基本配置程式設計師JavaSpringMVC
- 好程式設計師Java學習路線分享MyBatis之基本使用程式設計師JavaMyBatis
- 好程式設計師Java學習路線分享SpringCloud程式設計師JavaSpringGCCloud
- 好程式設計師Java學習路線之集程式設計師Java
- 好程式設計師Java學習路線分享MyBatis之Spring整合程式設計師JavaMyBatisSpring
- 好程式設計師Java學習路線分享mybatis對映程式設計師JavaMyBatis
- 好程式設計師Java學習路線分享MyBatis之關聯查詢程式設計師JavaMyBatis
- 好程式設計師Java學習路線分享Java框架怎麼搭建程式設計師Java框架
- 好程式設計師Java學習路線分享Java面試題之載入機制程式設計師Java面試題
- 好程式設計師Java學習路線分享Redis快速入門程式設計師JavaRedis
- 好程式設計師Java學習路線分享JVM相關概念程式設計師JavaJVM
- 好程式設計師Java學習路線分享maven是什麼程式設計師JavaMaven
- 好程式設計師Java學習路線分享原生Ajax的使用程式設計師Java
- 好程式設計師Java學習路線分享Java-String常用方法程式設計師Java
- 好程式設計師Java學習路線分享Java中的位移運算程式設計師Java
- 好程式設計師Java學習路線分享Dubbo架構介紹程式設計師Java架構
- 好程式設計師Java學習路線分享多執行緒概念程式設計師Java執行緒
- 好程式設計師Java學習路線分享MySQL目錄結構程式設計師JavaMySql
- 好程式設計師Java學習路線分享finalize()方法詳解程式設計師Java
- 好程式設計師Java學習路線分享三大特性之多型程式設計師Java多型
- 好程式設計師Java學習路線分享MyBatis之執行緒最佳化程式設計師JavaMyBatis執行緒
- 好程式設計師大資料學習路線分享spark之Scala程式設計師大資料Spark
- 好程式設計師Java分享SpringMVC之@ResponseBody註解程式設計師JavaSpringMVC
- 好程式設計師Java學習路線分享Java弱引用的理解與使用程式設計師Java
- 好程式設計師Java學習路線分享Java案例-封裝JDBC工具類程式設計師Java封裝JDBC
- 好程式設計師Java學習路線分享怎麼理解Java物件導向程式設計師Java物件
- 好程式設計師Java學習路線分享如何處理中文引數程式設計師Java
- 好程式設計師Java學習路線分享JVM類載入機制程式設計師JavaJVM
- 好程式設計師Java學習路線分享Spring常見面試題程式設計師JavaSpring面試題
- Java教程之SpringMVC的請求和響應JavaSpringMVC
- 好程式設計師大資料學習路線分享Scala系列之物件程式設計師大資料物件
- 好程式設計師大資料學習路線分享MAPREDUCE程式設計師大資料
- 好程式設計師大資料學習路線分享SparkSQl程式設計師大資料SparkSQL
- 好程式設計師Java學習路線之MySQL的執行計劃程式設計師JavaMySql
- 好程式設計師Java學習路線JSP物件程式設計師JavaJS物件
- 好程式設計師大資料學習路線分享Hbase指令學習程式設計師大資料
- 學習SpringMVC必知必會(3)~springmvc的請求和響應SpringMVC