1.什么叫做jsp的内置对象?
JSP对象是WEB容器创建的一组对象,不需要使用new关键字就可以使用jsp的内置对象
2.web程序的请求响应模式
1)用户向服务器发出请求(request)
2)服务器给用户给出响应(response)
3.什么是缓冲区?
缓冲区:buffer,简单的来说就是内存中的一块区域用来保存临时数据的。
4.JSP中有九大内置对象
分别是out,request,response,application,page,pageContext,session,exception,error.
1)内置对象out
- out是JspWrite的实例,经常被用来向客户端输出内容常用的对象
out常用的方法
void println():向客户端打印字符串
void clear():清除缓冲区的内容,如果在flush之后调用会抛出异常
void clearBuffer():清除缓冲区的内容,如果在flush之后调用不会抛出异常
void flush():将缓冲区的内容输出到客户端
int getBufferSize():返回缓冲区以字节数的大小,如果不设置缓冲区则为0
int getRemaining():返回缓冲区还剩余多少
boolean isAutoFlush():返回缓冲区满时,是自动清除还是抛出异常
void close():关闭输出流
2)内置对象request
它是客户端的请求信息被封装在request对象当中,通过它才可以了解到客户的需求,然后做出响应。它是继承于 HttpServletRequest的,是HttpServletRequest的一个实例。 request 对象具有请求域,也就是说在完成客户端的 请求之前,request对象是一直有效的。
request常用方法
String getParameter(String name):返回name指定的参数值
String getParameterValues(String name):返回包含参数name的数组
void setAttribute(String,Object):存储此请求中的属性
Object getAttribute(String name):返回指定的属性的属性值
String getContentType():得到请求体的MIME类型
String getProtocol():返回请求用的协议和版本类型号
String getServerName():返回接收请求的服务器的主机名字
int getServerPort():返回服务器接受此请求所使用的端口号
String getCharacterEncoding():返回字符编码方式
void setCharacterEncoding():设置请求的编码方式
int getContentLength():返回请求体的长度(以字节数返回)
String getRemoteAddr():返回发送此请求的客户端IP地址
String getRealPath():返回一个虚拟路径的真实路径
String request.getContextPath():返回上下文路径
3)内置对象response
response对象包含了响应客户端请求的相关信息,在jsp中很少直接用到,它继承于HttpServletResponse,是 HttpServletResponse的一个实例,response对象具有页面作用域,即 访问一个页面时,该页面内的response对 象只能对这次访问是有效的,其他页面上的response对象对当前页面是无效的。
response的常用方法:
String getCharacterEncoding():返回响应用的是什么字符编码方式
void setContentType():设置响应的MIME类型
PrintWriter getWriter():返回可以向客户端输出字符的一个对象
sendRedirect(java.lang.String location):重新定向客户端请求
4)内置对象session
session表示的是客户端和服务器端的一次会话
web中的session指的是用户在浏览某个网站的时候,从进入网站到浏览器关闭的过程,也就是说是用户浏览该网 站所花费的时间
session实际是一个特定的时间概念
在服务器的内存中保存着不同用户的session
session对象
session对象是jsp的一个内置对象
session对象在第一个jsp页面被装载的时候自动创建,完成会话期的管理
一个会话指的是在一个用户打开浏览器并且将其连接到服务器上开始,到该用户关闭该浏览器服务结束的过程
当一个客户需要访问一个服务器时,可能会在服务器的页面之间进行切换,服务器应该通过某种方式来知道这个 是同一个用户,此时就需要使用session对象
session对象是继承于HttpSession的,它是HttpSession的一个实例。
tomcat默认的session超时时间为30分钟
session对象常用的方法
long getCreationTime():返回session创建时间
public String getId():返回session创建时jsp引擎为他设置的唯一ID号
public Object setAttribute(String name,Object value):使用指定名称将对象绑定到此对话中
public Object getAttribute(String name):返回与此会话中的名称绑定在一起的对象,如果没有对象绑定在该名称 下面,则返回null
String getValueNames():返回一个包含此session的所有可用属性数组
int getMaxInactiveInterval():返回两次请求间隔多长时间此session被取消(单位秒)
session的声明周期
创建:
当客户端第一次访问某个jsp或者servlet的时候,服务器会把当前会话创建一个sessionId,每次客户端想服务 端发送请求时,都会将此sessionId携带过去,服务端会对 sessionId进行校验。
活动:
某次会话中通过超链接打开的新页面属于同一个会话。
只要当前页面会话没有全部的关闭,重新打开浏览器窗口访问同一个项目资源时属于同一个会话。
除非本次页面的所有会话都关闭后再重新访问某个jsp或者servlet时会创建新的会话。
注意事项:原有的会话还会存在,只是这个旧的sessionId会存在服务器端,只是再也没有客户端携带它给服务器端进行校验。
销毁:
销毁有三种方式:
调用session.invalidate()方法
session超时
重启服务器
设置session超时的两种方式:
session.setMaxInactiveInterval(时间);//单位是秒
在web.xml中进行配置(此处的20表示的是20分钟)
<session-config>
<session-timeout>
20
</session-timeout>
</session-config>
5)application对象
application对象实现了用户间数据的共享,可以存放全局变量
application对象开始于服务器的启动,终止于服务器的停止
在用户的前后连接或不同用户之间的连接中,可以对application对象的同一属性进行操作
在任何地方对于application对象属性的操作,都将会影响到其他的用户对此的访问
服务器的启动和关闭决定了application对象的生命
application对象是servletContext类的实例
application对象的常用方法:
public void setAttribute(String name,Object value):使用指定名称将对象绑定到此对话中
public Object getAttribute(String name):返回与此会话中的名称绑定在一起的对象,如果没有对象绑定在该名称 下面,则返回null
Enumeration getAttributeNames():返回所有可用属性名的枚举
String getServerInfo():返回jsp(servlet)引擎名和版本号
6)page对象
page对象就是当前jsp页面本身,有点像类中的this指针,它是java.lang.Object类的实例
page对象常用的方法:
class getClass():返回此Object的类
int hashCode()返回Object的hash码
boolean equals(Object obj)判断此object是否与指定的Object对象相等
void copy(Object obj):把此object拷贝到指定的object对象中
Object clone():克隆此Object对象
String toString():把此Object对象转化为String类的对象
void notify():唤醒一个等待线程
void notifyAll():唤醒所有的等待线程
void wait(int timeout):使一个线程处于等待直到timeout结束或者被唤醒
void wait():使一个线程处于等待直到被唤醒
7)pageContext对象
pageContext对象提供了对jsp页面所有的对象及名字空间的访问
pageContext对象可以访问本页所在的session,可以去本页面所在application的某一个属性值
pageContext对象相当于页面中所有功能的集大成者。
pageContext对象的本类名也叫做pageContext
pageContext对象的常用方法:
JspWriter getOut():返回当前客户端响应被使用的JspWriter流(out)
HttpSession getSession():返回当前页中的HttpSession(session)
Object getPage():返回当前页的Object对象(page)
ServletRequest getRequest():返回当前页的ServletRequest对象(request)
Servletresponse getresponse():返回当前页的Servletresponset对象(response)
void setAttribute(String name,Object value):设置属性及属性值
Object getAttrivute(String name,int scope):在指定范围内取属性值
int getAttributeScope(String name):返回某属性的作用范围
void forward(String relativeUrlpath)使得当前页面重导到另外一个页面
void include(String relativeUrlpath):在当前位置包含另外一个文件
8)内置对象config
config对象是在一个servlet初始化的时候,jsp引擎向他传递信息用的,此信息包括servlet初始化时所需要的参数 (通过属性名和属性值构成)以及服务器的相关信息(通过传递一个servletContext对象)
config对象的常用方法:
servletContext getServletContext():返回含有服务器相关信息的servletContext对象
String getInitParameter(String name):返回servlet初始化时所需所有参数的枚举
9)exception对象
exception对象是一个异常的对象,当在一个页面发生异常的时候,就会产生这个对象。如果一个jsp页面要使用 这个对象,那么它就需要在这个jsp页面上面把isErrorPage设置为true,否则无法编译,实际它是java.lang.Throwable 对象
exception对象常用的方法:
String getMessage():返回描述异常的信息
String toString():返回关于异常的简短描述信息
void printStackTrace():显示异常以及栈的轨迹
Throwable FillInStackTrace():重写异常的执行栈轨迹