java response cookie_学习——JavaWeb06:response,cookie

学习——JavaWeb06:response,请求转发重定向

Ø  Response响应对象

1、提供的方法:

void addCookie(Cookie cookie);服务器向客户端增加cookie对象

void sendRedirect(String location)throws IOException:重定向

void setConterType(String type):设置服务端响应的编码(设置服务端的content类型)

2、重定向和请求转发的区别

1、 请求转发:getRequestDispatcher(“b.jsp”).forward(request,response);请求转发的方式跳转页面 A->B

2、 重定向:void sendRedirect(String location) throws IOException:

地址栏是否改变:转发不变定向变;

是否保留第一次请求时的数据:转发保留定向丢;

请求的次数:转发一次定向俩;

效率:转发很高定向慢;

2.Cookie

1、Cookie(客户端,不是内置对象):是由服务端产生的,再发送给客户端保存。

相当于 本地缓存的作用: 客户端——>服务端

作用:可以提高访问服务端的效率,但是安全性较差。

Cookie:key-value

Javax.servlet.http.Cookie

Public Cookie (String name,String value);

String getName();

String getValue();

Void setMaxAge(int expiry);最大有效期(秒)

服务端发送给客户端:

Response.addCookie(Cookie cookie)

页面跳转(转发,重定向)

客户端获取cookie:response对象,getCookies();客户端必须一次全部拿到,不能单独获取一个cookie;

通过F12可以发现除了自己设置的cookie对象外,还有一个 key 为 JSESSIONID的cookie

代码

pageEncoding="UTF-8"%>

Insert title here

用户名:

密码:

pageEncoding="UTF-8"%>

Insert title here

request.setCharacterEncoding("utf-8");

String name = request.getParameter("name");

String pwd = request.getParameter("password");

if(name.equals("zs")&&pwd.equals("123")){

//response.sendRedirect("success.jsp");//导致数据丢失;

//可以获取数据,而且地址栏没有改变(仍然保持转发时的页面:check.jsp)

request.getRequestDispatcher("success.jsp").forward(request, response);

}

else{

out.println("登录失败!");

}

%>

pageEncoding="UTF-8"%>

Insert title here

登陆成功:

欢迎您:

String name = request.getParameter("name");

out.println(name);

%>

pageEncoding="UTF-8"%>

Insert title here

//服务端

Cookie cookie1 = new Cookie("name","zs");

Cookie cookie2 = new Cookie("password","123");

response.addCookie(cookie1);

response.addCookie(cookie2);

//通过重定向或者请求转将 发页面跳转到客户端

response.sendRedirect("request.jsp");

%>

pageEncoding="UTF-8"%>

Insert title here

//尝试获取cookie

Cookie[] cookies = request.getCookies();

for(Cookie cookie:cookies){

out.print(cookie.getName()+"-----"+cookie.getValue()+"
");

out.print("--------------------------
");

}

%>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值