Spring MVC 之請求處理方法可接收參數(三)


請求處理方法可接收參數

今天學習了前三個方法。

 

1、作用域對象
2、單個表單提交數據
3、表單數據封裝的Bean對象

首先創建一個實體對象。

 1 package com.cy.springannotation.entity;
 2 /**
 3  * 定義一個表單實體類
 4  * @author acer
 5  *
 6  */
 7 public class UserBean {
 8     //要求屬性名必須要和表單的參數名一樣的!
 9     private String username;
10     private String password;
11     public String getUsername() {
12         return username;
13     }
14     public void setUsername(String username) {
15         this.username = username;
16     }
17     public String getPassword() {
18         return password;
19     }
20     public void setPassword(String password) {
21         this.password = password;
22     }
23     
24 
25 }

 

簡單的一個jsp頁面!login.jsp

為了方便觀察 password的type為text。

 1 <%@ page language="java" import="java.util.*" pageEncoding="utf-8" contentType="text/html; charset=utf-8"%>
 2 <%
 3 String path = request.getContextPath();
 4 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
 5 %>
 6 
 7 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 8 <html>
 9   <head>
10     <base href="<%=basePath%>">
11     
12     <title>登錄頁面</title>
13     
14     <meta http-equiv="pragma" content="no-cache">
15     <meta http-equiv="cache-control" content="no-cache">
16     <meta http-equiv="expires" content="0">    
17     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
18     <meta http-equiv="description" content="This is my page">
19     <!--
20     <link rel="stylesheet" type="text/css" href="styles.css">
21     -->
22 
23   </head>
24   
25   <body>
26   <form action="login.do" method="post">
27     <table>
28        <tr>
29            <td>用戶名:</td>
30            <td><input type="text" name="username"/></td>
31        </tr>
32        <tr>
33            <td>密碼</td>
34            <td><input type="text" name="password"/></td>
35        </tr>
36        <tr>
37            <td colspan="2"> <input type="submit" value="提交"/> </td>
38        </tr>
39     </table>
40   </form>
41   </body>
42 </html>

 

 

LoginController.java
 1 package com.cy.springannotation.controller;
 2 
 3 import javax.servlet.http.HttpServletRequest;
 4 
 5 import org.apache.log4j.Logger;
 6 import org.springframework.stereotype.Controller;
 7 import org.springframework.web.bind.annotation.RequestMapping;
 8 import org.springframework.web.bind.annotation.RequestMethod;
 9 import org.springframework.web.bind.annotation.RequestParam;
10 import org.springframework.web.servlet.ModelAndView;
11 
12 import com.cy.springannotation.entity.UserBean;
13 
14 @Controller  // @Controller告知Spring容器這是一個控制器組件
15 public class LoginController {
16     
17     private Logger log=Logger.getLogger(this.getClass());
18     
19     
20     
21     /* @RequestMapping("/login.do")  // @RequestMapping告知該方法是針對/login.do請求的處理方法
22      public String login(String username){
23          System.out.println(username);
24         return "index";           // 返回的字符串被當做ViewName
25          
26      }*/
27     
28     /**
29      * 
30      * 1 、作用域對象
31      * HttpServletRequest,HttpServletResponse,HttpSession
32      * 個數順序可以自行定義
33      * @param request
34      * @return
35      */
36 
37     /*@RequestMapping("/login.do") 
38     public ModelAndView login(HttpServletRequest request){
39         String username=request.getParameter("username");
40         String password=request.getParameter("password");
41         log.info(username);
42         log.info(password);
43         ModelAndView  mav=new ModelAndView();
44         mav.setViewName("index");
45         return mav;
46         
47     }*/
48     
49     /**
50      * 2、單個表單提交數據
51      */
52     
53     /*@RequestMapping("/login.do")
54     public String login(@RequestParam("username")String name,@RequestParam("password")String pwd){
55         log.info(name);
56         log.info(pwd);
57         return "index";
58     }*/
59 
60     
61     
62     
63     
64     /**method主要是制定請求方法的規則,比如:如果設置了RequestMethod.POST,
65      * 那么你的表單提交就必須使用POST提交,否則將報405錯誤 
66      params="password" 表示我的表單提交中,一定要有password這個參數,否則將報400的錯誤*/
67     
68     /**
69      * 2、單個表單提交數據
70      */
71     /*@RequestMapping(value="/login.do",method=RequestMethod.POST,params="password")
72     //如果屬性名與提交項名稱相同,可以不配置@RequestParam
73     public ModelAndView login(String username,String password){
74         log.info(username);
75         log.info(password);
76         ModelAndView mv = new ModelAndView();
77         mv.setViewName("index");
78         return mv;
79     }*/
80     
81     
82     /**
83      * 3 表單數據封裝的Bean對象
84      * @param user
85      * @return
86      */
87     @RequestMapping(value="/login.do")
88     public String login(UserBean user){
89         log.info(user.getUsername());
90         log.info(user.getPassword());
91         return "index";
92     }
93     
94      
95      
96 }

 

 其他的配置都和前一篇是相同的。

 

 

4、Map對象
5、PrintWriter作為參數
6、Cookie中的數據作為參數
7、Http協議頭的數據作為參數
8、從restful風格請求從獲取數據

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM