在前面Servlet课程中,我们知道web开发有三大作用域request,ression,application.在Controller中如何获取这三大作用域对象,并且保存属性呢?
项目结构图如下:

实例:
ModelAttribute中保存的属性本质就是保存在requestScope中,等同于request.setAttribuate的作用。
package com.controller;
import com.entity.Users;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import javax.servlet.http.HttpSession;
@Controller
@RequestMapping("users")
public class UsersController {
@RequestMapping(value="login",method ={RequestMethod.GET,RequestMethod.POST})
public String login(@ModelAttribute("loginUser") Users user, HttpSession session){
System.out.println("执行用户登录...");
System.out.println(user);
//保存在session中
session.setAttribute("city","西安");
//保存在application
session.getServletContext().setAttribute("nation","中国");
return "login_success";
}
}
login_success.jsp视图代码如下:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title></title>
</head>
<body>
<h1>登录成功</h1>
<hr>
<div>
用户名:${requestScope.loginUser.username}<br>
密码:${requestScope.loginUser.password}<br>
城市:${sessionScope.city}<br>
国家:${applicationScope.nation}<br>
</div>
</body>
</html>
使用PostMan测试 /users/login动作。

