jsp九大内置对象。不需要new就可以直接使用的对象。
分别是(前5个比较常用):
out.
request
response
application
session
page
pagecontext
exception
config
一、web应用的响应模式request/response模式。
用户或者客户端向服务器发送请求(request),服务器收到请求后做出回应(response),并返回给用户或者客户端。
二、什么叫缓冲区
简单理解:缓冲区就是内存中开辟一块区域,用来放置临时数据。
三、out对象
out对象是jspwriter类的实例,是向客户端(指用户的浏览器)输出内容的常用对象。
常用方法:
void println():向客户端输出字符串
void flush():将缓冲区内容输出到客户端
void clear():清除缓冲区内容,如果在flush之后调用会抛出异常。
void clearbuffer():清除缓冲区内容,在flush之后调用不会掏出异常。
int getbuffersize():获得缓冲区大小(字节数);
int getremaining():返回缓冲区剩余字节数量,及剩余空间大小。
boolean isAutoFlush():设置是缓冲区满时,是自动清除还是抛出异常。true自动清除?
void close();关闭输出流。
四、request对象
客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出相应。他是HttpServletRequest类的实例。request对象具有请求域,就是说完成完成客户端的请求之前,request对象一直有效。常用方法如下:
String getParameter(String name):返回name指定参数的参数值。
String[] getParameterValues(String name)返回所有name指定的参数的参数值的数组。常用于复选框。
Void setAttribute(String name,Object obj)储存此请求中的属性。将数据存放在request对象中,可以在响应页面中取出。用于页面间传递数据。
Object getAttribute(String name)返回指定属性的属性值。
String getContentType()得到请求提的MIME类型。文档类型???
String getProtocol()返回请求用的协议类型及版本号。
String getServerName() 返回街艘请求的服务器主机名。
setCharacterEncoding("utf-8")设置接受request对象时的字符编码。无法解决通过URL传递中文参数时的乱码问题。此类乱码需要修改Tomcat服务器的server.xml配置文档,在文档的<connector/>标签中添加URLEncoding="utf-8" 来实现。需要重启Tomcat服务器才能生效。
int getServerPort()返回服务器接受此请求所用的端口号
String getCharacterEncoding()返回字符编码方式
int getContentLength()返回请求体的长度(字节数)
String getRemoteAddr()返回发送此请求的客户端IP地址
String getRealPath(String path)返回虚拟路径的真实路径
String request.getContextPath()返回上下文路径。上下文路径指的是发送请求页面的相对路径的上层目录
五、response对象
Response对象包含了相应客户请求的有关信息,但jsp中很少直接使用到它,它是HttpServletResponse类的实例。Response对象具有页面作用于,就是说访问一个页面时,该页面内的response对象只对这次访问有效,其他页面的response对象对当前页面无效。
常用方法如下:
String getCharacterEncoding()返回响应的是何种字符编码
Void setContentType(String tYPE)设置相应的MIME类型。例如:response.setContentType(“text/html;charset=utf-8”)
printWriter getWriter()返回可以向客户端输出字符的一个对象。可以向客户端写入字符串。(注意:PrintWriter与内置对象out的区别。)printwriter对象输出的内容总是在out内置对象之前。除非是out内置对象主动使用flush()方法,强制清空缓冲区,将缓冲区内容输出到页面。
sendRedirect(java.lang.String location)重新定向客户端的请求。
六、请求转发与请求重定向。
请求重定向是客户端行为,response.senddirect(),从本质上讲是两次请求,前一次请求的对象不会保存,并且地址栏的URL会发生改变。
请求转发:服务器行为。Request.getRequestDispatcher().forward(req,res);是一次请求,转发后请求对象会保存,地址栏的URL地址不会变。
测试请求重定向和请求转发的方法:建立3个jsp页面a.jsp,b.jsp,c.jsp。
a. jsp作为发出请求页面,里面放置一个链接或者表单,目标是b.jsp。
b. b.jsp作为中转。页面内分别用response.sendRedirect(“c.jsp”)和request.getRequestDispatcher(“c.jsp”).forward(request,response)来设置重定向或者转发。C.jsp作为请求接受页面。可以发现,a.jsp提交的数据经过b.jsp重定向c.jsp后,数据丢失,地址栏url发生改变(最终变为c.jsp)。但是请求转发的数据成功传递到c.jsp并且地址栏的URL是b.jsp,并未发生改变。
七、Session
什么是session:1、session表示客户端与服务器的一次对话。
2、web中的session指的是用户在浏览摸个网站时,从进入到离开这个网站的时间。也就是用户浏览这个网站所话费的时间。
3、从定义可以看到,session实际上是一个特定的时间概念。
4、session是保存在服务器内存中的。
Session对象是jsp内置对象。自第一个jsp页面被装载时创建到客户到关闭浏览器离开服务器结束,这个过程称为一个会话。
当客户浏览服务器时,可能在服务器的几个页面之间进行切换,服务器需要有某种机制知道这是同一个客户,这就是session。Session是HttpSession类的实例。
主要方法:
Long getCreationTime()返回session创建时间,是一个long整型数。单位毫秒
Public String getId();返回SESSION创建时JSP引擎为它设的唯一ID号。
Public setAttribute(String name,Objectvalue):使用指定名称将对象绑定到这个会话。对象可以获得session的生命周期。
Public Object getAttribute(String name):返回次绘画中name指定的对象,如果没有与name绑定的对象,则返回空。
String[] getValueNames():返回一个包含此SESSION中所有可用属性的数组。
Int getMaxInactiveInterval():返回两次请求间隔多长时间此session被取消(单位秒)
SetMaxInactioveInterval():方法用来设置当前session最大生存期限。