JSP-Session简单总结-附带小案例

    xiaoxiao2021-12-14  18

                                                          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就简单总结了一下,水平有限,望大神不喜欢不要喷小弟,望您不吝指教哈。

    转载请注明原文地址: https://ju.6miu.com/read-969358.html

    最新回复(0)