九大内置对象
四个作用域
1. page(当前页面)
2. request(一次请求中同一个对象)
3. session(一次会话)
3.1 只要客户端Cookie中传递的Jsessionid不变 --> session就不会重新实例化(不超过默认时间)
3.2 实际有效时间:
3.2.1 浏览器关闭 : cookie失效
3.2.2 默认时间 :tomcat的web.xml中配置
4 .application(关闭tomcat)
SpringMVC作用域传值方式(四种)
1. 使用原生Servlet(HandlerMethod参数中添加作用域对象)
2. 使用Map集合
3. 使用SpringMVC中Model接口
4. 使用SpringMVC中ModelAndView类
使用原生Servlet
在HandlerMethod参数中 + 作用域对象
注解类:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| @Controller public class DemoController {
@RequestMapping("demo01") public String demo1(HttpServletRequest abc,HttpSession sessionParam) { //request作用域 abc.setAttribute("req","req的值"); //session作用域 HttpSession session = abc.getSession(); session.setAttribute("session", "session的值"); sessionParam.setAttribute("sessionParam", "sessionParam的值"); //设置application作用域 ServletContext application=abc.getServletContext(); application.setAttribute("application","application的值"); return "index.jsp"; //返回给一个jsp页面 } }
|
index.jsp页面(取出来):
1 2 3 4
| request:${requestScope.req }</br> session:${sessionScope.session }</br> sessionParam:${sessionScope.sessionParam }</br> application:${applicationScope.application }</br>
|
Map集合
map中的内容放入request作用域
spring会对map集合通过BindingAwareModelMap进行实例化
1 2 3 4 5 6 7 8
| @RequestMapping("demo02") public String demo2(Map<String,Object> map) {
System.out.println(map.getClass()); //输出map的结果 map.put("map","map的值"); //获取map值 return "index.jsp";
}
|
使用SpringMVC中Model接口
内容最终放入到request作用域
1 2 3 4 5 6 7
| @RequestMapping("demo03") public String demo3(Model model) {
model.addAttribute("model","model的值"); return "index.jsp";
}
|
使用SpringMVC中ModelAndView类
1 2 3 4 5 6 7
| @RequestMapping("demo04") public String demo4() {
ModelAndView m=new ModelAndView("index.jsp"); return "m";
}
|