JSP中session、cookie和application的使用
一、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的使用的更多相关文章
- JSP中的Cookie
如何创建Cookie 先引包: import="javax.servlet.http.Cookie" JSP是使用如下的语法格式来创建cookie的: Cookie cookie_ ...
- JSP中Session的使用
JSP session使用方法 <%@page contentType="text/html;charset=GB2312"%><html> <he ...
- 转 jsp中 session的简单用法
Session对象:是用来分别保存每一个用户信息的对象,以便于跟踪用户的操作状态.Session的信息保存在服务端,Session的ID保存在客户机的Cookie中.事实上,在许多服务器上,如果浏览器 ...
- JSP中使用cookie存储中文
今天看J2EE的时候,看见书上讲到使用cookie保存信息的时,看到书上举得例子都是英文的键值对,我就想中文是不是一样呢?试了一下果然不一样.废话不多说,直接上代码: 比如说有addCookie.js ...
- 3、JSP中的Cookie 用于存储 web 页面的用户信息。
cookie 在平时生活中的运用 存储用户在网页上的登陆信息,包括账号和密码. 有的网站,登陆的时候,会出现一个选项,问你是否要一周内或者一个月内保持登陆状态.如果你选了,那么一周之内,都不需要再输入 ...
- JSP中取COOKIE中指定值得方法【转载】
Cookie cookies[]=request.getCookies(); //读出用户硬盘上的Cookie,并将所有的Cookie放到一个cookie对象数组里面 Cookie sCookie=n ...
- 如何在JSP中获得Cookie对象
Cookie cookies[]=request.getCookies(); //读出用户硬盘上的Cookie,并将所有的Cookie放到一个cookie对象数组里面 Cookie sCookie=n ...
- jsp中session执行机制
- JSP | 基础 | JSP状态管理 | Cookie
Cookie : 是web服务器保存在客户端的一系列文本信息. Cookie的作用: 1.对特定的对象的追踪 2. 3. JSP中创建Cookie以及使用 创建Cookie对象 写入Cookie对象 ...
随机推荐
- JDK 之 Arrays.asList - 源码分析
Arrays工具类提供了一个方法asList, 使用该方法可以将一个变长参数或者数组转换成List . 其源代码如下: @SafeVarargs public static <T> Lis ...
- 第一周PTA笔记 德州扑克题解
德州扑克 最近,阿夸迷于德州扑克.所以她找到了很多人和她一起玩.由于人数众多,阿夸必须更改游戏规则: 所有扑克牌均只看数字,不计花色. 每张卡的值为1.2.3.4.5.6.7.8.9.10.11.12 ...
- Java是“值传递”还是“引用传递”?
本文是根据stackoverflow网站上的一道题目整理出来的. Java一直是"值传递"而不是引用传递.看一个例子: public class Main{ public stat ...
- [luogu6702]Path
维护每一个点到根路径的异或和(记作$d_{k}$),根据异或自反性,$(x,y)$的异或和即$d_{x}\oplus d_{y}$ 考虑两条路径的lca,选择其中深度较大的点,另一条路径必然在其子树外 ...
- [cf1379F]Chess Strikes Back
考虑将$(2i-1,2j-1)$和$(2i,2j)$缩为一个点,记作$(i,j)$ 对于每一个点,只能选$(2i-1,2j-1)$或$(2i,2j)$(显然不能都选),而这样恰好为$nm$个,因此必须 ...
- myeclipse maven web打包
1.在当前的项目pom.xml的文件上,如下图所示:鼠标右键->run As->Maven Build...
- IEnumerator vs Iterator
IEnumerator vs Iterator IEnumerator 不考虑Reset方法和原始列表的可变性,NoveNext和Current的只读向前用法: Initially, the enum ...
- 洛谷 P3643 - [APIO2016]划艇(dp)
题面传送门 一道难度中等的 \(dp\)(虽然我没有想出来/kk). 首先一眼 \(dp_{i,j}\) 表示考虑到第 \(i\) 个学校,第 \(i\) 个学校派出了 \(j\) 个划艇的方案数,转 ...
- 微前端框架 single-spa 技术分析
在理解微前端技术原理中我们介绍了微前端的概念和核心技术原理.本篇我们结合目前业内主流的微前端实现 single-spa 来说明在生产实践中是如何实现微前端的. single-spa 的文档略显凌乱,概 ...
- Glib 对 C 函数进行单元测试
1. Glib 单元测试框架 Glib 为单元测试提供了一套完整的测试框架,每个测试运行包括以下几个部分 测试数据结构 测试 setup 与 teardown 函数 测试函数 2. 单元测试数据结构 ...