javaweb:jsp内置对象及作用域(jsp内置对象作用范围)

  本篇文章为你整理了javaweb:jsp内置对象及作用域(jsp内置对象作用范围)的详细内容,包含有jsp内置对象和作用域 jsp内置对象作用范围 jsp内置对象有哪些?它们的作用域是什么 jsp内置对象和作用 javaweb:jsp内置对象及作用域,希望能帮助你了解 javaweb:jsp内置对象及作用域。

  page:表示当前jsp页面,类似于this;

  pageContext:JSP 的页面容器,用于访问page、request、application 和 session 的属性,可以存放数据,是域对象之一;

  request:请求,可以用来存放数据,是域对象之一;

  response:响应请求,处理信息返回客户端;

  out:输出内容到网页;

  session:可以存放数据,域对象之一;

  application:就是servletContext改了个名,可以存放数据,域对象之一;

  config:这是一个 Servlet 配置对象,用于 Servlet 和页面的初始化参数;

  exception:异常处理,只有在 JSP 页面的 page 指令中指定 isErrorPage 的取值 true 时,才可以在本页面使用 exception 对象。

  

  上面提到了四个域对象,分别是

  pageContext

  request

  session

  application

  它们四个都有存取数据的功能,都下面三个方法:

  setAttribute(String name, Object o)将属性保存到域对象中

  getAttribute(String name)获取域对象中的属性值

  removeAttribute(String name)将属性从域对象中移除

  区别在于它们三个存储数据的域不同

  pageContext:存储的数据只在当前页面有效,也就是本页面存,本页面取,页面死了数据就死了;

  request:存储的数据仅在本次请求有效,但是请求转发时数据仍然有效;

  session:存储的数据仅在当前会话范围有效,关闭浏览器后失效;

  application:数据存储在服务器中,只有服务器关闭数据才会失效。

  

  下面我们对这四个与对象进行一次存取测试:

  首先建立一个Demo001.jsp用于存数据并且立刻取数据

  


 %@ page language="java" contentType="text/html; charset=UTF-8"

 

   pageEncoding="UTF-8"%

   !DOCTYPE html

   html

   head

   meta charset="UTF-8"

   title 数据存 /title

   /head

   body

   pageContext.setAttribute("name", "金木三001");

   request.setAttribute("name", "金木三002");

   session.setAttribute("name", "金木三003");

   application.setAttribute("name", "金木三004");

   String a = (String)pageContext.getAttribute("name");

   String b = (String)request.getAttribute("name");

   String c = (String)session.getAttribute("name");

   String d = (String)application.getAttribute("name");

   h1 %= a % /h1

   h1 %= b % /h1

   h1 %= c % /h1

   h1 %= d % /h1

   /body

   /html

 

  

  没有问题,四个都能读取到

  然后我们建立一个Demo002.jsp,换一个页面来读取数据

  

 %@ page language="java" contentType="text/html; charset=UTF-8"

 

   pageEncoding="UTF-8"%

   !DOCTYPE html

   html

   head

   meta charset="UTF-8"

   title 数据存 /title

   /head

   body

   String a = (String)pageContext.getAttribute("name");

   String b = (String)request.getAttribute("name");

   String c = (String)session.getAttribute("name");

   String d = (String)application.getAttribute("name");

   h1 %= a % /h1

   h1 %= b % /h1

   h1 %= c % /h1

   h1 %= d % /h1

   /body

   /html

 

  

  可以发现,pageContext和request存的数据已经取不到了

  然后我们关闭浏览器,重新打开直接访问Demo002.jsp

  

  和想的一样,session存的数据也没有了

  然后我们修改一下Demo001.jsp,给它加上一句请求转发,将请求转发到Demo002.jsp试一下

  修改后的Demo001.jsp

  

 %@ page language="java" contentType="text/html; charset=UTF-8"

 

   pageEncoding="UTF-8"%

   !DOCTYPE html

   html

   head

   meta charset="UTF-8"

   title 数据存 /title

   /head

   body

   pageContext.setAttribute("name", "金木三001");

   request.setAttribute("name", "金木三002");

   session.setAttribute("name", "金木三003");

   application.setAttribute("name", "金木三004");

   String a = (String)pageContext.getAttribute("name");

   String b = (String)request.getAttribute("name");

   String c = (String)session.getAttribute("name");

   String d = (String)application.getAttribute("name");

   pageContext.forward("Demo002.jsp");

   /body

   /html

 

  

  

  

  以上就是javaweb:jsp内置对象及作用域(jsp内置对象作用范围)的详细内容,想要了解更多 javaweb:jsp内置对象及作用域的内容,请持续关注盛行IT软件开发工作室。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: