九大对象:
内置对象(又叫隐含对象,有9个内置对象):不需要预先声明就可以在脚本代码和表达式中随意使用
JSP中九大内置对象为:
request??????? 请求对象 ?????????? 类型 javax.servlet.ServletRequest?????? 作用域??? Request
response?????? 响应对象???????????? 类型 javax.servlet.SrvletResponse?????? 作用域??? Page
pageContext??? 页面上下文对象?????? 类型 javax.servlet.jsp.PageContext????? 作用域??? Page
session??????? 会话对象???????????? 类型 javax.servlet.http.HttpSession???? 作用域??? Session
application??? 应用程序对象???????? 类型 javax.servlet.ServletContext?????? 作用域??? Application
out??????????? 输出对象???????????? 类型 javax.servlet.jsp.JspWriter??????? 作用域??? Page
config???????? 配置对象???????????? 类型 javax.servlet.ServletConfig??????? 作用域??? Page
page?????????? 页面对象???????????? 类型 javax.lang.Object????????????????? 作用域??? Page
exception????? 例外对象???????????? 类型 javax.lang.Throwable?????????????? 作用域??? page
out:
??? out 对象代表了向客户端发送数据的对象,与“response” 对象不同,
??? 通过“out” 对象发送的内容将是浏览器需要显示的内容,
??? 是文本一级的,可以通过“out” 对象直接向客户端写一个由程序动态生成HTML文件。
??? 常用的方法除了pirnt和println之外,
??? 还包括clear、clearBuffer、flush、getBufferSize和getRemaining,
??? 这是因为“out” 对象内部包含了一个缓冲区,所以需要一些对缓冲区进行操作的方法
???
request:
??? 此对象封装了由 WEB 浏览器或其它客户端生成地 HTTP 请求的细节(参数,属性,头标和数据)。
??? 常用的方法????
??????? getParameter('k')? 获取 url 或 from 中传递的参数对应的值
??????? getAttribute('k')? 对应 setAttribute('k', 'v') 设置的值
??? 在页面
??????? ${}? 取得 setAttribute('k', 'v') 设置的值
??????? ${param.k}? 取得 url 传递的参数值
response:
??? 此对象封装了返回到HTTP客户端的输出,向页面作者提供设置响应头标和状态码的方式。
??? 经常用来设置HTTP标题,添加cookie,设置响应内容的类型和状态,发送HTTP重定向和编码URL。
pageContext:
??? 此对象提供所有四个作用域层次的属性查询和修改能力,它也提供了转发请求到其它资源和
??? 包含其他资源的方法该对象的方法都是抽象方法
session:
??? HttpSession是一个类似哈希表的与单一WEB浏览器会话相关的对象,它存在于HTTP请求之间,可以存储任
??? 何类型的命名对象。
??? 如果不需要在请求之间跟踪会话对象,可以通过在page指令中指定session="false"
??? 需要记住的是pageContext对象也可以与session.getAttribute(),session.setAttribute()一样的方式取
??? 得并设置会话属性。
??? 一般用了保存客户端回话信息,保存 cookies 等。
??? 由Web Server 写入;存于客户端;客户端的每次访问都把上次的session记录传递给Web Server;
??? Web Server读取客户端提交的session来获取客户端的状态信息
application:
??? servlet的环境通过调用 getServletConfig().getContext() 方法获得。
??? 作用域是application(整个程序运行期)。它提供了关于服务器版本,应用级初始化参数和
??? 应用内资源绝对路径,注册信息的方式。
??? application 对象负责提供应用程序在服务器中运行时的一些全局信息,常用的方法有
??? getMimeType和getRealPath等。
config:
??? “config” 对象提供一些配置信息,常用的方法有getInitParameter和getInitParameterNames,
??? 以获得Servlet初始化时的参数。
???
exception:
??? java.lang.Throwable,通过JSP错误页面中一个catch块已经益出但没有捕获的
??? java.lang.Throwable的任意实例,传向了errorPage的URI。作用域为page(页面执行期)。
??? 注意 exception只有在page指令中具有属性isErrorPage="true"时才有效。
page:
??? 指向页面自身的方式
---------------------------------------------------------
Cookie
??? 如果在cookie中设置一个名称为name的值,可以通过${cookie.name}来取得它。
herder 和 herderValues
??? 若要取得用户浏览器的版本信息,可以通过${header[“UserAgent”]}
initParam
??? 如果取得web.xml中参数信息通过${initParam.jdbc}? 等同于
??? Application.getInitParameter();