jsp总结(二)--jsp九大对象和四大作用域

参考:https://blog.csdn.net/bighuan/article/details/68925746

参考:http://www.cnblogs.com/mengzhen123/p/5968831.html

一,什么是内置对象?


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

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

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


内置对象名          类型
request           HttpServletRequest
response       HttpServletResponse
config         ServletConfig
application    ServletContext
session        HttpSession
exception      Throwable
page           Object(this)
out            JspWriter
pageContext    PageContext 

Jsp内置对象

功能

主要方法

out

扫描二维码关注公众号,回复: 4402488 查看本文章

向客户端输出数据

print() println() flush() clear() isAutoFlush() getBufferSize() close() …………

request

向客户端请求数据

getAttributeNames() getCookies() getParameter() getParameterValues() setAttribute() getServletPath() …………..

response

封装了jsp产生的响应,然后被发送到客户端以响应客户的请求

addCookie() sendRedirect() setContentType()

flushBuffer() getBufferSize() getOutputStream()

sendError() containsHeader()……………

application

   

config

表示Servlet的配置,当一个Servlet初始化时,容器把某些信息通过此对象传递给这个Servlet

getServletContext() getServletName() getInitParameter() getInitParameterNames()……………

page

Jsp实现类的实例,它是jsp本身,通过这个可以对它进行访问

flush()………

pagecontext

为JSP页面包装页面的上下文。管理对属于JSP中特殊可见部分中己经命名对象的该问

forward() getAttribute() getException() getRequest() getResponse() getServletConfig()

getSession() getServletContext() setAttribute()

removeAttribute() findAttribute() ……………

session

用来保存每个用户的信息,以便跟踪每个用户的操作状态

getAttribute() getId() getAttributeNames() getCreateTime() getMaxInactiveInterval()

invalidate() isNew()

exception

反映运行的异常

getMessage()…………

三,解析几个内置对象


1)out对象对象,对象类型是JspWriter类,相当于带缓存的PrintWriter(不带缓存)
PrintWriter:write("内容")           直接向浏览器输出内容

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

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

a,缓冲区满了

b,刷新缓冲区

c,关闭缓冲区

d,jsp页面执行完毕

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

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

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


四,JSP中四大域对象
分类:


ServletContext     context域
HttpServletRequet  request域
HttpSession        session域     --前三种在学习Servlet时就能接触到
PageContext        page域     --jsp学习的
域对象的作用:保存数据,获取数据,共享数据.

保存数据:
pageContext.setAttribute("内容");//默认保存到page域
pageContext.setAttribute("内容",域范围常量);//保存到指定域中
//四个域常量
PageContext.PAGE_SCOPE
PageContext.REQUEST_SCOPE
PageContext..SESSION_SCOPE
PageContext.APPLICATION_SCOPE

获取数据:
pageContext.getAttribute("内容");
pageContext.getAttribute("name",域范围常量);

//自动在四个域中搜索数据 pageContext.findAttribute("内容");//在四个域中自动搜索数据,顺序:page域->request域->session域->application域(context域)


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

猜你喜欢

转载自blog.csdn.net/lsx2017/article/details/84793249