out,request,response,session,application,page,pageContext,exception,config
1.out
JspWriter类的实例,用于向客户端输出内容
常用方法
- void println() 向客户端打印字符串
- void clear() 清除缓冲区,如果是在flush()之后会报异常
- void clearBuffer() 清除缓冲区,如果是在flush()之后会报异常
- void flush() 将缓冲区内容输出到客户端
- int getBufferSize() 返回缓冲区以字节数的大小,如不设缓冲区则为0
- int getRemaining() 返回缓冲区还剩余多少可用
- boolean isAutoFlush()缓冲区满时,是清空还是抛出异常
- void close()关闭输出流
2.request
客户端的请求信息被封装在request对象中,通过它才能了解客户的需求,然后做出响应,它是HttpServletRequest的实例,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 getServlerName()返回接受请求服务器的主机名
request.setCharacterEncoding(“utf-8”);//解决中文乱码问题
利用URL传递参数时,如果参数中有中文,会出现中文乱码问题,不能用此方法解决,需要修改Tomcat服务器配置文件
打开Tomcat根目录,打开conf文件夹找到server.xml 添加URIEncoding=”utf-8”
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="utf-8"/>
3.response
response包含了响应客户端请求的相关信息,但在jsp中很少直接用到它,它是HttpServletResponse的实例,response具有页面作用域,即访问一个页面时,该页面内的response对象只对这次访问有效,其他页面的response对象对当前页面无效
常用方法
- String getCharacterEncoding()返回响应用的是哪种字符编码
- void setContentType()设置响应的MIME类型
- PrintWriter getWriter()返回可以向客户端输出字符的一个对象
- sendRedirect(java.lang.String location)重定向客户端的请求
PrintWriter对象和out对象的区别
out.println("<h1>response内置对象</h1>");
out.print("<hr>");
out.flush();
PrintWriter outer=response.getWriter();
outer.println("大家好,我是response生成的输出流outer对象");
PrintWriter对象打印时总是提前于内置out对象,加上out.flush()后才能使out内置对象先打印输出
请求重定向与请求转发的区别
请求重定向:客户端行为,response.setRedirect(),本质上讲等同于两次请求,前一次请求的对象不会保存,地址栏的URL地址会改变
请求转发:客户端行为,request.getRequestDispatcher().forward(req,resp)是一次请求,转发后请求对象会被保存,地址栏的URL不会改变
4.session
session表示客户端与服务器的一次会话,web中的session指的是用户在浏览某个网站时,从进入网站到浏览器关闭所经过的这段时间,也就是用户浏览这个网站花费的时间
- session对象在第一个jsp页面被加载时自动创建,完成回话期管理
- 当一个客户访问一个服务器时,可能会在服务器的几个页面之间切换,服务器应该通过某种方法知道这是一个客户,就需要session对象
- session对象是HttpSession类的实例
常用方法
- long getCreateTime():返回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将会创建新的会活.
- 注意事项: 注意原有会话还存在 , 只是这个l日的SessionId仍然存在于服务端 ,只不过再也没有客户端会操带它然后交予服务端校验.
- 销毁
Session的销取有三种方式:
1、调用了session.invalidate0方法
2、 Session过期(超时)
3、服务器重新启
Tomcamsession超时时间为30分钟。
设Isession超时有两种方式 :
1.session.setMaxInactiveInterval(时间);//单位是秒
2.在web.xmI配量
<session-config>
<session-timeout>10</session-timeout>
</session-config>//单位是分钟
5.application
- application对象实现了用户间数据的共事, 可存放全局本量。
- application开始于服务器的启动,终止于服务器的关闭.
- 在用户的前后连接或不同用户之间的连接中,可以对application对象的同一属件讲行操作.
- 在任何地方对application对象属性的操作, 解影响到其他用户对此的访间。
- 服务器的启动和关闭决定了application对象的生命.
- application对象是ServletContext类的实例.
常用方法如下:
- public void setAttribute(String name, 〇bject value)使用指定名称将流第定到此会活.
- public Object getAttribute(String name)返回与此会话中的指定名称都定在一起的对象 ,如果没有对象部定在该名称下,则返回 null.
- Enumeration getAttributeNames()返回所有可用属性名的枚举
- String getServerInfo()返回JSP(SERVLET)引事名及版本号
6.pageContext对象
● pageContext对象提供了对JSP;更面内所有的对象及名字空间的访间
● pageContext对象可以访间到本页所在的session,也可以取本员面所在的
application的某一属性值
● pageContext对象相当于员面中所有功能的集大成者
● pageContext对象的本类名也叫pageContext。
常用方法如下:
■ JspWriter getOut0返回当前客户端前应被使用的JspWriter流(out)
■ HttpSession getSession0返回当前;员中的HttpSession对象(session)
■ Object getPage0返回当前员的〇bject对象(page)
■ ServletRequest getRequest0返回当前页的ServIetRequest对象(request)
■ ServletResponsegetResponse0返回当前;员的ServletResponse对象(response)
■ void setAttribute(String name,〇bject attribute)设i,属’性及口性値
■ 〇bject getAttribute(String name,int scope)在指定范国内取属性的值
■ int getAttributeScope(String name)返回某属性的作用范国
■ void forward(String relativeUrlPath)使当前员面重导到另一员面
■ void include(String relativeUrlPath)在当前位I包含另一文件
7.Config对象
config对象是在一个Servlet初始化时, JSP引華向它传達信息用的,此信息包括
Servlet初始化时所要用到的参数(通过属性名和属性値构成)以及服务器的有1e信息(通过传達一个Ser、’letContext对象) ,
常用方法如下:
■ServletContext getServletContext()返回含有服务素相关信息的ServletContext对象■String getInitParameter(String name)返回初始化参数的值
■Enumeration getInitParameterNames()返回Servlet初始化所需所有参数的枚举
8.page对象
page对象就是指向当前JSP员面本身.有点像类中的this指针,它是java.lang.Object 类的实例。常用方法如下:
· dass getClass()返回此Object的类
· int hashCode()返回此Object的hash码
· boolean equals(Object obj)判断此object是否与指定的Object对象相等
· void copy(Object obj)把此0bject拷贝到指定的Object对象中
· Object clone()克隆此Object对象
· String toString()把此Object对象转换成String类的对象
· void notify()唤醒一个等待的线程
· void notifyAll()唤醒所有等待的线程
· void wait(int timeout)使一个线程处于等待直到timeout结束或被唤醒
· void wait()使一个线程处于等待直到被唤醒
9.Exception对象
exception对象是一个异常对象.当一个员面在运行过程中发生了异常.就产生这个对象。如果一个JSP员面要应用此通 ,就必须把isErrorPage设为true.否则无法続降。他实展日ava.lang.Throwable的对象.
常用方法如下:
- String getMessage0返回描述异常的消息
- String toString0返回关于异常的简短描述消息
- void printStackTrace0显示导常及其栈轨迹
- Throwable FillInStackTrace0重写异常的执行栈轨迹