JSP九大内置对象

Posted xjs1874704478

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JSP九大内置对象相关的知识,希望对你有一定的参考价值。

1.什么是JSP九大内置对象

  在jsp中无需创建就可以直接使用的9个对象,它们是:

  * out(JspWriter):等同于response.getWriter(),用来向客户端发送文本数据;

    >jsp的输出流,用来向客户端响应。

  * config(ServletConfig):对应“真身”中的ServletConfig;---在web.xml文件中配置JSP的信息

  * page(当前JSP的真身类型):当前JSP页面的 “this” ,即当前对象;

     >当前jsp对象!它的引用类型是Object,即真身中有如下代码:Object page  =  this;

  * pageContext(PageContext) :页面上下文对象,它是最后一个没讲的域对象;

     > 1个顶9个!

  * exception(Throwable):只有在错误页面中可以使用这个对象;

  * request(HttpServletRequest):即HttpServletRequest类的对象;

  * response(HttpServletResponse):即HttpServletResponse类的对象;

  * application(ServletContext):即ServletContext类的对象;

  * session(HttpSession):即HttpSession类的对象,不是每个JSP页面中都可以使用,如果在某个JSP页面中设置<%@page session="false"%>,说明这个页面不能使用session。

 

  在这9个对象中有很多是极少会被使用的,例如:config、page、exception基本不会使用。

  在这9个对象中有两个对象不是每个JSP页面都可以使用的:exception、session。

  在这9个对象中有很多前面已经学过的对象:out、request、response、application、session、config。

 

1.pageContext

  *一个顶九个!

  *Servlet中有三大域,而JSP中有四大域,它就是最后一个域对象!

    >ServletContext:整个应用程序

    >session:整个会话(一个会话中只有一个用户)

    >request:一个请求链!

    >pageContext:一个jsp页面!这个域是在当前jsp页面和当前jsp页面中使用的标签之间共享数据!

      >域对象:有setAttribute(String name,Object value); setAttribute(String name, Object value,int scope);等方法

      >代理其他域:如pageContext.setAttribute("xxx","XXX",pageContext.SESSION_SCOPE);这个是向session域中保存xxx属性及其值。

      >全域查找:pageContext.findAttribute("xxx");  从小到大(四大域中)查找。

      >获取其他8个内置对象:如:pageContext.getSession()、pageContext.getRequest()。

 2.include--->静态包含

  * <%@include %>:它是在jsp编译成Java文件时完成的!他们共同生成一个Java文件(就是一个servlet),然后在生成一个class文件!

  * RequestDispatcher的include()是一个方法,包含和被包含的是两个servlet,即两个.class文件!他们只是把响应的内容在运行时合并了!

  *(包含)作用:把页面分解了,使用包含的方式组合在一起,这样一个页面中不变的部分,就是一个独立的jsp,而我们只需要处理变化的页面。

例:

hel.jsp:省略了部分代码

  <body>
    <%
        String name="ZhangSan";
     %>
     <%@ include file="lo.jsp" %>
  </body>

lo.jsp:

<%
    out.print(name);
 %>
//只有这三行,然后这两个jsp在编译的时候生成一个java文件

 

3.taglib--->导入标签库

  *两个属性:

    >prefix:指定标签库在本页面的前缀!由我们自己来起名称!

    >uri:指定标签库的位置!

    >  例如: <%@taglib prefix="s"  uri="/xxx"%>   前缀的用法:<s:text>

 

以上是关于JSP九大内置对象的主要内容,如果未能解决你的问题,请参考以下文章

jsp九大内置对象及四个作用域

jsp九大内置对象及四个作用域

JavaWeb--jsp九大内置对象完整总结

面试题:jsp九大内置对象

jsp九大内置对象和四大作用域

整理一下JSP的九大内置对象和四大作用域