栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Session会话

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Session会话

文章目录
  • 一、Session是什么?
  • 二、实现步骤
    • 1.创建Person类
    • 2.创建Session
    • 3.获取Session值
    • 4.销毁Session
  • 三、运行示例


一、Session是什么?

当浏览器第一次访问服务器时,服务器创建一个session对象(该对象有一个唯一的id,一般称之为sessionId),服务器会将sessionId 以cookie的方式发送给浏览器。
当浏览器再次访问服务器时,会将sessionId发送过来,服务器依据 sessionId就可以找到对应的session对象。

二、实现步骤 1.创建Person类
package com.xxx.pojo;

import java.util.Objects;
public class Person {
    private String name;
    private int age;

    public Person() {
    }

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Person person = (Person) o;
        return age == person.age &&
                Objects.equals(name, person.name);
    }

    @Override
    public int hashCode() {
        return Objects.hash(name, age);
    }

    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + ''' +
                ", age=" + age +
                '}';
    }
}

2.创建Session
package com.xxx.request;

import com.xxx.pojo.Person;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.io.PrintWriter;

public class Session01 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //解决乱码
        req.setCharacterEncoding("utf-8");
        resp.setCharacterEncoding("utf-8");
        resp.setContentType("text/html;charset=utf-8");
        //得到Session
        HttpSession  session=req.getSession();
        //给Session中存东西
        session.setAttribute("name",new Person("安丽",18));
        //获取Session的ID
        String id = session.getId();
        //判断session是不是新的
        PrintWriter out=resp.getWriter();
        if(session.isNew()){
            out.write("Session创建成功:ID:"+id);
        }else{
            out.write("Session已经在服务器中存在:ID:"+id);
        }
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        super.doPost(req, resp);
    }
}

web.xml中的配置

 
        session
        com.xxx.request.Session01
    
    
        session
        /s1
    
3.获取Session值
package com.xxx.request;

import com.xxx.pojo.Person;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;

public class Session02 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
       //解决乱码问题
        req.setCharacterEncoding("utf-8");
        resp.setCharacterEncoding("utf-8");
        resp.setContentType("text/html,charset=utf-8");
        //得到Session
        HttpSession session=req.getSession();
        //获取值
        Person person= (Person) session.getAttribute("name");
        System.out.println(person.toString());
        resp.getWriter().write(person.toString());
    }
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

    }
}

web.xml中的配置


        session1
        com.xxx.request.Session02
    
    
        session1
        /s2
    
4.销毁Session
package com.xxx.request;

import javax.servlet.ServletException;
import javax.servlet.http.*;
import java.io.IOException;


public class Session03 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        HttpSession session=req.getSession();

        session.getAttribute("name");
        session.invalidate();//注销

    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        super.doPost(req, resp);
    }
}

web.xml中的配置

 
        session2
        com.xxx.request.Session03
    
    
        session2
        /s3
    
三、运行示例

**注:**先运行/s1向Session中存值,再运行/s2获取Session中的值



**注:**先运行s1往Session中存值,再运行s3注销Session,再运s2就会出错,因为Session已被销毁,不存在Session


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/999607.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号