一.如何读取请求参数值
方式一:通过request对象
DispatcherServlet会负责将request对象传进来(利用java反射机制分析方法的结构)。
代码实例:public String login(HttpServletRequest request){ System.out.println("login()"); String username = request.getParameter("username"); }
方式二:通过@RequestParam
Dispat会负责读取请求参数值,然后赋给相应的形参。
注:形参名必须与请求参数名一致,如果不一样,可以在形参前添加@RequestParam来说明。public String login2(String username, @RequestParam("pwd") String password){ System.out.println("login2()"); System.out.println(username + " " + password); }
方式三:封装成javabean
1)属性名与请求参数名保持一致,并且类型要一样;
注:会自动做类型转换,但是有可能会转换失败。
2)添加对应的get/set方法。
public class UserParam{
private String username;
private String pwd;
public String getUsername(){
return username;
}
public void setUsername(String username){
this.username = username;
}
}
@RequestMapping("/login3.do")
/**
* DispatcherServlet会负责创建UserParam对象(会将请求参数值赋给该对象对应的属性)。
*/
public String login3(UserParam up){
System.out.println("login3()");
System.out.println(up.getUsername() + " " + up.getPwd());
}
二.向页面传值
方式一:将数据绑订到request对象上,然后转发到JSP。
@RequestMapping("/login4.do") public String login4(UserParam up, HttpServletRequest request){ System.out.println("login4()"); String username = up.getUsername(); /** * DispatcherServlet会默认使用转发。 */ return "index"; }
方式二:返回ModelAndView对象。
/** * DispatcherServlet会将数据从ModelAndView中取出来,绑定到request。 */ public ModelAndView login5(UserParam up){ System.out.println("login5()"); String username = up.getUsername(); // 先将数据添加到Map对象里面 Map<String, Object> data = new HashMap<String, Object>(); // 相当于request.setAttribute("username", username) data.put("username", username); // 构造ModelAndView对象 ModelAndView mav = new ModelAndView("index", data); return mav; }
方式三:使用ModelMap对象。
/** * DispatcherServlet会将数据从ModelMap对象中取出来,然后绑定到request。 */ public String login6(UserParam up, ModelMap mm){ System.out.println("login6()"); String username = up.getUsername(); // 相当于request.setAttribute("username", username) mm.addAttribute("username", username); return "index"; }
方式四:将数据绑订到session对象上。
/** * DispatcherServlet会将session对象传进来 */ public String login7(UserParam up, HttpSession session){ System.out.println("login7()"); String username = up.getUsername(); session.setAttribute("username", username); return "index"; }