JSP-Session简单总结-附带小案例
jsp-session简单总结
一:Session介绍:
1-作用:
session:作为jsp的九大内置对象之一存储特定用户所需要的会话信息。
简单通俗的讲session就是象一个临时的容器 来存放这些临时的东西 从你登陆开始就保存在session里 当然你可以自己设置它的有效时间和页面处理客户端(浏览器)与服务器之间的会话.Session对象的引入是为了弥补HTTP协议的不足,HTTP协议是一种无状态的协议。
2-生命周期,作用域:
session:通俗的讲存在于B/S架构软件的客户端一直连接服务器的过程中(就是浏览器一直访问).当用户在应用程序的Web页面之间跳转时,存储在Session中的变量不会丢失的,一直存在于用户的整个会话中的知道浏览器不再访问它(关闭这个Web页面,客户端断开服务器连接).
3--详细介绍功能:session对象用来存储每个用户的信息,来跟踪每个用户的操作状态的.那末就来分析它是如何跟踪的过程和原理的.首先要知道session把这些信息存在哪里了?当然是存在容器里了的。接下来分析它是如何唯一的跟踪每个用户的操作状态的。就是有一个ID的,当用户首次登录某个Web项目访问一个Jsp页面的时候,Jsp引擎就会产生一个Session对象,同时就会为该用户分配一个唯一的String型的SessionID用来区别其他的用户的,同时JSP引擎就会将这个ID号发给客户端计算机。这个SessionID保存在客户计算机的Cookie中的,这样Session对象就和客户建立了一一对应的关系了,当关闭浏览器后在服务器端的session对象取消,那某之前和用户建立的关系也一并消失了。当下次用户再次打开浏览器连接到服务器访问Web项目时,这时服务器中的JSP引擎就会为该用户创建一个新的Session对象的。Session对象是生命是伴随浏览器连接服务器的,到断开服务器连接的整个过程中书写自己的生命传奇的。这个就类比于另外一个Application对象的(伴随服务器终生,不离不弃,相随到老。
4--常用方法介绍:
getAttribute(String name):用于获取指定名字的相关属性的,如果不存在就返回一个null;
getCreateTime():用来返回Session对象被创建的时间,单位是(s);
getID():返回当前Session对象在服务器端的编号就是ID;
setAttribute(String name,java.lang.Object value):用于设定指定名字的属性值,然后保存在session对象中。一般的用法就是通过request对象的getParameter()方法获取用户的请求的值,然后通过该方法来设置保存在session对象中的。
isNow():用来判断当前session是否新的session对象,返回的是一个boolean型的变量。
getMaxInactiveInterval():用来返回session对象的生存时间,单位是(s);
removeAttribute(String name):用来删除指定的属性。在有效期间的,否则就会创建一个新的session对象,旧的就会丢失的。
5-- 小案例介绍:实现一个超级简单的购物系统:
sessionLogin.jsp的内容:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML >
<html>
<head>
<base href="<%=basePath%>">
<title>session实例-登录</title>
<style type="text/css">
h3{
text-align:center;
}
hr{
color:red;
}
</style>
</head>
<body>
<%
session.setAttribute("customer","客户");//为customer赋值为客户
%>
<h3>欢迎来到客户登录页面-登录信息</h3>
<hr/>
<center>
<form action="sessionShop.jsp" method="post">
客户名:<input type="text" name="loginname" >
<input type="submit" value="登录">
</form>
</center>
</body>
</html>
sessionShop.jsp页面:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML >
<html>
<head>
<base href="<%=basePath%>">
<title>session-购物页面</title>
<style type="text/css">
h3{
text-align:center;
}
hr{
color:red;
}
</style>
</head>
<body>
<%
String na=new String(request.getParameter("loginname").getBytes("ISO-8859-1"),"UTF-8");
session.setAttribute("name", na);
%>
<h3>欢迎来到购物页面-购物信息</h3>
<hr/>
<center>
<form action="sessionAccount.jsp" method="post">
您要购买的商品:<input type="text" name="goodsName" size="30">
<input type="submit" value="购物">
</form>
</center>
</body>
</html>
sessionAccount.jsp页面:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML>
<html>
<head>
<base href="<%=basePath%>">
<title>Shop-结账页面</title>
<style type="text/css">
h3{
text-align:center;
}
hr{
color:red;
}
</style>
</head>
<body>
<%
String gn=new String(request.getParameter("goodsName").getBytes("ISO-8859-1"),"UTF-8");
session.setAttribute("goods", gn);
String 客户信息=(String)session.getAttribute("customer");
String 客户姓名=(String)session.getAttribute("name");
String 购买物品=(String)session.getAttribute("goods");
%>
<h3>欢迎来到结账页面-结账信息</h3>
<hr/>
<center>
结账客户昵称:<%=客户信息 %><br/>
结账客户姓名:<%=客户姓名 %><br/>
结账购买物品:<%=购买物品 %>
</center>
</body>
</html>
测试过程:打开浏览器输入:
访问结果:
至此session就简单总结了一下,水平有限,望大神不喜欢不要喷小弟,望您不吝指教哈。
- 上一篇:没有了
- 下一篇:没有了