美文网首页
四大作用域与传值

四大作用域与传值

作者: Yanl__ | 来源:发表于2019-12-13 10:48 被阅读0次

1. 九大内置对象

名称 类型 含义 获取方式
request HttpSevletRequest 封装所有请求信息 方法参数
response HttpServletResponse 封装所有响应信息 方法参数
session HttpSession 封装所有会话信息 req.getSession()
application ServletContext 所有信息 getServletContext();</br>request.getServletContext();
out PrintWriter 输出对象 response.getWriter()
exception Exception 异常对象
page Object 当前页面对象
pageContext PageContext 获取其他对象
config ServletConfig 配置信息

2.四大作用域

  1. page
    1.1. 在当前页面不会重新实例化.
  2. request
    2.1 在一次请求中同一个对象,下次请求重新实例化一个request 对象.
  3. session
    3.1 一次会话.
    3.2 只要客户端Cookie 中传递的Jsessionid 不变,Session 不会重新实力会(不超过默认时间.)
    3.3 实际有效时间:
        3.3.1 浏览器关闭.Cookie 失效.
        3.3.2 默认时间.在时间范围内无任何交互.在tomcat 的web.xml 中配置
<session-config>
    <session-timeout>30</session-timeout>
</session-config>
  1. application
    4.1 只有在tomcat 启动项目时菜实例化.关闭tomcat 时销毁application

3.SpringMVC 作用域传值的四种方式

  1. 使用原生Servlet
    1.1 在HanlderMethod 参数中添加作用域对象
  2. 使用Map 集合
    2.1 把map 中内容放在request 作用域中
    2.2 spring 会对map 集合通过BindingAwareModelMap 进行实例
  3. 使用SpringMVC 中Model 接口
    3.1 把内容最终放入到request 作用域中.
  4. 使用SpringMVC 中ModelAndView 类
1.使用原生Servlet
@RequestMapping("demo1")
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 的值");
    //appliaction 作用域
    ServletContext application =abc.getServletContext();
    application.setAttribute("application","application 的值");
    return "/index.jsp";
}

2.使用Map 集合
@RequestMapping("demo2")
public String demo2(Map<String,Object> map){
    System.out.println(map.getClass());
    map.put("map","map 的值");
    return "/index.jsp";
}

3.使用SpringMVC 中Model 接口
@RequestMapping("demo3")
public String demo3(Model model){
    model.addAttribute("model", "model 的值");
    return "/index.jsp";
}

4.使用SpringMVC 中ModelAndView 类
@RequestMapping("demo4")
public ModelAndView demo4(){
    //参数,跳转视图
    ModelAndView mav = new ModelAndView("/index.jsp");
    mav.addObject("mav", "mav 的值");
    return mav;
}

jsp中
request:${requestScope.req }
session:${sessionScope.session }
sessionParam:${sessionScope.sessionParam }
application:${applicationScope.application }
map:${requestScope.map }
model:${requestScope.model }
mav:${requestScope.mav }

相关文章

  • JS随手笔记

    传值与传地址 严格模式 **use strict ** 只对当前作用域及子作用域有效严格模式下使用的变量必须定义 ...

  • 四大作用域与传值

    1. 九大内置对象 名称类型含义获取方式requestHttpSevletRequest封装所有请求信息方法参数r...

  • 作用域和值类型引用类型的传递及试题

    作用域 值类型和引用类型的传递 函数传参为值传递 传递的是对象指针的副本

  • 14.JS基础之作用域与闭包

    作用域: 全局作用域 函数作用域 块级作用域(ES6新增) 常见的闭包有:作为函数返回值的闭包与作为函数参数的闭包...

  • JSP与servlet之间的参数传递

    四大作用域 要先知道四大作用域是什么,怎么运作的。什么是四大作用域?(这部分知识在jsp基础里面有提到过,jsp里...

  • CLR与AppDomain

    装载与卸载 跨域传值 按值封送 按引用封送

  • 函数本身的作用域(js)(摘抄)

    函数本身也是一个值,也有自己的作用域。它的作用域与变量一样,就是其声明时所在的作用域,与其运行时所在的作用域无关。

  • 函数闭包的理解

    函数本身也是一个值,也有自己的作用域。它的作用域与变量一样,就是其声明时所在的作用域,与其运行时所在的作用域无关。...

  • 跨域-document.domain

    上一篇七种跨域方法【1.CROS篇】主要解决的是异域之间的传值 这里主要解决的是子域与父域之间的传值 问题描述: ...

  • Python篇-函数(三)高阶函数

    一 函数的作用域注意 函数名可以作为返回值返回,返回值加一个()就可以调用 函数的作用域于与函数定义有关,与调用位...

网友评论

      本文标题:四大作用域与传值

      本文链接:https://www.haomeiwen.com/subject/qfffnctx.html