首先,有两个概念:

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程序里的对象之间的关联和区别的更多相关文章

  1. jsp九个内置对象、四个域对象及Servlet的三大域对象

    一,什么是内置对象? 在jsp开发中会频繁使用到一些对象,如ServletContext HttpSession PageContext等.如果每次我们在jsp页面中需要使用这些对象都要自己亲自动手创 ...

  2. JSP页面最终是编译为Servlet执行的

    JSP页面最终是编译为Servlet执行的,你可以在Tomcat的%CATALINA_HOME%/work/Catalina/localhost中找到一个文件夹,该文件夹跟你的web-project的 ...

  3. 【转载】Jsp页面传Json数据到服务端,转对象或集合进行数据处理

    需求:1.将页面数据带到服务端并转成对象,2.将页面的集合数据带到服务端转List实现:用ajax请求传递数据,数据格式为json JS方法: testJsonMethod = function(){ ...

  4. 创建jsp页面出现The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path错误

    原因未添加tomcat服务器 第一步: 第二步:

  5. 【JavaWeb】JSP 页面

    JSP 页面 简介 JSP(Java Server Pages),即 Java 的服务器页面.它的主要作用是代替 Servlet 程序回传 HTML 页面的数据,因为 Servlet 程序回传 HTM ...

  6. Servlet跳转到JSP页面后的路径问题相关解释

    一.现象与概念 1. 问题 在Servlet转发到JSP页面时,此时浏览器地址栏上显示的是Servlet的路径,而若JSP页面的超链接还是相对于该JSP页面的地址且该Servlet和该JSP页面不在同 ...

  7. Servlet转发到JSP页面的路径问题

    一.现象与概念 1. 问题 在Servlet转发到JSP页面时,此时浏览器地址栏上显示的是Servlet的路径,而若JSP页面的超链接还是相对于该JSP页面的地址且该Servlet和该JSP页面不在同 ...

  8. Jsp页面跳转和js控制页面跳转的几种方法

    Jsp 页面跳转的几种方法 1. RequestDispatcher.forward() 在服务器端起作用,当使用forward()时,Servlet engine传递HTTP请求从当前的Servle ...

  9. JSP九大内置对象及其作用以及四大域对象

    一,什么是内置对象? 在jsp开发中会频繁使用到一些对象,如ServletContext HttpSession PageContext等.如果每次我们在jsp页面中需要使用这些对象都要自己亲自动手创 ...

随机推荐

  1. Hibernate实现向数据库插入一条数据全过程(Study By Example)

    1.数据库(直接在cmd下进入数据库操作亦可) (1)启动Navicat for MySQL (2)打开连接,创建一个数据库,名为testdb (3)新建表user1,表结构如图所示 2.数据库池 ( ...

  2. WPF CAL 计算器

    界面最终结果: 下载地址:https://skydrive.live.com/redir?resid=25C3908AA2038BDB!148&authkey=!ADR71XdB04LipYE

  3. 10月9日Android学习笔记:活动与服务之间的通信

    最近在照着<第一行代码>这本书来学安卓,顺便记下笔记.主要的内容是Android中服务的第二种启动方式,通过活动绑定服务来启动服务,实现活动与服务之间的通信. 一. 首先创建一个服务类 p ...

  4. Linux (Ubuntu) 下配置VPN服务器

    昨天网上找了下VPN的相关信息,居然各种撞墙,特别郁闷,自己不容易找到的东西,记录下VPN的配置信息 ubuntu 13.1下配置VPN  ,采用PPTP实现, 第一步.安装pptpd,没有安装包记得 ...

  5. iOS开发UI篇—ios应用数据存储方式(归档)

    iOS开发UI篇—ios应用数据存储方式(归档)  一.简单说明 在使用plist进行数据存储和读取,只适用于系统自带的一些常用类型才能用,且必须先获取路径相对麻烦: 偏好设置(将所有的东西都保存在同 ...

  6. ets查询:查询表中的具体一列的所有值

    比如要查询goods表中的ID这一列的所有值: P = [{#goods{upgrade='$1',_ = '_'},[],['$1']}] 要查询ID和Upgrade这两列的值: P2 = [{#g ...

  7. 拓扑编号 vijos1790

    题意就是拓扑排序,要求1的序号尽可能小,然后2的序号尽可能小,3,4... 一开始很容易想到直接贪心,每次选一个入度为0的点,如果有多个,就选编号最小的那个,但是很容易找到反例. 看了下题解,应该是反 ...

  8. iOS流量监控

    http://code4app.com/snippets/one/iOS%E6%B5%81%E9%87%8F%E7%9B%91%E6%8E%A7/5020ba7a6803fae325000000 1. ...

  9. Rhel6-cacti+nagios+ganglia(nginx)配置文档

    (lnmp平台) 系统环境: rhel6 x86_64 iptables and selinux disabled 主机: 192.168.122.185 server85.example.com 1 ...

  10. hehe

    with wares as        (         SELECT distinct a.Wid as wid,         a.Wname as wareName,         a. ...