zoukankan      html  css  js  c++  java
  • HttpSession讲解

    1:session进行身份验证的原理:

    当客户端第一次访问服务器的时候,此时客户端的请求中不携带任何标识给服务器,所以此时服务器无法找到与之对应的

    session,所以会新建session对象,当服务器进行响应的时候,服务器会将session标识放到响应头的Set-Cookie中,会以

    key-value的形式返回给客户端,例:JSESSIONID=7F149950097E7B5B41B390436497CD21;其中JSESSIONID是固定的,

    而后面的value值对应的则是给该客户端新创建的session的ID,之后浏览器再次进行服务器访问的时候,客户端会将此key-value

    放到cookie中一并请求服务器,服务器就会根据此ID寻找对应的session对象了;(当浏览器关闭后,会话结束,由于cookie消

    失所以对应的session对象标识消失,而对应的session依然存在,但已经成为报废数据等待GC回收了)

    对应session的ID可以利用此方法得到:session.getId();

    2:session的生命周期:

    比方说可以通过这样的方式使用:

    3:常用方法示例:

    登录界面:

     1 <%@ page language="java" contentType="text/html; charset=UTF-8"
     2     pageEncoding="UTF-8"%>
     3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
     4 <html>
     5 <head>
     6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
     7 <title>Insert title here</title>
     8 </head>
     9 <body>
    10 
    11     SessionId:<%=session.getId() %>
    12     <br><br>
    13     
    14     IsNew:<%=session.isNew() %>
    15     <br><br>
    16     
    17     MaxInactiveInterval:<%=session.getMaxInactiveInterval() %>
    18     <br><br>
    19     
    20     CreateTime:<%=session.getCreationTime() %>
    21     <br><br>
    22     
    23     LastAccessTime<%=session.getLastAccessedTime() %>
    24     <br><br>
    25     
    26     <%
    27         Object username = session.getAttribute("username");
    28         if(username==null){
    29             username="";
    30         }
    31     %>
    32     
    33     <form action="hello.jsp" method="post">
    34         
    35         userName:<input type="text" name="userName" value="<%=username %>"/>
    36         <input type="submit" value="Submit"/>
    37     
    38     </form>
    39 
    40 </body>
    41 </html>

    展示界面:

     1 <%@ page language="java" contentType="text/html; charset=UTF-8"
     2     pageEncoding="UTF-8"%>
     3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
     4 <html>
     5 <head>
     6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
     7 <title>Insert title here</title>
     8 </head>
     9 <body>
    10 
    11     
    12     SessionId:<%=session.getId() %>
    13     <br><br>
    14     
    15     IsNew:<%=session.isNew() %>
    16     <br><br>
    17     
    18     MaxInactiveInterval:<%=session.getMaxInactiveInterval() %>
    19     <br><br>
    20     
    21     CreateTime:<%=session.getCreationTime() %>
    22     <br><br>
    23     
    24     LastAccessTime<%=session.getLastAccessedTime() %>
    25     <br><br>
    26     
    27     Hello:<%=request.getParameter("userName") %>
    28     <br><br>
    29     
    30     <%
    31         session.setAttribute("username", request.getParameter("userName"));
    32     %>
    33     
    34     <a href="login.jsp">重新登陆</a>
    35     &nbsp;&nbsp;&nbsp;&nbsp;
    36     <a href="logout.jsp">注销</a>
    37 
    38 </body>
    39 </html>

    注销界面:

     1 <%@ page language="java" contentType="text/html; charset=UTF-8"
     2     pageEncoding="UTF-8"%>
     3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
     4 <html>
     5 <head>
     6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
     7 <title>Insert title here</title>
     8 </head>
     9 <body>
    10 
    11     
    12     SessionId:<%=session.getId() %>
    13     <br><br>
    14     
    15     IsNew:<%=session.isNew() %>
    16     <br><br>
    17     
    18     MaxInactiveInterval:<%=session.getMaxInactiveInterval() %>
    19     <br><br>
    20     
    21     CreateTime:<%=session.getCreationTime() %>
    22     <br><br>
    23     
    24     LastAccessTime<%=session.getLastAccessedTime() %>
    25     <br><br>
    26     
    27     Bye:<%=request.getParameter("userName") %>
    28     <br><br>
    29         
    30     <%
    31         session.invalidate();
    32     %>
    33     
    34     <br><br>
    35     <a href="login.jsp">重新登陆</a>
    36 
    37 </body>
    38 </html>

    首次进入登陆界面的时候:

    在userName中输入名称Lily后点击登录:

    当再次点击重新登陆时利用session进行数据回显由于session没有被注销,所以session不变:

    当点击注销按钮后,登录时的session失效,原session对象被销毁:

    当再次点击重新登陆或者是刷新界面后,会创建新的session:

  • 相关阅读:
    整数子数组求最大和
    四则运算实现
    四则运算
    2015年大二下学期读书计划
    java变量和数据类型
    jdk的安装和java的入门概念
    数据库的设计
    多表查询
    数据约束和外键
    表数据的简单查询语句
  • 原文地址:https://www.cnblogs.com/lubolin/p/7527555.html
Copyright © 2011-2022 走看看