请求处理方法可接收参数
今天学习了前三个方法。
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 8 9 1041 4211 12 登录页面 13 14 15 16 17 18 19 22 23 24 25 26
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"; // 返回的字符串被当做ViewName25 26 }*/27 28 /**29 * 30 * 1 、作用域对象31 * HttpServletRequest,HttpServletResponse,HttpSession32 * 个数顺序可以自行定义33 * @param request34 * @return35 */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 //如果属性名与提交项名称相同,可以不配置@RequestParam73 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 user85 * @return86 */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风格请求从获取数据