JSP对象:request、response、session、application、out、pageContent、config、page、exception
一、Request对象:封装客户端生成的http请求所有细节,包括http头信息、系统信息、请求方式、请求参数等。(客户端指向服务器)
<a href=”delete.jsp?id=1”>
1.1
<%request.getParamete (“id”)%> 通过getParameter()方法获取参数值,如果值不存在,则返回true。Parameter代表参数,而Attribute代表属性。
1.2
在作用域的管理属性:
Request.setAttribute(string name,Object object)
Name表示变量名,在转发后的页面取数据时,通过这个变量名来获取数据。Object代表传递的数据。
Request.getAttribute(string name) 获取值。
1.3
Cookie小段文本信息,在网络服务器上生成,并发送给浏览器。通过cookie可以标识用户身份,记录用户名和密码,跟踪重复用户。浏览器将cookie以key/value的形式保存到客户机的某个指定目录中。
通过getCookides可以获取到所有cookie对象。通过cookie对象的getName()获取指定名称的cookie,通过getvalue获取cookie的值。将cookie对象发送给客户端,使用response对象的addCookie()方法。
二、Response对象:用于响应客户端请求,像客户端输出信息。
使用response对象提供的sendRedirect()方法将网页重定向另一个页面。重定向操作支持将地址重定向不同的主机上,和转发不同。在客户端浏览器会得到跳转的地址,并重新发送请求链接,用户从浏览器的地址栏看到跳转后的地址。进行重定向操作后,request中属性全部失效。
转发操作是在后台执行,重定向操作是客户端执行。重定向操作执行两次请求。
2.1 Response.sendRedirect(String path);用于指定目标路径。
2.2 处理HTTP文件头
禁用缓存 response.setHeader(“cache-Control”,”no-store”);
Response.setDateHeader(“Expires”,0);
设置页面自动刷新
Response.setHeader(“refresh”,”10”);
定时跳转网页
Resopnse.setHeader(“refresh”,”5;URL=login.jsp”);
2.3设置输出缓冲
Response.flushBuffer();//强制将缓冲区的内容输出到客户端
Respone.getBufferSize();//获取缓冲区大小,没有返回0
Response.setBufferSize(int size) 设置缓冲区大小
Response.reset() 清除缓冲区的内容,同清除状态码和报头
Response.isCommitted 检查服务器端是否已经把数据写入客户端
三、Session对象
3.1创建及获取科幻的会话:Session.setAttribute()方法和getAttribute()方法实现
3.2移除绑定对象 removeAttribute();
3.3销毁session:session.invalidate();
3.4会话超时管理:getLastAccessedTime() 返回客户端最后一次与会话关联的请求时间。
getMaxInactiveInteval() 以秒为单位返回一个会话内两个请求最大时间间隔。
SetMaxInactiveInterval() 以秒为单位设置session的有效时间。
四、Application对象
保存应用程序中的共有数据,在服务器启动时自动创建,在服务器停止时销毁。与session相比,生命周期更长。在web.xml中配置
<content-param>
<param-name>url</param-name>
<param-value >jdbc:mysql://127.0.0.1:306/db-database </param-name>
</ content-param >
4.1Application.getInitParmeter()获取默认的参数值
五、out对象
用于在web浏览器中输出信息。
Out.print()或者out.println()’
请求重定向:客户端行为,response.sendRedirect(),从本质上讲等同于两次请求,前一次的请求对象不会保存,地址栏的URL地址会改变。
请求转发:服务器行为,request.getRequestDispatcher().forward(req,resq);是一次请求,转发后请求对象会保存,地址栏的URL地址不会改变。