package springparam;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
@Controller
public class LoginController {
@RequestMapping("/login.do")
public String login(){
System.out.println("login()");
return "login";
}
@RequestMapping("/login1.do")
public String tologin(HttpServletRequest request){
//通过request读取对象参数值
String name = request.getParameter("name");
String password = request.getParameter("password");
System.out.println("login1():"+name+","+password);
return "index";
}
//spring页面数据默认传输。可以直接读取
@RequestMapping("/login2.do")
public String tologin2(String name,String password){
System.out.println("login2():"+name+","+password);
return "index";
}
//当读取的参数属性与接受名字不同时,可以使用@RequestParam
@RequestMapping("/login3.do")
public String tologin3(String name,@RequestParam("password")String pwd){
//通过request读取对象参数值
System.out.println("login3():"+name+","+pwd);
return "index";
}
//把参数封装成javabean,框架自动赋值
@RequestMapping("/login4.do")
public String login4(UserParam up){
System.out.println("login4():"+up.getName()+","+up.getPassword());
return "index";
}
/*
* 向页面传值
*/
//使用request封装数据(1)
@RequestMapping("/login5.do")
public String login5(UserParam up,HttpServletRequest request){
System.out.println("login5():"+up.getName()+","+up.getPassword());
request.setAttribute("name", up.getName());
request.setAttribute("password", up.getPassword());
return "index";
}
//使用ModelAndView封装数据(2)
@RequestMapping("/login6.do")
public ModelAndView login6(UserParam up){
String name = up.getName();
String password = up.getPassword();
Map<String,Object> data = new HashMap<String, Object>();
data.put("name",name);
data.put("password", password);
System.out.println("login6()");
ModelAndView mav = new ModelAndView("index",data);
return mav;
}
//使用ModelMap和Session传递数据
@RequestMapping("/login7.do")
public String login7(UserParam up,ModelMap mm,HttpSession session){
System.out.println("session和ModelMap值传递");
String name = up.getName();
String password = up.getPassword();
mm.addAttribute("name",name);
session.setAttribute("password", password);
return "index";
}
//重定向
@RequestMapping("/login8.do")
public String login8(){
System.out.println("重定向");
return "redirect:login.do";
}
}
Login.JSP
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<html>
<head>
<title>Insert title here</title>
</head>
<body style="font-size:30px;">
<form action="login8.do" method="post">
账号:<input name="name"/><br/>
密码:<input type="password" name="password"/><br/>
<input type="submit" value="登录">
</form>
</body>
</html>
Index.jsp
<h1>Login Success</h1>
<h1>${name }</h1>
<h1>${password }</h1>
ParamBean
package springparam;
public class UserParam {
private String name;
private String password;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}