jsp九大内置对象与四大域对象(转载)

来源:互联网 发布:java poi 自适应宽度 编辑:程序博客网 时间:2024/04/27 14:55

一,什么是内置对象?

在jsp开发中会频繁使用到一些对象,如ServletContext HttpSession PageContext等.如果每次我们在jsp页面中需要使用这些对象都要自己亲自动手创建就会特别的繁琐.SUN公司因此在设计jsp时,在jsp页面加载完毕之后自动帮开发者创建好了这些对象,开发者只需要使用相应的对象调用相应的方法即可.这些系统创建好的对象就叫做内置对象.

在servlet程序中,如果开发者希望使用session对象,必须通过request.getSession()来得到session对象;而在jsp程序中,开发中可直接使用session(系统帮我们创建好的session对象的名字就叫session)调用相应的方法即可,如:session.getId().

二,九大内置对象到底是哪九大呢?

[plain] view plain copy
 print?
  1. 内置对象名          类型  
  2. request        HttpServletRequest  
  3. response       HttpServletResponse  
  4. config         ServletConfig  
  5. application    ServletContext  
  6. session        HttpSession  
  7. exception      Throwable  
  8. page           Object(this)  
  9. out            JspWriter  
  10. pageContext    PageContext   

三,解析几个内置对象

1)out对象对象,对象类型是JspWriter类,相当于带缓存的PrintWriter(不带缓存)

PrintWriter:write("内容")           直接向浏览器输出内容

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

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

a,缓冲区满了

b,刷新缓冲区

c,关闭缓冲区

d,jsp页面执行完毕

2)pageContext对象

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

pageContext作用:可以获取其他八个内置对象

[plain] view plain copy
 print?
  1. //示例:  
  2. pageContext.getOut();  
  3. pageContext.getServletConfig()  
使用场景:在自定义标签时会频繁使用到PageContext对象;或者是定义一个方法需要用到多个对象时,传一个pageContext对象就能解决问题.

四,JSP中四大域对象

分类:

[plain] view plain copy
 print?
  1. ServletContext     context域  
  2. HttpServletRequet  request域  
  3. HttpSession        session域     --前三种在学习Servlet时就能接触到  
  4. PageContext        page域     --jsp学习的  
域对象的作用:保存数据,获取数据,共享数据.

保存数据:

[plain] view plain copy
 print?
  1. pageContext.setAttribute("内容");//默认保存到page域  
  2. pageContext.setAttribute("内容",域范围常量);//保存到指定域中  
  3. //四个域常量  
  4. PageContext.PAGE_SCOPE  
  5. PageContext.REQUEST_SCOPE  
  6. PageContext..SESSION_SCOPE  
  7. PageContext.APPLICATION_SCOPE  

获取数据:

[plain] view plain copy
 print?
  1. pageContext.getAttribute("内容");  
  2. <p>pageContext.getAttribute("name",<span style="font-family:宋体;">域范围常量</span><span style="font-family:Calibri;">);</span></p>//自动在四个域中搜索数据  
  3. pageContext.findAttribute("内容");//在四个域中自动搜索数据,顺序:page域->request域->session域->application域(context域)  

域作用范围:

[plain] view plain copy
 print?
  1. page域:    只能在当前jsp页面使用                (当前页面)  
  2. request域: 只能在同一个请求中使用               (转发)  
  3. session域: 只能在同一个会话(session对象)中使用  (私有的)  
  4. context域: 只能在同一个web应用中使用            (全局的)  

五,总结

坚持每天学一点新技术,坚持写写博客,这就是今天博客的总结!Fighting,bighuan!

原创粉丝点击