JSP第二篇

来源:互联网 发布:物联网数据采集与处理 编辑:程序博客网 时间:2024/06/09 17:32

JSP第二篇

JSP内置对象

什么是JSP内置对象

在jsp开发中,会频繁使用到一些对象。例如HttpSession,ServletContext,ServletContext,HttpServletRequet。如果我们每次要使用这些对象都去创建这些对象就显示非常麻烦。所以Sun公司设计Jsp时,在jsp页面加载完毕之后就会自动帮开发者创建好这些对象,而开发者只需要直接使用这些对象调用方法即可!,这些创建好的对象就叫内置对象!!!!

九大内置对象

内置对象类型requestHttpServletRequestresponseHttpServletResponseconfigServletConfigapplicationServletContextsessionHttpSessionexceptionThrowablepageObject(this)outJspWriterpageContextPageContext
  • out对象

out对象类型,JspWriter类,相当于带缓存的PrintWriter

PrintWriter:

wrier(内容): 直接向浏览器写出内容。

JspWriter

writer(内容): 向jsp缓冲区写出内容

当满足以下条件之一,缓冲区内容写出:

  1. 缓冲区满了
  2. 刷新缓存区
  3. 关闭缓存区
  4. 执行完毕jsp页面
  • pageContext对象

pageContext对象的类型是PageContext,叫jsp的上下文对象

  1. 可以获取其他八个内置对象
  2. 本身是一个域对象

ServletContext context域

HttpServletRequet request域

HttpSession session域 --Servlet学习的

PageContext page域 --jsp学习的

作用: 保存数据和获取数据,用于共享数据

  1. 保存数据
    1. 默认情况下,保存到page域

      pageContext.setAttribute("name");

    2. 可以向四个域对象保存数据

      pageContext.setAttribute("name",域范围常量)

  2. 获取数据
    1. 默认情况下,从page域获取

      pageContext.getAttribute("name")

    2. 可以从四个域中获取数据

      pageContext.getAttribute("name",域范围常量)

      域范围常量:

      PageContext.PAGE_SCOPE PageContext.REQUEST_SCOPE PageContext..SESSION_SCOPE PageContext.APPLICATION_SCOPE

    3. 自动在四个域中搜索数据

      pageContext.findAttribute("name");

      顺序: page域 -> request域 -> session域->context域(application域)

Jsp中的四个域对象

  • 四个域对象:
名称对应的域pageContextpage域requestrequest域sessionsession域applicationcontext域
  • 域对象作用:保存数据 和 获取数据 ,用于数据共享。
  • 域对象方法:

setAttribute("name",Object) 保存数据

getAttribute("name") 获取数据

removeAttribute("name") 清除数据

  • 域对象作用范围:

page域: 只能在当前jsp页面中使用(当前页面) request域: 只能在同一个请求中使用(转发) session域: 只能在同一个会话(session对象)中使用(私有的) context域: 只能在同一个web应用中使用。(全局的)

JSP的最佳实践

  • Servlet技术: 开发动态资源。是一个java类,最擅长写java代码
  • jsp技术: 开发动态资源。通过java代码最擅长输出html代码。

总结:各取所长,Servlet处理业务逻辑,JSP处理页面输出或从Servlet中取出数据进行展示

0 0
原创粉丝点击