主要内容:
1、设置头信息:
2、两种跳转
3、Cookie
============================
request对象:服务器端用于接收客户端请求内容的
所属的接口:javax.servlet.http.HttpServletRequest
HttpServletRequest是ServletRequest接口的子接口
而且ServletRequest也只有唯一的一个子接口 —— HttpServletRequest
主要是因为,现在的J2EE 的WEB程序 主要以HTTP协议为主要通讯协议
response对象:服务器端回应客户端的请求
所属的接口:javax.servlet.http.HttpServletResponse
HttpServletReponse的父接口是ServletResponse
而且ServletResponse也现在只有唯一的一个HttpServletReponse子接口
主要原因:现在的J2EE 的WEB程序 主要以HTTP协议为主要通讯协议
response的主要功能:
1、设置头信息:
最有用的一个头信息:refresh:刷新
response.setHeader("头信息内容","头信息参数") ;
如:
<%!
int i = 0 ;
%>
<%
// 一秒种刷新一次,每次使i自增
response.setHeader("refresh","1") ;
%>
<h1><%=i++%></h1>
新的需求:
两秒种跳转到responseDemo02.jsp页面上
response.setHeader("refresh","2;URL=页面名称") ;
此代码在开发中较为常见
setHeader可以实现跳转功能。
2、response进行跳转 —— 重定向
response.sendRedirect(跳转路径) ;
此语句执行之后,页面地址也变为跳转后的地址
☆ 面试中较为常见的问题:两种跳转的区别
1、<jsp:forward page=""/>
· 地址栏不改变跳转 —— 服务器端跳转
· 执行到跳转语句后无条件立刻跳转 —— 之后的代码不再被执行
· 注意:如果使用forward跳转,则一定要在跳转之前释放掉全部的资源
· 使用forward时,request设置的属性依然能保留在下一个页面(setAttribute)
· 通过<jsp:param name="" value=""/>传递参数
2、response.sendRedirect("地址") ;
· 地址栏改变跳转 —— 客户端跳转
· 所有代码执行完毕之后再跳转
· 不能保存request属性 —— 地址改变了,客户端跳转
· 通过对URL地址的重写传递参数
如:
<%@page contentType="text/html;charset=gb2312"%>
<h1>欢迎光临:responseDemo03.jsp</h1>
<%
System.out.println("** 跳转之前...") ;
%>
<%
// 进行跳转
response.sendRedirect("responseDemo04.jsp?id=mldn") ;
%>
<!--jsp:forward page="responseDemo04.jsp"/-->
<%
System.out.println("** 跳转之后...") ;
%>
-----------------------------------------------------------------------------------------
使用客户端跳转,可以通过重写URL的方式将内容传递过去
3、设置Cookie
Cookie是服务器端保存在客户端的一组资源
登陆时会问你是否记住密码?或XX长的时间不用再登陆
此种功能的实现就是通过Cookie
public void addCookie(Cookie cookie)
Cookie是通过服务器端设置到客户端上去的 —— response
如果要在服务器端取得Cookie —— request
request对象中有public Cookie[] getCookies()方法
在使用request对象取得全部Cookie时,会出现以下的信息:
JSESSIONID -->
EED 6F 868DCC 7F 6FDB13D27D 672124A 81
JSessionID ——> 表示唯一的一个客户端在服务器上的编号 ——> 身份证编号 —— 自动获得
(SESSION对象)
默认情况下,Cookie只针对当前浏览器有效,如果需要Cookie长留在本地计算机上,可以设置Cookie
的保存时间。
Cookie是保存在客户端上的信息,安全性较差。不要把过多的隐秘信息保留在Cookie中,这样很不安全。
=====================================================
设置cookies
<%
Cookie c1 = new Cookie("name","mldn") ;
Cookie c2 = new Cookie("password","LXH") ;
// 保存时间为60秒
c1.setMaxAge(60) ;
c2.setMaxAge(60) ;
%>
<%
// 通过response对象将Cookie设置到客户端
response.addCookie(c1) ;
response.addCookie(c2) ;
%>
取的cookies
<%
// 通过request对象,取得客户端设置的全部Cookie
// 实际上客户端的Cookie是通过HTTP头信息发送到服务器端上的
Cookie c[] = request.getCookies() ;
%>
<%
for(int i=0;i<c.length;i++)
{
Cookie temp = c[i] ;
%>
<h1><%=temp.getName()%> --> <%=temp.getValue()%></h1>
<%
}
%>