这一篇介绍:
SpringMvc 对 ServletAPI 的支持
SpringMvc 对 Json 的支持
SpringMvc 对 ServletAPI 的支持
通过一个实例来说明:
模拟一个用户登录过程:
在controller包内,新建UserController:
@Controller
@RequestMapping("/user")
public class UserController {
@RequestMapping("/login")
public String login(HttpServletRequest request,HttpServletResponse response) {
String userName = request.getParameter("userName");
String password = request.getParameter("password");
User currentUser = new User(userName, password);
Cookie cookie = new Cookie("user", currentUser.getUserName()+"-"+currentUser.getPassword());
cookie.setMaxAge(1*60*60*24*7);
response.addCookie(cookie);
HttpSession session = request.getSession();
session.setAttribute("currentUser", currentUser);
return "redirect:/main.jsp";
}
}
所谓对Servlet API的支持,就是指能直接用request,response传递参数,可以只用request,或者只用response,根据需求而定。
在这里获取userName,和password的方法是用的request.getPaarameter ,其实可以用上一篇说的,自动封装对象。
@RequestMapping("/login")
public String login(HttpServletRequest request,HttpServletResponse response,User currentUser) {
/*String userName = request.getParameter("userName");
String password = request.getParameter("password");
User currentUser = new User(userName, password);*/
Cookie cookie = new Cookie("user", currentUser.getUserName()+"-"+currentUser.getPassword());
cookie.setMaxAge(1*60*60*24*7);
response.addCookie(cookie);
HttpSession session = request.getSession();
session.setAttribute("currentUser", currentUser);
return "redirect:/main.jsp";
}
}
SpringMvc 对 Json 的支持
有的时候,前台是通过ajax传递的,数据都是通过json格式传递的。SpringMVC可以自动将对象转换成json对象。
通过以下:
将jar包贴到lib,用Maven的话,直接写依赖就行。
在Spring-mvc配置文件中加:
<!-- 支持对象与json的转换。 -->
<mvc:annotation-driven/>
并且加上:
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation:
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
用的时候:
@RequestMapping("/login2")
public @ResponseBody User ajax() {
User user = new User("张三", "123456");
return user;
}
}