0
点赞
收藏
分享

微信扫一扫

javaEE007.05 Jsp九大隐含对象、四大域对象、(包含)


系列文章目录

文章目录

  • 系列文章目录
  • 前言
  • 一、九大隐含对象
  • 二、四大域对象

前言

接上一篇

一、九大隐含对象

定义:可以在jsp中直接使用的对象。(不需要我们new的对象,服务器实例化的九大隐含对象,并存放在_jspService()方法中)

注意:只是不需要我们自己new 而已 实际上源码中肯定还是帮我们new了

javaEE007.05 Jsp九大隐含对象、四大域对象、(包含)_九大隐含对象


javaEE007.05 Jsp九大隐含对象、四大域对象、(包含)_四大域对象_02


设置完之后重启一下服务器(需要重新编译)

javaEE007.05 Jsp九大隐含对象、四大域对象、(包含)_服务器_03


多了1个对象 exception

javaEE007.05 Jsp九大隐含对象、四大域对象、(包含)_四大域对象_04


由上可以看出,不需要我们new的对象,服务器帮我们new好了,服务器实例化的九大隐含对象,并存放在_jspService()方法中

* 对象详情
  				1. application
  					* 类型:ServletContext
  				 	* 作用:域对象
  				 	* Servlet中的获取方式:this.getServletContext()
  
  				2. session
  				 	* 类型:HttpSession
  				 	* 作用:域对象
  				 	* Servlet中的获取方式:request.getSession();

javaEE007.05 Jsp九大隐含对象、四大域对象、(包含)_Jsp_05

3. request
  					* 类型:HttpServletRequest
  					* 作用:域对象(4个)
  					* Servlet中的获取方式:直接使用
  				4. pageContext
  					* 类型:PageContext
  					* 作用
  						* 域对象
  						* jsp老大(可以通过老大直接获取其他八个隐含对象) 
  					* Servlet中的获取方式:无

javaEE007.05 Jsp九大隐含对象、四大域对象、(包含)_四大域对象_06


前面4个都是域对象

5. response(关联记忆 3request)
  					* 类型:HttpServletResponse
  					* 作用:域Servlet中的response对象一致
  					* Servlet中的获取方式:直接使用
  				6. page   (关联记忆4. pageContext)
  					* 类型:Object
  					* 作用:page = this,当前类的对象。
  				7. out

javaEE007.05 Jsp九大隐含对象、四大域对象、(包含)_九大隐含对象_07

* 类型:JspWriter
  					* 作用:与Servlet中的PrintWriter的作用类似。(都继承了java.io.Writer)
  		类似,主要用于响应html代码

javaEE007.05 Jsp九大隐含对象、四大域对象、(包含)_九大隐含对象_08

8. config
  					* 类型:ServletConfig
  					* 作用:与Servlet中的ServletConfig的作用一致
  					* Servlet中的获取方式:this.getServletConfig()
  				9. exception
  					* 类型:Throwable
  					* 作用:(有exception对象才可以)接受处理异常信息

ctrl+shift+T

javaEE007.05 Jsp九大隐含对象、四大域对象、(包含)_Jsp_09


javaEE007.05 Jsp九大隐含对象、四大域对象、(包含)_九大隐含对象_10


javaEE007.05 Jsp九大隐含对象、四大域对象、(包含)_四大域对象_11


javaEE007.05 Jsp九大隐含对象、四大域对象、(包含)_九大隐含对象_12


可以看出 Throwable 是最大的

二、四大域对象

生活中,假如你点了一个外卖会用飞机给你送来吗?很大概率是不会的
同理一般来说,两个区域之间如果都是北京,那么一般使用同城快递,没必要使用全球快递

* 域:区域,在web应用的不同资源中,相互传递数据。
  				* 生活区域(快递)
  					* 昌平区域
  					* 北京同城
  					* 全国快递
  					* 全球快递
  				* 程序区域
  			* 域对象共有的方法
  				* getAttribute()
  				* setAttribute()
  				* removeAttribute() 
  			* 详情(从大到小如下)
  				* application
  					* 范围: 当前项目中有效
  				* session
  				 	* 范围: 当前会话中有效(与浏览器,只要浏览器不关闭|不换,就一直有效)
  				* request
  					* 范围: 当前请求中有效(注意转发和重定向,转发 也是 当前请求)
  				* pageContext 
  					* 范围: 当前页面中有效
  			* 能用小域,就不用大域。

验证一下

javaEE007.05 Jsp九大隐含对象、四大域对象、(包含)_Jsp_13


javaEE007.05 Jsp九大隐含对象、四大域对象、(包含)_Jsp_14

javaEE007.05 Jsp九大隐含对象、四大域对象、(包含)_九大隐含对象_15

接着测试跳转这个页面,再去取值,看看能否取得到

比如转发才是当前请求,重定向就相当于换了个请求

javaEE007.05 Jsp九大隐含对象、四大域对象、(包含)_服务器_16


javaEE007.05 Jsp九大隐含对象、四大域对象、(包含)_Jsp_17


javaEE007.05 Jsp九大隐含对象、四大域对象、(包含)_服务器_18


只有1个null,符合我们前面说的下面我们再来验证 超链接

javaEE007.05 Jsp九大隐含对象、四大域对象、(包含)_四大域对象_19

javaEE007.05 Jsp九大隐含对象、四大域对象、(包含)_重启_20


2个null 不是当前请求(当前页没了,request 也没了 因为他们都不是当前请求)

再然后测试session ,让session失效,需要关闭浏览器

具体操作:复制当前网址,关闭浏览器,再打开浏览器,粘贴网址,然后按回车

javaEE007.05 Jsp九大隐含对象、四大域对象、(包含)_服务器_21

最后一个还关得掉吗?

得把项目关了才能关得掉

重启一下服务器

javaEE007.05 Jsp九大隐含对象、四大域对象、(包含)_服务器_22

留一个疑问:

javaEE007.05 Jsp九大隐含对象、四大域对象、(包含)_九大隐含对象_23


我们重启服务器后,粘贴之前的页面

这是session的特性,后面文章会有说到


举报

相关推荐

0 条评论