Java web知识框架梳理(三)

1.response


response :响应对象,服务端
提供的方法:

void addCookie( Cookie cookie ); //服务端向客户端增加cookie对象
void sendRedirect(String location ) throws IOException; //页面跳转的一种方式(重定向)
void setContentType(String type);//设置服务端响应的编码(设置服务端的contentType类型)

示例:登陆
login.jsp  -> check.jsp  ->success.jsp

    

转发               重定向
地址栏是否改变  不变(check.jsp)改变(success.jsp)
是否保留第一次请求的数据保留不保留
请求的次数12
跳转发生的位置服务端客户端发出第二次跳转1

 


转发、重定向演示:

    转发:  
    张三(客户端)     ->    【 服务窗口 A (服务端 )    ->  服务窗口B  】 
    重定向:
    张三(客户端)       ->     服务窗口 A (服务端 ) ->去找B

    张三(客户端)    ->     服务窗口 B (服务端 ) ->结束

2.  Cookie

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

相当于 本地缓存的作用:

      客户端(hello.mp4,zs/abc)->服务端(hello.mp4;zs/abc)
      作用:提高访问服务端的效率,但是安全性较差。

Cookie:相识都是name和value的键值对   

javax.servlet.http.Cookie
public Cookie(String name,String value)
String getName();//获取name
String getValue();//获取value
void setMaxAge(int expiry);//最大有效期 (秒)

服务端准备Cookie: 

 response.addCookie(Cookie cookie);

页面跳转(转发,重定向)
客户端获取cookie:  

request.getCookies();

简单总结:

   a.服务端增加cookie 通过response对象;客户端获取对象通过request对象
   b.不能直接获取某一个单独对象,只能一次性将 全部的cookie拿到

   通过F12可以发现  除了自己设置的Cookie对象外,还有一个name为 JSESSIONID的cookie(保存的是这次会话,见下面session)

   建议 cookie只保存  英文数字,否则需要进行编码、解码

3. 使用Cookie实现  记住用户名  功能


4.session :会话


a.浏览网站:开始-关闭
b.购物:  浏览、付款、退出
c.电子邮件:浏览、写邮件、退出
    开始-结束
session机制:

    客户端第一次请求服务端时,(jsessionid-sessionid)服务端会产生一个session对象(用于保存该客户的信息); 
并且每个session对象 都会有一个唯一的 sessionId( 用于区分其他session);
   服务端会产生一个cookie,并且 该cookie的name=JSESSIONID ,value=服务端sessionId的值;
   然后服务端会在响应客户端的同时将该cookie发送给客户端,至此 客户端就有了 一个cookie(JSESSIONID);
因此,客户端的cookie就可以和服务端的session一一对应(JSESSIONID - sessionID)

   客户端第二/n次请求服务端时:服务端会先用客户端cookie种的JSESSIONID  去服务端的session中匹配sessionid,如果匹配成功(cookie  jsessionid和sesion sessionid),说明此用户 不是第一次访问,无需登录;


例子:
客户端:            顾客(客户端)
服务端: 存包处   -  商场(服务端)

顾客第一次存包:商场 判断此人是 之前已经存过包(通过你手里是否有钥匙)。
 如果是新顾客(没钥匙) ,分配一个钥匙 给该顾客; 钥匙 会和 柜子 一一对应;

 第二/n次 存包:商场 判断此人是 之前已经存过包(通过你手里是否有钥匙)
 如果是老顾客(有钥匙),则不需要分配;该顾客手里的钥匙 会 和柜子 自动一一对应。
 
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值