JSP内置对象笔记整理

JSP内置对象 《Java Web开发从入门到实战》第四章

内置对象:在JSP页面中不需要声明和实例化,可以直接在Java程序片和Java表达式部分使用的对象。
分类·:

  1. 与Input/Output有关的内置对象
  2. 与Context有关的内置对象
  3. 与Servlet有关的对象
  4. 与Error有关的内置对象
  • 与Input/Output有关的内置对象1
    • request对象:客户端对服务器端发送的请求
    • response对象:服务器对客户端的响应
    • out对象:把处理结果输出到客户端
  • 与Context有关的内置对象2
    • session对象:浏览器与服务器会话的上下文环境
    • application对象:应用程序(Web应用)的上下文环境
    • pageContext对象:当前JSP页面的上下文环境
  • 与Servlet有关的对象3
    • page对象:JSP文件转换为Java文件后的Servlet对象
    • config对象:JSP文件转换为Java文件后的Servlet的ServletConfig对象
  • 与Error有关的内置对象4
    • exception对象:党JSP网页有错误时将产生异常,该对象用来处理这个异常

request对象5

常用方法

在这里插入图片描述

  1. 使用·request对象获取客户端提交的信息
  • String getParameter(String name)
  • String[] getParameterValues(String name)
  1. NullPointerException异常
使用request对象存取数据
  1. setAttribute(String key,Object obj)方法6
  1. Object getAttribute(String key)方法:获取请求域(例如forword转发)中的关键字为key的对象(属性值)。
  2. 在实际工程中,request对象经常用于存储、传递本次请求的处理结果。
中文乱码问题
  1. request.setCharacterEncoding(String code)方法设置统一字符编码

response对象7

动态改变contentType属性值
  1. JSP页面用page指令标记设置contentType属性值
  2. 在page指令中只能为contentType属性指定一个值
  3. response。setContentType(String s)可以重新设置contentType属性值
设置响应表头
  1. response.setHeader(String name,String value)设置指定名字的HTTP文件头值,以此操作HTTP文件头
  2. 每3s刷新页面:response.serHeader(“refresh”,“3”);
  3. 3s后跳转页面:response.serHeader(“refresh”,“3;url=another.jsp”);
使用response对象重定向
  1. response.sendRedirect(String url):将客户端引导至另一个页面,浏览器地址栏出现的重定向页面的URL为绝对路径。
  2. forward动作标记与response对象调用sendRedirect()的比较:
  • forward为服务器端跳转,浏览器的地址栏不变;sendRedirect()为客户端跳转,浏览器的地址栏变为新页面的URL。
  • 执行到forward标记出现处停止当前JSP页面的继续执行,而转向标记中page属性指定的页面;sendRedirect()在所有代码执行完毕后再跳转。
  • 使用forward、request请求信息能够保留到下一个页面;使用sendRedirect()不能保留request请求信息。
    • forward传递参数格式:
<jsp:forward page="info.jsp">
	<jsp:param name="no" value="001"/>
	<jsp:param name="age" value="18"/>
</jsp:forward>

response对象的sendRedirect()传递参数格式:

response.sendRedirect("info.jsp?sno=001&sage=18");

out对象9

常用方法

在这里插入图片描述

session对象10

  • 浏览器与Web服务器之间使用HTTP协议11进行通信。
  • Web服务器使用内置对象session来存放有关连接的信息。
  • session对象指的是客户端与服务器端的一次会话,从客户端连到服务器端的一个Web应用程序开始,直到客户端与服务器端断开为止。
session对象的ID
  1. Web服务器为每个用户自动创建一个session对象,为每个session对象分配一个唯一标识的String类型的sessionID。
  2. 每个用户对应一个session对象,不同用户的session对象不同。
  3. session.getId()方法获取session对象的ID。
  4. 一个用户在同一个Web服务中只有一个session对象,当用户访问相同Web服务的其他页面时,Web服务器不会再重新分配session对象,知道关闭浏览器或session对象达到生存期限。而当用户重新打开浏览器,Web服务器又重新创建新的session对象。
  5. 用户在多个不同的Web服务中对应的session不同,一个Web服务对应一个session对象。
使用session对象存取数据12
  • 处理数据的方法
    • public void setAttribute(String key,Object obj):将obj指定对象存到session对象中,key为所保存的对象指定一个关键字,若两个对象关键字相同,先保存的对象被清除。
    • public Object getAttribute(String key):获取session对象中关键字为key的对象
    • public void removeAttribute(String key):从session中删除关键字key对应的对象
    • public Enumeration getAttributeNames() :产生枚举对象,使用nextElements()遍历session中各个对象所对应的关键字
session对象的生命周期
  • 依赖因素
    • 用户是否关闭浏览器
    • session对象是否调用invalidate()方法
    • session对象是否达到设置的最长“发呆”时间13
    • 与session对象生命周期相关的方法:
      在这里插入图片描述
  • 修改最长“发呆”时间:
  • (1)Tomcat安装路径->conf->web.xml->30,单位(分)
  • (2)session.setMaxInactiveInterval(int time),单位(秒)

application对象14

  • 客户端浏览不同的Web服务,将产生不同的的application对象。保存在application对象中的数据不仅可以跨页面分享,还可以由所有用户共享。
  • 有些Web服务器不能直接使用application对象,必须使用父类ServletContext声明这个对象,然后使用getServletContext()方法为application对象进行实例化。
使用application对象存取数据
  • 处理数据的方法:
    • public void setAttribute(String key,Object obj):将obj指定对象存到application对象中,key为所保存的对象指定一个关键字,若两个对象关键字相同,先保存的对象被清除。
    • public Object getAttribute(String key):获取application对象中关键字为key的对象
    • public void removeAttribute(String key):从application中删除关键字key对应的对象
    • public Enumeration getAttributeNames() :产生枚举对象,使用nextElements()遍历application中各个对象所对应的关键字
pageContext对象15
  • pageContext对象可以访问当前JSP页面的所有内置对象

  • pageContext对象获取内置对象的方法:
    在这里插入图片描述在这里插入图片描述

page对象16
config对象17
exception对象18
  • JSP页面使用条件:
    • page指令的isErrorPage设置为true,否则无法编译。
JSP的四种作用域
  • 对象的作用域:对象的生命周期和可访问性。

    • 页面域(page scope)
      • 生命周期:页面执行期间,存储在页面域中得对象只能在它所在的页面被访问。
      • 内置对象:pageContext
    • 请求域(request scope)
      • 生命周期:一次请求过程,包括请求被转发(forward)或者被包含(include)的情况,存储在请求域中的对象只有在此次请求中才可以被访问。
      • 内置对象:request
    • 会话域(session scope)
      • 生命周期:某个客户端与服务器所连接的时间,客户端在第一次访问服务器时创建会话,在会话过期或用户主动退出后会话结束,存储在会话域中的对象在整个会话期间(可以包含对此请求)都可以被访问。
      • 内置对象:session
    • 应用域(application)
      • 生命周期:从服务器开始执行服务到服务器关闭为止,其生命周期时4个作用域时间最长的,存储在应用域中的对象在整个应用程序运行期间可以被所有JSP和Servlet共享访问。
      • 内置对象:application
  • 以上四个内置对象都可以通过setAttribute(String key,Object obj)方法存储数据,getAttribute(String key)获取数据。


  1. 主要用来作为客户端和服务器间的通信桥梁 ↩︎

  2. Context(上下文) ↩︎

  3. ↩︎
  4. ↩︎
  5. request对象的类型为javax.servlet.http.HttpServletRequest ↩︎

  6. 将参数obj指定的对象保存到request对象中,key为所保存的对象指定一个关键字。若保存的两个对象的关键字相同,则先保存的对象将被清除。 ↩︎

  7. request对象对请求信息进行封装,与request对象对应的是response对象。response对象的类型为javax.servlet.http.HttpServletResponse,对客户端的请求做出动态响应8↩︎

  8. 动态改变contentType属性值、设置响应表头、response重定向等。 ↩︎

  9. out对象的类型为javax.servlet.jsp.JspWriter,是一个输出流,用来向客户端浏览器输出数据。 ↩︎

  10. session对象是浏览器与服务器会话上下文环境,它的类型为javax.servlet.http.HttpSession。 ↩︎

  11. 无状态协议,客户端向服务器发送请求(request),服务器返回响应(response),连接关闭,服务器端不保留连接相关信息。 ↩︎

  12. 可以保存用户在访问某个Web服务期间的数据 ↩︎

  13. 用户对某个Web服务发出的两次请求之间的时间。Tomcat允许用户最长“发呆”时间为30分钟。 ↩︎

  14. Web服务器启动后产生唯一的内置对象application,实现application对象实现了javax.servlet.ServletContext接口。任何用户在访问同一Web服务的各个页面时共享一个application对象,指定服务器关闭。application对象对所有用户都是相同的,任何用户对该对象存储的数据进行操作都会影响到其他用户。 ↩︎

  15. 即页面上下文对象,表示当前页面运行环境,用于获取当前JSP页面信息,作用范围为当前JSP页面。pageContext对象的类型为javax.servlet.jsp.HttpJspPage.PageContext。 ↩︎

  16. 一个与Servlet有关的内置对象,表示JSP文件转译后的Servlet对象,代表JSP页面本身,即this。可调用Servlet类所定义的方法。page对象的类型为javax.servlet.jsp.HttpJspPage。 ↩︎

  17. 页面配置对象,表示当前JSP页面转译后的Servlet的ServletConfig对象,存储一些初始数据。实现了java.servlet.ServletConfig接口。 ↩︎

  18. 与Error有关的内置对象,表示JSP页面产生的异常。 ↩︎

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值