一、session (单用户使用)

1.用处:注册成功后自动登录,登录后记住用户状态等

使用会话对象session实现,一次会话就是一次浏览器和服务器之间的通话,会话可以在多次请求中保存和使用数据。

2.语法:

public void setAttribute(String name, Object o){}
session.setAttribute("name", "YeHuan"); // 此处的Object为String类型 public Object getAttribute(String name,){}
String str = (String)session.getAttribute("name");

3.工作方式

每个session都有一个唯一的sessionid,存储于服务器端。

String str = session.getId();

4.清除和过期

a.程序主动清除session数据

方法一:设置会话失效(所有属性都失效)

session.invalidate();

方法二:移除会话的一个属性

session.removeAttribute("name");

b.服务器主动清除长时间没有再次发出请求的session(如30分钟)

设置会话过期时间

方法一:在程序中写

session.setMaxInactiveInterval(int interval); <!-- interval的单位是秒 -->

方法二:修改web.xml文件

<session-config>
  <session-timeout>30</session-timeout> <!-- 30的单位是分钟 -->
</session-config>

二、cookie

1.创建cookie

<%
String username = "YeHuan";
Cookie cookie = new Cookie("name",URLEncoder.encode(username, "utf-8"));
cookie.setMaxAge(60*60); <!-- 设置有效期 -->
response.addCookie(cookie);
%>

2.读取cookie

<%
Cookie[] data = request.getCookies();
for(int i=0;i<data.length;i++){
if(data[i].getName().equals("name"))
out.print("cookie:"+URLDecoder.decode(data[i].getValue(), "utf-8"));
}
%>

三、application

1.创建application

application.setAttribute("count", new Integer(1));

2.读取application

Integer i = (Integer)application.getAttribute("count");

3.案例

计算页面的访问次数

<%
Object count = application.getAttribute("count");
if(count==null){
application.setAttribute("count", new Integer(1));
}else{
Integer c = (Integer)count;
application.setAttribute("count", c.intValue()+1);
}
Integer i = (Integer)application.getAttribute("count");
out.print(i);
%>

四、request、session和application三者的比较

1.相同点

都可以存储属性

2.不同点

a.request中存储的数据仅在一个请求中可用;

b.session中存储的数据在一个会话的有效期内可用;

c.application存储的数据在整个web项目中可用。

JSP中session、cookie和application的使用的更多相关文章

  1. JSP中的Cookie

    如何创建Cookie 先引包: import="javax.servlet.http.Cookie" JSP是使用如下的语法格式来创建cookie的: Cookie cookie_ ...

  2. JSP中Session的使用

    JSP session使用方法 <%@page contentType="text/html;charset=GB2312"%><html>  <he ...

  3. 转 jsp中 session的简单用法

    Session对象:是用来分别保存每一个用户信息的对象,以便于跟踪用户的操作状态.Session的信息保存在服务端,Session的ID保存在客户机的Cookie中.事实上,在许多服务器上,如果浏览器 ...

  4. JSP中使用cookie存储中文

    今天看J2EE的时候,看见书上讲到使用cookie保存信息的时,看到书上举得例子都是英文的键值对,我就想中文是不是一样呢?试了一下果然不一样.废话不多说,直接上代码: 比如说有addCookie.js ...

  5. 3、JSP中的Cookie 用于存储 web 页面的用户信息。

    cookie 在平时生活中的运用 存储用户在网页上的登陆信息,包括账号和密码. 有的网站,登陆的时候,会出现一个选项,问你是否要一周内或者一个月内保持登陆状态.如果你选了,那么一周之内,都不需要再输入 ...

  6. JSP中取COOKIE中指定值得方法【转载】

    Cookie cookies[]=request.getCookies(); //读出用户硬盘上的Cookie,并将所有的Cookie放到一个cookie对象数组里面 Cookie sCookie=n ...

  7. 如何在JSP中获得Cookie对象

    Cookie cookies[]=request.getCookies(); //读出用户硬盘上的Cookie,并将所有的Cookie放到一个cookie对象数组里面 Cookie sCookie=n ...

  8. jsp中session执行机制

  9. JSP | 基础 | JSP状态管理 | Cookie

    Cookie : 是web服务器保存在客户端的一系列文本信息. Cookie的作用: 1.对特定的对象的追踪 2. 3. JSP中创建Cookie以及使用 创建Cookie对象 写入Cookie对象 ...

随机推荐

  1. tomcat9启动报错too low setting for -Xss

    在tomcat下部署war包启动时报错,关键错误信息如下: Caused by: java.lang.IllegalStateException: Unable to complete the sca ...

  2. macos proxy_bypass_macosx_sysconf exception

    macos, 在rpc调用request请求时,在proxy_bypass_macosx_sysconf 无法返回 解决方法: import requests session = requests.S ...

  3. VMware Workstation 无法连接到虚拟机。请确保您有权运行该程序、访问该程序使用的所有目录以及访问所有临时文件目录。 VMware Authorization Service 当前未运行

    VMware Workstation 无法连接到虚拟机.请确保您有权运行该程序.访问该程序使用的所有目录以及访问所有临时文件目录. VMware Authorization Service 当前未运行 ...

  4. hudi clustering 数据聚集(三 zorder使用)

    目前最新的 hudi 版本为 0.9,暂时还不支持 zorder 功能,但 master 分支已经合入了(RFC-28),所以可以自己编译 master 分支,提前体验下 zorder 效果. 环境 ...

  5. 通过大量实战案例分解Netty中是如何解决拆包黏包问题的?

    TCP传输协议是基于数据流传输的,而基于流化的数据是没有界限的,当客户端向服务端发送数据时,可能会把一个完整的数据报文拆分成多个小报文进行发送,也可能将多个报文合并成一个大报文进行发送. 在这样的情况 ...

  6. 从 ThreadLocal 到 AsyncLocal

    前些天跟大佬们在群里讨论如何在不使用构造函数,不增加方法参数的情况下把一个上下文注入到方法内部使用,得出的结论是 AsyncLocal .感叹自己才疏学浅,居然才知道有 AsyncLocal 这种神器 ...

  7. 分布式链路追踪之Spring Cloud Sleuth+Zipkin最全教程!

    大家好,我是不才陈某~ 这是<Spring Cloud 进阶>第九篇文章,往期文章如下: 五十五张图告诉你微服务的灵魂摆渡者Nacos究竟有多强? openFeign夺命连环9问,这谁受得 ...

  8. Tomcat无法启动解决办法

    [2014-04-12 12:34:39] [error] [ 1080] 操作系统找不到已输入的环境选项. [2014-04-12 12:34:39] [error] [ 1052] Failed ...

  9. 对于VS2013使控制台暂停的方法

    #include<stdio.h>int main(){    int year, leap;    printf("enter year:");    scanf_s ...

  10. [atARC110E]Shorten ABC

    考虑令$a$.$b$和$c$分别对应1.2和3,那么每一次相当于令$x$和$y$变为$x\oplus y$(要求$x\ne y$) 根据异或的结合律,我们相当于将其划分为若干个区间求异或值 (另外还有 ...