session java(java网站中session 有默认的过期时间吗)

本文目录
java网站中session 有默认的过期时间吗
程序中session都有一个默认的过期时间,其中tomcat中的默认时间为30分钟,根据需要我们可以去手动设置session的过期时间,以下是设置session的过期时间的三个方法:\x0d\x0a\x0d\x0a 1.在tomcat--》conf--》conf/web.xm中的
JAVA中的session 是干什么用的 怎么给session赋值
session就是一个会话
,在浏览器不关闭的前提下,可以保存用户的信息,就是象一个临时的容器,来存放这些临时的东西。比如登录的保存用户信息从一个网页跳转到另一个网页,用户信息就可以用session保存网站购物车可以用session实现
session赋值:
Request.getSession().setAttribute(key,value);
JAVA中Session的会话状态
会话状态的维持是开发Web应用所必须面对的问题 有多种方法可以来解决这个问题 如使用Cookies hidden类型的表单域 或直接把状态信息加到URL中等 还有Servlet本身提供了一个HttpSession接口来支持会话状态的维持 在这里我们主要介绍基于这个接口的会话状态的管理
Session的发明是为了填补HTTP协议的局限 请注意HTTP协议是如何工作的 用户发出请求 服务器作出响应 这种用户端和服务器 *** 端的联系就是离散的 非连续的 HTTP协议不能提供允许服务器跟踪用户请求的功能 在服务器端完成响应用户的请求之后 服务器不能继续与该浏览器继续保持连接 从服务器这端来看 每一个请求都是独立的 因此HTTP协议被认为是无状态协议 当用户在多个主页间切换时 服务器无法知道他的身份 Session的出现就是为了弥补这个局限 利用Session 您就可以当一个用户在多个主页间切换的时候也能保存他的信息 这样很多以前根本无法去做的事情就变得简单多了
在访问者从到达某个特定的主页到离开为止的那段时间 每个访问者都会单独获得一个Session
Java Servlet定义了一个HttpSession接口 实现的Session的功能 在Servlet中使用Session的过程如下
( ) 使用HttpServletRequest的getSession方法得到当前存在的session 如果当前没有定义session 则创建一个新的session 还可以使用方法getSession(true)
( ) 写session变量 可以使用方法HttpSession setAttribute(name value)来向Session中存储一个信息 也可以使用HttpSession putValue(name value) 但这个方法已经过时了
( )读Session变量 可以使用方法HttpSession getAttribute(name)来读取Session中的一个变量值 如果name是一个没有定义的变量 那么返回的是null 需要注意的是 从getAttribute读出的变量类型是Object 必须使用强制类型转换 比如
String uid = (String) session getAttribute( uid );
也可以使用HttpSession getValue(name) 但是这个方法也已经过时了
( ) 关闭session 当时用完session后 可以使用session invalidate()方法关闭session 但是这并不是严格要求的 因为 Servlet引擎在一段时间之后 自动关闭seesion
下面举一个简单的例子说明session的使用
// *** SessionExample java
import java io *;
import java util *;
import javax servlet *;
import javax servlet *;
//导入必要的软件包
public class SessionExample extends HttpServlet
{
public void doGet(HttpServletRequest request HttpServletResponse response)
throws IOException ServletException //实现doGet方法
{
response setContentType( text/ ); //设置HTTP头
PrintWriter out = response getWriter(); //得到输出 gan
HttpSession session = request getSession(true);
//得到session对象
//打印HTML标记
out println( 《》 );
out println( 《head》 );
out println( 《meta equiv=\ Content Type\ content=\ text/; charset=gb \ 》 );
out println( 《/head》 );
out println( 《body》 );
Date created = new Date(session getCreationTime());
//得到session对象创建的时间
Date accessed = new Date(session getLastAccessedTime());
//得到最后访问该session对象的时间
out println( ID + session getId()+ 《br》 );
//得到该session的id 并打印
out println( Created: + created+ 《br》 );
//打印session创建时间
out println( Last Accessed: + accessed+ 《br》 );
//打印最后访问时间
session setAttribute( UID );
//在session中添加变量UID=
session setAttribute( Name Tom );
//在session中添加变量Name=Tom
Enumeration e = session getAttributeNames();
//得到session中变量名的枚举对象
while (e hasMoreElements()) { //遍历每一个变量
String name = (String)e nextElement(); //首先得到名字
String value = session getAttribute(name) toString();
//由名字从 gan中得到值
out println(name + = + value+ 《br》 ); //打印
}
out println( 《/body》 ); //打印HTML标记
out println( 《/》 );
}
}
lishixinzhi/Article/program/Java/hx/201311/26058
更多文章:
blast premier春季赛(csgo战队vitality有谁)
2026年9月7日 21:50
全球新冠肺炎疫情背景下航运发展(盐田港复苏日志:半年历劫从“低谷”到“爆仓” 疫情之后巨轮如何越洋航行)
2026年9月7日 17:10
matlab求解带字母参数方程组(我想matlab求一个关于x,y的方程组 ab c d f e h m n 都是参数)
2026年9月7日 16:30
oracle中的循环语句(下面哪个不是oracle程序设计中的循环语句 a for)
2026年9月7日 15:30
电脑里2个系统怎么删除一个(电脑开机显示有两个系统,如何删除一个)
2026年9月7日 12:20
scrollthrough意思(“scroll”是什么意思)
2026年9月7日 08:00




