JSP内置对象的理解

JSP包含九种内置对象,包含:(以下都是对象的引用,而不是类名。)
1、request,请求对象
2、response,响应对象
3、pageContext,页面上下文对象
4、session,会话对象
5、application,应用程序对象
6、out、输出对象
7、config,配置对象
8、page,页面对象
9、exception,异常对象

重点讲解:
request ,请求对象
session,会话对象
application,应用程序对象


request是javax.servlet.ServletRequest的子类 ,作用域是Request。
response是javax.servlet.ServletResponse的子类,作用域是page。
pageContext是javax.servlet.jsp.PageContext,作用域是page。
session是javax.servlet.http.HttpSession ,作用域是session、、
application是javax.servlet.jsp.PageContext,作用域是Application、、
out是javax.servlet.jsp.JspWriter,作用域是page
config是javax.servlet.SerletConfig,作用域是page、、
Page 是java.lang.Object,作用域是Page、、
exception是java.lang.Throwable,作用域是page、、


1、request对象代表的是来自客户端的请求,例如我们在form表单中填写信息等,是最常用的对象。

(1)最常用的方法是getParameter()和getParameterNames()和getParameterValues()。
这三者的区别是:
---getParameter()是getParameterValues()的特例。表示请求参数值只有一个。如果请求参数值有多个请使用getParameterValues()方法。
例如:在多选框的情况下,则是使用getParameterValues()方法来获取用户选择的多个复选框的值。

 baskeetball 
volleyball
``` (2)getAttribute(String name)和setAttribute(String name, Object o)这两个方法和session的一样,但是作用不一样。 说明:getAttribute以对象的形式返回特定名称的属性值,这个方法允许Servlet引擎给出一个客户端请求的特定信息。 如果所给名称的属性不存在将返回空值。 返回值是:一个包含属性值的对象,当属性不存在时为空。 通过getAttribute获取与该类型相对应的对象值(获取到之后一般要进行向下类型转换,将属性值转换为真正的对象) 这两个方法一般是成对出现的,而且都是在服务器端内部执行的,客户端不知道服务器是否执行过这两个方法。 (3) request的getParameter方法的作用是获取到客户端通过表单或URL请求参数所发送过来的参数值,是客户端与服务器端之间的交互。服务器端想获得客户端发过来的数据就要使用getParameter方法来获取。没有setParameter方法与之对应。 (4)request对象内数据的存活范围就是在request对象的存活范围内,当客户端向服务器端发送一个请求,服务器想客户端返回一个响应后,该请求对象就被销毁了;之后再向服务器端发送新的请求时,服务器端会创建新的request对象,该request对象与之前的request对象有任何关系因此也无法获得之前的request对象所存放的任何数据。 (5)session对象内的存活范围(先认为。。先认为只要服务器不关闭,session对象就一直存在,因此在同一个浏览器窗口中,无论向服务器端发送多少个请求,session对象只有一个) 2、response response涉及的东西比较底层,所以一般输出东西都用out。 方法有getOutputStream()等。 3、pageContext pageContext对象直译时可以称作“页面上下文”对象,代表的是当前页面运行的一些属性,常用的方法包含findAttribute、getAttribute、getAttributesScope和getAttributeNamesInscope, 一般情况下,“pageContext ”对象只有在项目所面临的情况比较复杂的情况下,才会利用页面属性来辅助处理。一般Servlet容器会用到该对象。 4、session session对象代表服务器与客户端所建立额会话,当需要在不同的jsp页面中保留客户信息的情况下使用,比如在线购物,客户轨迹跟踪等。 引用session的原因: HTTP是无状态(stateless)协议; Web Server对每一个客户端请求都没有历史记忆。 Session用来保存客户端的状态信息。 5、application application对象负责提供应用程序在服务器中运行的一些全局信息,常用的方法有getMimeType和getRealPath等。 application也有getAttribute和setAttribute。 只要服务器没有关闭,application对象中的数据就会一直存在。在整个服务器运行的过程中,application对象只有一个。 总之request、session、application这三个对象的范围是逐个增加的:request只在一个请求范围内,?session?则是在浏览器窗口范围内,而application则是作用在整个服务器运行的范围之内。 6、out out对象代表了向客户端发送数据的对象,与response对象不同,通过out对象发送的内容,是文本一级的,可以通过out对象直接向客户端写一个由程序动态生成的HTML文件,常用的方法有print、println之外、还有clear、clearBUffer、flush、getBufferSize和getRemaining,这是因为out对象内部包含了一个缓冲区,所以需要一些对缓冲区进行操作的方法。 7、config、page、exception config对象提供一些配置信息,常用的方法有getInitParameter和getIntparameterNames,以获得Servlet初始化时的参数。 page对象代表了正在运行的由JSP文件产生的类对象。 exception对象则代表了jsp文件运行时所产生的异常对象,此对象不能在在一般的jsp文件中直接使用,而只能在使用了<%@page isErrorPage="true"%>的jsp文件中使用。

你可能感兴趣的:(JSP内置对象的理解)