JSP页面的隐含对象和Servlet程序里的对象之间的关联和区别
首先,有两个概念:
1.JSP页面的域对象:pageContext,request,session,application对象(四个)
void setAttribute(String name,Object o):设置属性名对应的属性值
Object getAttribute(String name):获取指定属性名的属性值
Enumeration getAttributeNames():获取所有的属性名组成的Enumeration对象
removeAttribute(String name):移除指定属性名的属性
pageContext<request<session<application对象(对属性的作用域的范围从小到大)都有这些方法,这四个对象称之为域对象。
pageContext:属性的作用范围仅限于当前JSP页面
request:属性的作用范围仅限于同一个请求
session:属性的作用范围仅限于一次会话
application:属性的作用范围限于当前WEB应用,是范围最大的属性作用范围。只要在一处设置属性,在其他各处的JSP或Servlet中都可以获取到。
2.JSP页面的隐含对象:没有声明就可以使用的对象,共9个。
①request:HttpServletRequest的一个对象
②response:HttpServletResponse的一个对象
③pageContext:页面的上下文,是PageContext的一个对象。
可以从该对象中获取到其他8个隐含对象,
也可以从中获取到当前页面的其他信息(在自定义标签时,可以获取比如属性,参数等):
定义一个类:HelloSimpleTag.java


然后在TestTag.jsp页面里使用tt:helloSimple标签

从上面的例子中可以看出,pageContext确实可以获取到request、out等对象。
注意:不是说这9个对象就不能在servlet程序里调用,只是说在JSP页面里可以直接调用这9个对象而不需要先获取到对象。
比如:在JSP页面就可以直接调用session对象:session.getAttribute。
而在servlet程序里如果要调用session对象,必须先获取到session对象才可以使用:request.getSession().setAttribute。
又比如在上面的HelloSimpleTag.java里,存在一个函数setJspContext,这个函数就传入了一个JspContext对象。所以我们可以利用该对象强转成pageContext对象,这样就在java程序里获取到了pageContext对象。于是此时才可以利用该对象获取其他隐含对象比如request、out等对象,然后再利用request、out去实现想实现的功能。

④session:代表浏览器和服务器的一次会话,是HttpSession的一个对象
⑤application:代表当前WEB应用,是ServletContext对象
⑥config:当前JSP对应的Servlet的ServletConfig对象(了解)
⑦out:JspWriter对象,调用out.println()可以直接把字符串打印到浏览器上
⑧page:指向当前JSP对应的servlet对象的引用(了解)
⑨exception:在JSP文件的开头声明了Page指令的isErrorPage="true"时,才可以使用.
<%@ page isErrorPage="true">
JSP页面的隐含对象和Servlet程序里的对象之间的关联和区别的更多相关文章
- jsp九个内置对象、四个域对象及Servlet的三大域对象
一,什么是内置对象? 在jsp开发中会频繁使用到一些对象,如ServletContext HttpSession PageContext等.如果每次我们在jsp页面中需要使用这些对象都要自己亲自动手创 ...
- JSP页面最终是编译为Servlet执行的
JSP页面最终是编译为Servlet执行的,你可以在Tomcat的%CATALINA_HOME%/work/Catalina/localhost中找到一个文件夹,该文件夹跟你的web-project的 ...
- 【转载】Jsp页面传Json数据到服务端,转对象或集合进行数据处理
需求:1.将页面数据带到服务端并转成对象,2.将页面的集合数据带到服务端转List实现:用ajax请求传递数据,数据格式为json JS方法: testJsonMethod = function(){ ...
- 创建jsp页面出现The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path错误
原因未添加tomcat服务器 第一步: 第二步:
- 【JavaWeb】JSP 页面
JSP 页面 简介 JSP(Java Server Pages),即 Java 的服务器页面.它的主要作用是代替 Servlet 程序回传 HTML 页面的数据,因为 Servlet 程序回传 HTM ...
- Servlet跳转到JSP页面后的路径问题相关解释
一.现象与概念 1. 问题 在Servlet转发到JSP页面时,此时浏览器地址栏上显示的是Servlet的路径,而若JSP页面的超链接还是相对于该JSP页面的地址且该Servlet和该JSP页面不在同 ...
- Servlet转发到JSP页面的路径问题
一.现象与概念 1. 问题 在Servlet转发到JSP页面时,此时浏览器地址栏上显示的是Servlet的路径,而若JSP页面的超链接还是相对于该JSP页面的地址且该Servlet和该JSP页面不在同 ...
- Jsp页面跳转和js控制页面跳转的几种方法
Jsp 页面跳转的几种方法 1. RequestDispatcher.forward() 在服务器端起作用,当使用forward()时,Servlet engine传递HTTP请求从当前的Servle ...
- JSP九大内置对象及其作用以及四大域对象
一,什么是内置对象? 在jsp开发中会频繁使用到一些对象,如ServletContext HttpSession PageContext等.如果每次我们在jsp页面中需要使用这些对象都要自己亲自动手创 ...
随机推荐
- c-free
- socket编程与利用进程进行多并行连接
呈现一张基本的socket阻塞式模型,如下图: 一: 对于一对一的进行C/S回射: 服务端(server.c): #include<unistd.h> #include<stdio. ...
- guava学习--集合2&Range
转载:http://www.cnblogs.com/peida/p/Guava_ImmutableCollections.html Table: 当我们需要多个索引的数据结构的时候,通常情况下,我们只 ...
- UISlider
UISlider是iOS中的滑块控件 通常⽤于控制视频播放进度,控制⾳量等. 它继承于UIControl,滑块提供了⼀系列连续的值,滑块停 在不同的位置,获取到滑块上的值也不同. minimumV ...
- 局域网单机部署双tomcat内外网不能访问防火墙问题查出来
tomcat部署的项目内网访问不了 win7 64 位 控制面板 - 安全 -防火墙-入站规则- 新建规则 选中“端口”按钮,点选“下一步”: 选择“TCP”按钮,在“特定本地端口”输入tomcat ...
- iOS打开百度地图、高德地图导航
1.判断手机里是否已经安装了百度地图或者高德地图: BOOL hasBaiduMap = NO; BOOL hasGaodeMap = NO; if ([[UIApplication sharedAp ...
- 微信第三方 授权方账户信息 API文档错误
获取授权方的账户信息 该API用于获取授权方的公众号基本信息,包括头像.昵称.帐号类型.认证类型.微信号.原始ID和二维码图片URL. 需要特别记录授权方的帐号类型,在消息及事件推送时,对于不具备客服 ...
- js事件捕获,事件冒泡,事件委托以及DOM事件流
一:DOM事件流: 事件流是从页面接收事件的顺序,DOM2级事件规定事件流包括三个阶段: ①事件捕获阶段:用意在于事件达到目标之前捕获它,在事件捕获阶段事件流模型:document→html→body ...
- swift项目中使用OC/C的方法
假如有个OC类OCViewController : UIViewController类里有两个方法 //swift调用oc或c的混编是比较常用的,反过来的调用很少.这里只写了swift调用oc和c的方 ...
- UVALive 7302 (最短路)
Probelm Terrorists 题目大意 给一张n个点,m条边的无向图.共有q个询问,每次询问u到v的最短路. n <= 100000 , n-1 <= m <= n + 5 ...