IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> session例子 -> 正文阅读

[Java知识库]session例子

会话session是客户和服务器之间的不断地请求相应序列。
状态是有记忆能力的。
web容器用httpsession代表会话对象。
案例1:session的初识:
这里就是创建了一个会话对象,用一个图表来获得会话对象的属性,这里访问次数设置了accessCount局部变量,注意这里设置的是Integer类型的,通过会话存储accessCount到accessCount1属性里,accessCount就有了状态,记忆功能,以至于之后访问都会+1
在这里插入图片描述

package com.rc.hui01;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.time.LocalTime;
import javax.servlet.annotation.WebServlet;

@WebServlet("/ShowSessionServlet")
public class ShowSessionServlet extends HttpServlet{
   public void doGet(HttpServletRequest request,
                      HttpServletResponse response)
                       throws ServletException, IOException {
      response.setContentType("text/html;charset=utf-8");
      // 创建或返回用户会话对象
      HttpSession session = request.getSession(true); 
      String heading = null;
      // 从会话对象中检索accessCount属性
      Integer accessCount = (Integer)session.getAttribute("accessCount1");
      if(accessCount==null){
         accessCount = new Integer(1);
     	 heading = "欢迎您,首次登录该页面!";
      }else{
     	 heading = "欢迎您,再次访问该页面!";
     	 accessCount = accessCount+1;
      }
      // 将accessCount作为属性存储到会话对象中
      session.setAttribute("accessCount1",accessCount);
      PrintWriter out = response.getWriter();
      out.println("<html><head>");
      out.println("<title>会话跟踪示例</title></head>");
      out.println("<body><center>");
      out.println("<h4>"+heading
+"<a href='ShowSessionServlet'>再次访问</a>"+"</h4>");
      out.println("<table border='0'>");
      out.println("<tr bgcolor=\"ffad00\"><td>信息</td><td>值</td>\n");
      String state = session.isNew()?"新会话":"旧会话";
      out.println("<tr><td>会话状态:<td>"+state+"\n");
      out.println("<tr><td>会话ID:<td>"+session.getId()+"\n");
      out.println("<tr><td>创建时间:<td>");
      out.println(""+session.getCreationTime()+"\n");
      out.println("<tr><td>最近访问时间:<td>");
      out.println(""+session.getLastAccessedTime()+"\n");
      out.println("<tr><td>最大不活动时间:<td>"+
      session.getMaxInactiveInterval()+"\n");
      out.println("<tr><td>Cookie:<td>"+request.getHeader("Cookie")+"\n");
      out.println("<tr><td>已被访问次数:<td>"+accessCount+"\n");
      out.println("</table>");
      out.println("</center></body></html>");
   }
}


案例2:猜数字游戏:
在这里插入图片描述
这个是生成了一个随机数,把这个随机数保存在会话对象里面,然后和你输的值比较来显示不同的画面

package com.rc.hui01;

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.WebServlet;

@WebServlet("/GuessNumberServlet")
public class GuessNumberServlet extends HttpServlet{
   public void doGet(HttpServletRequest request,
                         HttpServletResponse response)
                         throws ServletException, IOException {
     int magic = (int)(Math.random()*101);
     HttpSession session = request.getSession();
     // 将随机生成的数存储到会话对象中
     session.setAttribute("num",new Integer(magic));
     
     response.setContentType("text/html;charset=utf-8");
     PrintWriter out = response.getWriter();
     out.println("<html><body>");
     out.println("我想出一个0到100之间的数,请你猜!");
     out.println("<form action='GuessNumberServlet' method='post'>");
     out.println("<input type='text' name='guess' />");
     out.println("<input type='submit' value='确定'/>");
     out.println("</form>");
     out.println("</body></html>");
   }
   
   public void doPost(HttpServletRequest request,
                           HttpServletResponse response)
                       throws ServletException, IOException {
     // 得到用户猜的数
int guess = Integer.parseInt(request.getParameter("guess"));
     HttpSession session = request.getSession();
     // 从会话对象中取出随机生成的数
int magic = (Integer)session.getAttribute("num");
     
     response.setContentType("text/html;charset=utf-8");
     PrintWriter out = response.getWriter();
     out.println("<html><body>");
     if(guess==magic){
     	 session.invalidate(); // 销毁会话对象
     	 out.println("祝贺你,答对了!");
     	 out.println("<a href ='GuessNumberServlet'>再猜一次.</a>");
     }else if(guess>magic){
     	 out.println("太大了! 请重猜!");
     }else{
          out.println("太小了! 请重猜!");
     }
     out.println("<form action='GuessNumberServlet' method='post'>");
     out.println("<input type='text' name='guess' />");
     out.println("<input type='submit' value='确定'/>");
     out.println("</form>");
     out.println("</body></html>");
   }
}


  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-03-31 23:49:43  更:2022-03-31 23:52:45 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 6:53:48-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码