为什么jsp中有9大内置对象

第一,哪9大内置对象?

1.request

2.response

3.Exception

4.pageContext

5.session

6.application

7.config

8.out

9.page

第二,jsp是什么?

全称Java server pages,就是Java服务器页面。所以它的本质还是Java,并不是另一种开发语言。有些人就会说啦,你说是Java它就是啊?证据呢!

证据如下:

1.每个jsp页面的顶部都有这样一句代码

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>

具体什么意思我就不翻译了,但是看见import="java.util.*"这句话就知道它和Java有点关系了。

2.服务器在读.jsp文件的时候,会将其转成.java文件,然后在由编译器处理生成.class文件。

该文件的存在路径是:(Tomcat安装路径)\work\Catalina\localhost\_\org\apache\jsp\jsp

打开其中的.java文件可以看见,.jsp文件已经被转成相对应的类文件了,如下图


(上图为list_jsp.java在notepad++中打开的样子)

从代码中可以看出,该类有4条import语句,前3个包是在JavaEE 6.0 Generic Library中。

该类中有四个方法(每个.jsp生产的.java中都有这个四个方法),如下:


1.getDependants();    //返回值是一个带泛型的Map集合

2._jspInit();    //初始化方法

3._jspDestroy();    //卸载方法

4._jspService();    //此时9大内置对象隆重登场!

第三,欢迎9大内置对象隆重登场!

在_jspService()方法中,方法参数为request和response,且抛出异常;方法中的局部变量里又有剩下的6个内置对象。

1.javax.servlet.http.HttpServletRequest类型的request对象:(接口)


2.javax.servlet.http.HttpServletResponse类型的response对象:(接口)


这里说个题外话,引用数据类型interface就算不写abstract修饰符,它默认也是抽象的,所以写不写都可以。

3.Exception

4.javax.servlet.jsp.PageContext类型的pageContext对象:(抽象类)


5.javax.servlet.http.HttpSession类型的session对象:(接口)


6.javax.servlet.ServletContext类型的application对象:(接口)


7.javax.servlet.ServletConfig类型的config对象:(接口)


8.javax.servlet.jsp.JspWriter类型的out对象:(抽象类)


9.java.lang.Object类型的page对象:(普通类)


--------------------------------------华丽的分割线--------------------------------

有人会问了,为什么_jspx_out和_jspx_page_context这两个不属于内置对象呢?

因为从下面的代码可以看出,它们是分别被out和pageContext赋值的!

补充一点,每个.jsp生成的类都继承org.apache.jasper.runtime.HttpJspBase这个抽象类

实现org.apache.jasper.runtime.JspSourceDependent这个接口。这个抽象类和接口在

(MyEclipse安装路径)\plugins\org.apache.jasper.glassfish_2.2.2.v201205150955.jar中,内容如下:






  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值