Java web JSP九大内置对象和四大作用域

1、JSP内置对象和作用域

九大内置对象

Input/Output有关:request、response、out

Context有关:session、application、pageContext

Servlet有关:page、config

Error有关:exception

  • JSP内置对象是值在JSP页面中个, 不用声明就可以在脚本和表达式中直接使用的对象。
  • 特点:
    • 内置对象由Web容器自动载入,不需要实例化;
    • 内置对象通过Web容器来实现和管理
    • 在所有的JSP中,直接调用内置对象都是合法的

四大作用域

页面域(page scope)、请求域(request scope)、会话域(session scope)、应用域(application scope)分别对应pageContext、request、session、application内置对象。

四个内置对象都可以通过setAttribute(String name, Object value)存储属性;通过getAttribute(String name)获取属性,从而实现属性对象在不同作用域的数据分享。

page域:存储在页面域的对象只对他所在的页面是可以访问的

request域:存储在请求域的对象只在此次请求过程中可以被访问

session域:存储在会话域的对象在整个会话期间(可以包含多次请求)都可以被访问

application域:存储在应用域的对象在整个应用程序运行期间可以被所有JSP和Servlet共享访问

九大内置对象,名称、类型、功能如表下:

对象名称类型功能
requestjavax.servlet.htttp.HttpServletRequest请求对象,提供客户端HTTP请求数据的访问
responsejavax.servlet.http.HttpServletResponse响应对象,用来向客户端输出响应
outjavax.servlet.jsp.JspWriter输出对象,提供输出流的访问
sessionjavax.servlet.http.HttpSession会话对象,保存服务器与每个客户端会话过程中的信息
applicationjavax.servlet.ServletContext应用程序对象,保存整个应用环境信息
pageContextjavax.servlet.PageContext页面上下对象,用于存储当前JSP页面的相关信息
configjavax.servlet.jsp.ServletConfig页面配置对象,JSP页面的配置信息对象
pagejavax.servlet.jsp.HttpJspPage当前JSP页面对象,即this;代表被编译后的Servlet。
exceptionjavax.lang.Throwable异常对象,用于处理JSP页面中的错误

与Input/Output有关:request、response、out:主要用来作为客户端和服务端间的桥梁。

request对象:表示客户端对服务端发送的请求,作用域为一次请求。

response对象:表示服务器对客户端的响应

out对象:表示负责把处理结果输出到客户端

request对象:

  • void setCharacterEncoding(“utf-8”):设置请求的字符编码
  • String getParameter(String name):根据参数名获取参数值
  • String[] getParameterValue(String name):根据参数名获取一组参数值
  • void setAttribute(String name,Object value):以键/值的方式存储请求域属性
  • Object getAttribute(String name):根据属性名获取存储对象数据

response对象:

  • void setContentType(“text/html; utf-8”):响应内容的字符编码
  • void sendRedirect(String url):重定向到指定的URL资源

out对象:

含义:控制管理输出缓冲区(buffer)和输出流(output stream)先客户端页面输出数据

分为:数据输出、缓存区的处理

  • void clear():清除输出缓冲区的内容
  • void clearBuffer():清除缓冲区内容
  • void flush():直接将目前暂存缓冲区的数据刷新输出
  • void close():关闭输出流
  • int getBufferSize():获取目前缓冲区的大小(KB)
  • int getRemaining():获取目前使用后还剩下的缓冲区大小(KB)
  • boolean isAutoFlush():返回true表示缓冲区满是会自动刷新输出:false表示缓冲区满时不会自动清除并产生异常处理。

与Context有关:session、application、pageContext

session对象:表示浏览器和服务器的会话上下文环境;作用域为浏览器和服务器的一次会话

application对象:表示应用程序上下文环境;作用域为整个Web容器的生命周期(在启动时实例化,在容器关闭是销毁)

pageContext对象:表示当前JSP页面上下文环境;

session对象:

一次会话的含义:从客户端连接服务器开始,在关闭浏览器或主动退出后,会话结束。这个过程可以包含浏览器与服务器之间的多次请求和响应。

  • void setAttribute(String name, Object value):以键/值的方式存储会话域
  • Object getAttribute(Stirng name):根据属性名获取属性值
  • void invalidate():使释放session对象空间。

application对象:

  • void setAttribute(String name, Object value):以键/值的方式存储应用域属性
  • Object getAttribute(String name):根据属性名获取属性值
  • void removeAttribute(String name):根据属性名application域中移除属性

pageContext对象:

  • ServletRequest getRequest():获取当前JSP页面的请求对象

  • ServletResponse getResponse():获取当前JSP页面的响应对象

  • HttpSession getSession():获取当前JSP页面的有联系的会话对象

  • ServletConfig getServletConfig():获取当前JSP页面的ServletConfig对象

  • ServletContext getServletContext():获取当前JSP页面的运行环境对象

  • Object getPage():获取当前JSP页面的Servlet实体

  • Exception getException():获取当前JSP页面的异常对象,不过此页面的page指令的isErrorPage属性设为true

  • JspWriter getOut():获取当前JSP页面的输出流

    作用域(scope)

  • Object getAttribute():获取范围为scope,名为name属性的对象

  • void setAttribute():以键/值的方式存储scope范围域属性

  • void removeAttribute():从scope范围移除为name的属性

  • Enumeration getAttributeNamesInScope():从scope范围中获取所有属性的名称

存取域属性的方法setAttribute()中scope参数被定义为四个常量,分别代表四种作用域范围:

PAGE_SCOPE = 1 代表page范围

REQUEST_SCOPE = 2 代表request范围

SESSION_SCOPE = 3 代表session范围

APPLICATION_SCOPE = 4 代表application范围

与Servlet有关:page、config

page对象含义:表示JSP翻译后的Servlet对象;

config对象含义:表示JSP翻译后的Servlet的ServletConfig对象。

与Error有关:Exception

Exception含义:表示JSP页面产生的异常,如果一个JSP页面要应用此对象,必须将此页面中page指令的isErrorPage属性值设为true,否则无法编译。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值