重定向
@RequestMapping(value="user3/redirectUrl.do")
public String redirectMethod(){
//return "redirect:/test.jsp";
return "redirect:/user3/login1.do";
}
package com.tarena.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
import com.tarena.entity.User;
@Controller
public class UserController {
/**
* 接收客户端提交的数据
* 要求名称必须精确一对一匹配
* @param userName <input type="text" name="userName"/>
* @param userPassword <input type="password" name="userPassword"/>
* @return
*/
@RequestMapping(value="user/login1.do",method=RequestMethod.POST)
public ModelAndView login1(String userName,String userPassword){
System.out.println(userName+" "+userPassword);
ModelAndView mav=new ModelAndView();
//假设此处调用业务,此处忽略业务
mav.addObject("key", "value");
//设置一个名称,用于springmvc拼装响应的url 前缀+success+后缀
mav.setViewName("success");
return mav;
}
/**
*
* @param name @RequestParam(value="userName",required=true) String name
* <input type="text" name="userName"/>
* @param pwd @RequestParam("userPassword")String pwd
* <input type="password" name="userPassword"/>
* @return
*/
@RequestMapping(value="user/login2.do",method=RequestMethod.POST)
public ModelAndView login2(
@RequestParam(value="userName",required=true) String name,
@RequestParam("userPassword")String pwd){
System.out.println(name+" "+pwd);
ModelAndView mav=new ModelAndView();
//假设此处调用业务,此处忽略业务
mav.addObject("key", "value");
//设置一个名称,用于springmvc拼装响应的url 前缀+success+后缀
mav.setViewName("success");
return mav;
}
/**
*
* @param user 把name="userName" -->setUserName 去User对象中找是否此方法,有就反射调用
* 把name="userPassword" -->setUserPassword 去User对象中找是否此方法,有就反射调用
* @return
*/
@RequestMapping(value="user/login3.do",method=RequestMethod.POST)
public ModelAndView login3(User user){
System.out.println(user.getUserName()+" "+user.getUserPassword());
ModelAndView mav=new ModelAndView();
//假设此处调用业务,此处忽略业务
mav.addObject("key", "value");
//设置一个名称,用于springmvc拼装响应的url 前缀+success+后缀
mav.setViewName("success");
return mav;
}
@RequestMapping(value="user/login4.do",method=RequestMethod.GET)
public ModelAndView login4(String name,String pwd){
System.out.println(name+" "+pwd);
ModelAndView mav=new ModelAndView();
//假设此处调用业务,此处忽略业务
mav.addObject("key", "value");
//设置一个名称,用于springmvc拼装响应的url 前缀+success+后缀
mav.setViewName("success");
return mav;
}
}
package com.tarena.controller;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
import com.alibaba.fastjson.JSON;
import com.tarena.entity.User;
import com.tarena.vo.Result;
@Controller
public class UserController2 {
/**
* 用ModelAndView 把数据存储给Model,把view 存储给View
* @param userName
* @param userPassword
* @return ModelAndView
*/
@RequestMapping(value="user2/login1.do",method=RequestMethod.POST)
public ModelAndView login1(String userName,String userPassword){
System.out.println(userName+" "+userPassword);
ModelAndView mav=new ModelAndView();
//假设此处调用业务,此处忽略业务
//假设业务返回的数据为一个集合
User user1=new User(1,"aa","aa");
User user2=new User(2,"bb","bb");
User user3=new User(3,"cc","cc");
ArrayList<User> users=new ArrayList<User>();
users.add(user1);
users.add(user2);
users.add(user3);
/**
* 把数据存储给model
* 此写法为转发
* 等同于
* request.setAttribure("allUsers",users);
* request.getRequestDispatcher("WEB-INF/pages/success.jsp").forward(request,response);
*/
mav.addObject("allUsers", users);
//设置一个名称,用于springmvc拼装响应的url 前缀+success+后缀
mav.setViewName("success");
return mav;
}
/**
*
* @param userName
* @param userPassword
* @param model 参数位置任意 ,用来存储Model的数据
* @return String 代表view
*/
@RequestMapping(value="user2/login2.do",method=RequestMethod.POST)
public String login2(
String userName,
String userPassword,
Model model){
System.out.println(userName+" "+userPassword);
String result="error";
//假设此处调用业务,此处忽略业务
//假设业务返回的数据为一个集合
User user1=new User(1,"aa","aa");
User user2=new User(2,"bb","bb");
User user3=new User(3,"cc","cc");
ArrayList<User> users=new ArrayList<User>();
users.add(user1);
users.add(user2);
users.add(user3);
/**
* 把数据存储给model
* 此写法为转发
* 等同于
* request.setAttribure("allUsers",users);
* request.getRequestDispatcher("WEB-INF/pages/success.jsp").forward(request,response);
*/
model.addAttribute("allUsers", users);
//设置一个名称,用于springmvc拼装响应的url 前缀+success+后缀
result="success";
return result;
}
/**
*
* @param userName
* @param userPassword
* @param modelMap 代表的是Model
* @return 代表的view
*/
@RequestMapping(value="user2/login3.do",method=RequestMethod.POST)
public String login3(
String userName,
String userPassword,
ModelMap modelMap){
System.out.println(userName+" "+userPassword);
String result="error";
//假设此处调用业务,此处忽略业务
//假设业务返回的数据为一个集合
User user1=new User(1,"aa","aa");
User user2=new User(2,"bb","bb");
User user3=new User(3,"cc","cc");
ArrayList<User> users=new ArrayList<User>();
users.add(user1);
users.add(user2);
users.add(user3);
/**
* 把数据存储给model
* 此写法为转发
* 等同于
* request.setAttribure("allUsers",users);
* request.getRequestDispatcher("WEB-INF/pages/success.jsp").forward(request,response);
*/
modelMap.addAttribute("allUsers", users);
//设置一个名称,用于springmvc拼装响应的url 前缀+success+后缀
result="success";
return result;
}
@RequestMapping(value="user2/login4.do",method=RequestMethod.POST)
public String login4(
String userName,
String userPassword,
Map map){
System.out.println(userName+" "+userPassword);
String result="error";
//假设此处调用业务,此处忽略业务
//假设业务返回的数据为一个集合
User user1=new User(1,"aa","aa");
User user2=new User(2,"bb","bb");
User user3=new User(3,"cc","cc");
ArrayList<User> users=new ArrayList<User>();
users.add(user1);
users.add(user2);
users.add(user3);
/**
* 把数据存储给model
* 此写法为转发
* 等同于
* request.setAttribure("allUsers",users);
* request.getRequestDispatcher("WEB-INF/pages/success.jsp").forward(request,response);
*/
map.put("allUsers", users);
//设置一个名称,用于springmvc拼装响应的url 前缀+success+后缀
result="success";
return result;
}
@RequestMapping(value="user2/login5.do",method=RequestMethod.GET)
@ResponseBody//借助jackson把java对象转换json字符串,并响应给客户端
public Result login5(
String userName,
String userPassword){
System.out.println(userName+" "+userPassword);
Result result=new Result();
//假设此处调用业务,此处忽略业务
//假设业务返回的数据为一个集合
User user1=new User(1,"aa","aa");
User user2=new User(2,"bb","bb");
User user3=new User(3,"cc","cc");
ArrayList<User> users=new ArrayList<User>();
users.add(user1);
users.add(user2);
users.add(user3);
result.setStatus(1);
result.setMessage("登录成功!!");
result.setData(users);
return result;
}
@RequestMapping(value="user2/login5_1.do",method=RequestMethod.GET)
public void login5_1(
String userName,
String userPassword,
HttpServletRequest request,
HttpServletResponse response){
System.out.println(userName+" "+userPassword);
Result result=new Result();
//假设此处调用业务,此处忽略业务
//假设业务返回的数据为一个集合
User user1=new User(1,"aa","aa");
User user2=new User(2,"bb","bb");
User user3=new User(3,"cc","cc");
ArrayList<User> users=new ArrayList<User>();
users.add(user1);
users.add(user2);
users.add(user3);
result.setStatus(1);
result.setMessage("登录成功!!");
result.setData(users);
//程序员自己先把users对象转换成json字符串
//用response对象吧json字符串响应给客户端
String jsonString=JSON.toJSONString(result);
System.out.println("jsonString="+jsonString);
try {
//设置response响应消息头
response.setContentType("text/json;charset=UTF-8");
//构建响应的输出流
PrintWriter out=response.getWriter();
//把json字符串的内容响应给客户端
out.println(jsonString);
out.flush();
out.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
package com.tarena.controller;
import java.util.ArrayList;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;
import com.tarena.entity.User;
@Controller
public class UserController3 {
@RequestMapping(value="user3/login1.do",method=RequestMethod.GET)
public String login1(
HttpServletRequest request,
HttpServletResponse response,
HttpSession session)throws Exception{
System.out.println("耦合了servlet的做法");
String userName=request.getParameter("userName");
String userPassword=request.getParameter("userPassword");
System.out.println(userName+" "+userPassword);
//假设此处调用业务,此处忽略业务
//假设业务返回的数据为一个集合
User user1=new User(1,"aa","aa");
User user2=new User(2,"bb","bb");
User user3=new User(3,"cc","cc");
ArrayList<User> users=new ArrayList<User>();
users.add(user1);
users.add(user2);
users.add(user3);
/**
* 把数据存储给model
* 此写法为转发
* 等同于
* request.setAttribure("allUsers",users);
* request.getRequestDispatcher("WEB-INF/pages/success.jsp").forward(request,response);
*/
request.setAttribute("allUsers",users);
//设置一个名称,用于springmvc拼装响应的url 前缀+success+后缀
return "success";
}
@RequestMapping(value="user3/redirectUrl.do")
public String redirectMethod(){
//return "redirect:/test.jsp";
return "redirect:/user3/login1.do";
}
}