web开发--JSP九大内置对象和四种属性范围解读

转载地址:https://www.cnblogs.com/lcchuguo/p/5245372.html

在文中提到的几点知识,在这里简单梳理一下,

一、服务器(server)跳转的理解

服务器跳转:

     所谓服务器端跳转就是指地址栏内容不变(即客户端浏览器的地址栏不会显示跳转后地址的URL)。

     客户端请求到达以后,服务器发现当前资源给不出回应,要在服务器内部请求另一个资源的跳转,即服务器端跳转。所以,这种跳转与否客户端不知道(URL不变),属于一次request。

客户端跳转:

    所谓客户端跳转是指地址栏内容发生改变(客户端向服务器发请求偶,然后服务器再给客户端一个响应,然后客户端再根据服务器端给的响应中的URL再向服务器发送请求,所以是两次请求,因此地址栏改变了,显示的是最后一次请求地址)。

    客户端请求到达服务端,服务端返回一个 “去访问其他链接” 的回应,客户端依此回应,第二次去访问。所以,这种跳转是客户端根据回应地址又跳转了一次,第二次跳转后,已经出了request的属性范围。

二、session 和 application 区别

1、保存的时间不同,session有一定的生命时效,一般20分

2、信息量大小不同。Application适用于任何大小的数据,Session只适用于少量、简单的数据;

3、对象不同,application保存的是用户公共的信息,而session保存的是当个用户的专有新

4、应用范围不同,application是所有用户,session是当个用户

5、session是每个用户都有,而application共用一个

三、Cookie和Session的区别

HTTP是一种无状态的协议,为了分辨链接是谁发起的,就需要我们自己去解决这个问题。不然有些情况下即使是同一个网站我们每打开一个页面也都要登录一下。而Session和Cookie就是为解决这个问题而提出来的两个机制。

应用场景:

cookie用于记住密码,而session用于购物车

通俗讲,Cookie是访问某些网站以后在本地存储的一些网站相关的信息,下次再访问的时候减少一些步骤。另外一个更准确的说法是:Cookies是服务器在本地机器上存储的小段文本并随每一个请求发送至同一个服务器,是一种在客户端保持状态的方案

Session

Session是存在服务器的一种用来存放用户数据的类HashTable结构。

Cookie于Session区别

通过上面的简单叙述,很容易看出来最明显的不同是一个在客户端一个在服务端。因为Cookie存在客户端所以用户可以看见,所以也可以编辑伪造,不是十分安全。

Session过多的时候会消耗服务器资源,所以大型网站会有专门的Session服务器,而Cookie存在客户端所以没什么问题。

域的支持范围不一样,比方说a.com的Cookie在a.com下都能用,而www.a.com的Session在api.a.com下都不能用,解决这个问题的办法是JSONP或者跨域资源共享

四、如何操作cookie

以登录举例子

存:

var expires = new Date();
expires.setMonth(expires.getMonth()+1);//保存一个月
document.cookie="userName="+username+";expires="+expires.toGMTString();
document.cookie="userPass="+pswd+";expires="+expires.toGMTString();

取:

Cookie[] cookies = request.getCookies();
if (cookies != null) {
  for (int i = 0; i < cookies.length; i++) {
    Cookie newCookie = cookies[i];
    if ("userName".equals(newCookie.getName() )) {
      name = newCookie.getValue();
    }
    if ("userPass".equals(newCookie.getName() )){

      pass = newCookie.getValue();

    }
  }
}

原文地址:https://www.cnblogs.com/jiazhutao/p/12455871.html