Request它包含了有关浏览器请求的信息.通过该对象可以获得请求中的头信息、Cookie和请求参数。
Response作为JSP页面处理结果返回给用户的响应存储在该对象中。并提供了设置响应内容、响应头以及重定向的方法(如cookies,头信息等)
Out用于将内容写入JSP页面实例的输出流中,提供了几个方法使你能用于向浏览器回送输出结果。
pageContext描述了当前JSP页面的运行环境。可以返回JSP页面的其他隐式对象及其属性的访问,另外,它还实现将控制权从当前页面传输至其他页面的方法。
Session会话对象存储有关此会话的信息,也可以将属性赋给一个会话,每个属性都有名称和值。会话对象主要用于存储和检索属性值。
Application存储了运行JSP页面的servlet以及在同一应用程序中的任何Web组件的上下文信息。
Page表示当前JSP页面的servlet实例
Config该对象用于存取servlet实例的初始化参数。
Exception在某个页面抛出异常时,将转发至JSP错误页面,提供此对象是为了在JSP中处理错误。只有在错误页面中才可使用<%@page isErrorPage=“true”%>
内置对象的特点:
1.由JSP规范提供,不用编写者实例化。
2.通过Web容器实现和管理
3.所有JSP页面均可使用
4.只有在脚本元素的表达式或代码段中才可使用(<%=使用内置对象%>或<%使用内置对象%>)
九大内置对象:
1.输出输入对象:request对象、response对象、out对象
2.通信控制对象:pageContext对象、session对象、application对象
3.Servlet对象:page对象、config对象
4.错误处理对象:exception对象
对象常用方法说明:
1.out对象(数据流 javax.servlet.jsp.jspWriter)
print(boolean arg0) 输出数据
newLine() 输出换行字符
flush() 输出缓冲区数据
close() 关闭输出流
clear() 清除缓冲区中数据,但不输出到客户端
clearBuffer() 清除缓冲区中数据,输出到客户端
getBufferSize() 获得缓冲区大小
getRemaining() 获得缓冲区中没有被占用的空间
isAutoFlush() 是否为自动输出
2.request对象(请求信息 javax.servlet.http.HttpServletrequest)
getContextPath():这个方法返回的是web应用映射的虚拟目录地址:如ServletDemo应用的虚拟目录是:/ServletDemo
getCookies():这个方法返回的是一个Cookies[],我们在response容器那篇文章中看一个方法是向response容器中存入一个cookie的,这个方法是从Request容器中拿取多个cookies,因为用户在请求的时候会携带很多的cookie,关于Cookie的相关知识,我们会在后面的文章中进行详解
getHeader(String name)/getIntHeader(String name)/getDateHeader(String name):这些方法是获取请求头信息的,只是针对不同的类型的,有字符串类型的,时间类型,数值类型的
getHeaderNames():这个方法是获取所有请求头的字段名称
getHeaders(String name):这个方法是获取一个请求头字段的所有值,因为有时候可能会有相同请求头字段信息,不会覆盖的
getMethod():这个方法是获取客户机的请求方法
getQueryString():这个方法是获取用户请求时的查询参数的,即url后面携带的参数,如:http://localhost:8080/ServletDemo/ServletRequest?username=jiangwei&password=123456,那么getQueryString()方法返回来的值就是username=jiangwei&password=123456
getRequestSessionId():这个方法是获取客户机在请求的时候携带的sessionid值,有关session的相关知识,后面会详解
getRequestURL():这个方法是获取客户机请求的url
getServletPath():这个方法返回的是请求的Servlet的映射路径,比如:ServletRequest映射的是是/ServletRequest
getServerName()/getServerPort():这两个方法是获取服务器的名称和端口号,比如localhost,8080
getSession()/getSession(boolean mode):这两个方法是获取一个session对象,相关之后在session篇会说到
getAttribute(String name):这个方法是从Request域中获取值
getAttributeNames():这个方法是获取Request域中获取所有的字段名称
getParameter(String name):这个方法是获取用户使用get/post方式携带的参数值
getParameterNames():这个方法是获取用户请求时携带的所有参数名称
getParameterMap():这个方法是获取用户请求时携带的参数名称和参数值,并将其组装成一个Map对象
getParameterValues():这个方法是获取用户请求携带的参数值,因为有时候一个参数名称可能对应多个值
setAttribute(String name,Object value):这个方法是设置Request域中的属性值
removeAttribute(String name):这个方法是删除Request域中的属性值
getInputStream()/getReader():这个方法是获取用户请求的时候上传的输入流,比如我们在处理用户上传文件的时候。需要用到这个输入流
setCharacterEncoding(String name):这个方法是设置Request容器的编码
getRemoteAddr()/getRemoteHost():获取客户机的IP地址和主机名
getProctocol():获取协议名称
getRequestDispatcher(String path):获取一个转发对象RequestDispatcher,进行转发操作
3.response对象(响应 javax.servlet.http.HttpServletResponse)
addCookie(Cookie cookie):这个方法是向Response容器中添加一个Cookie,然后服务器容器会自动的将这个Cookie回写给客户机的。
addDateHeader(String name ,long date):这个是向客户机添加一个时间值属性的响应头信息,比如那个缓存的响应头expires
addHeader(String name,String value):这个是向客户机添加一个字符串值属性的响应头信息,比如重定向的响应头location
addIntHeader(String name ,int value):这个是向客户机添加一个字符串属性的响应头信息
containsHeader(String name):这个方法是判断是否含有这个响应头信息字段
encodeURL(String name):这个方法是用于url改写的功能的,这个和session有关,等到说session那篇文章的时候在详细说明
sendRedirect(String name):这个方法是用于请求重定向的,和响应头中的location字段的作用相同
setHeader(String name,String value)/setIntHeader(String name,int value)/setDateHeader(String name,long date):这些方法和addHeader方法是相对应的,唯一和addHeader不同的是,addHeader是向Response中添加一个响应头信息,而setHeader是修改一个响应头信息的。
setStatus(int value):通过这个方法是设置响应码的,比如:200,304,404等。
getOutputStream():通过这个方法可以拿到一个字节流,然后可以向Response容器中写入字节数据,最后客户机向Response容器中拿去数据进行显示
getWriter():通过这个方法可以拿到一个字符流(PrintWriter),然后可以向Response容器中写入字符数据,最后客户机向Response容器中拿去数据进行显示
setContentLength():通过这个方法设置服务器向用户返回的数据长度,我们在HTTP协议详解这篇blog中的那个压缩数据的返回的例子中有说到
setContentType():方法可以直接设置响应头content-type的内容
5.pageContext对象(页面上下文 javax.servlet.jsp.PageContext)
froward(String relativeUrlPath) 重定向到另一页面或 Servlet 组件getAttribute(String name) 获取某范围中指定名字的属性值
findAttribute(String name) 按范围搜索指定名字的属性
removeAttribute(String name) 删除某范围中指定名字的属性
setAttribute(String name, Object value) 设定某范围中指定名字的属性值
getException() 返回当前异常对象
getRequest() 返回当前请求对象
getServletConfig() 返回当前页面的ServletConfig对象
getServletContext() 返回所有页面共享的ServletContext对象
getResponse() 返回当前响应对象
getSession() 返回当前页面的会话对象
6.application对象(应用程序 javax.servlet.ServletContext)
getAttribute(String arg0) 获取应用对象中指定名字的属性值getAttributeNames() 获取应用对象中所有属性的名字,一个枚举
getInitParameter(String arg0) 返回应用对象中指定名字的初始参数值
getServerInfo() 返回Servlet编译器中当前版本信息
setAttribute(String arg0, Object arg1) 设置应用对象中指定姓名的属性值
7.config对象(Servlet的配置信息 javax.servlet.ServletConfig)
getServletContext()