javaweb--session

1.创建Session类继承HttpServlet

value为String类型:

@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","小黑" );
        //获取sessionID
        String sessionId = session.getId();
        //判断session是否为新建
        if(session.isNew()){
            resp.getWriter().write("session创建成功!,ID为:"+sessionId);
        }else {
            resp.getWriter().write("session已经存在,ID为:"+sessionId);
        }
    }

2.编写GetSession类继承HttpSevlet,获取session的内容

package com.zhs.servlet;

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 GetSession 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();
        String  name =(String) session.getAttribute("name");
        System.out.println(name);
    }

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

3.配置映射关系

  <servlet>
  <servlet-name>session</servlet-name>
  <servlet-class>com.zhs.servlet.DemoSesssion</servlet-class>
</servlet>
  <servlet-mapping>
    <servlet-name>session</servlet-name>
    <url-pattern>/session</url-pattern>
  </servlet-mapping>
  <servlet>
    <servlet-name>getsession</servlet-name>
    <servlet-class>com.zhs.servlet.GetSession</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>getsession</servlet-name>
    <url-pattern>/getsession</url-pattern>
  </servlet-mapping>

 

运行成功,控制台打印名字=小黑

 

session存储对象:

1.创建person类

package com.zhs.servlet;

public class Person {
    String name;
    int age;

    public String getName() {
        return name;
    }

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

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

    public int getAge() {
        return age;
    }

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

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

2.创建类继承httpSevlet

package com.zhs.servlet;

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.util.Date;

public class DemoSesssion  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值
        Person person =(Person) session.getAttribute("name");
        System.out.println("session内的值为:"+person);//控制台打印
        //获取sessionID
        String sessionId = session.getId();
        //判断session是否为新建
        if(session.isNew()){
            resp.getWriter().write("session创建成功!,ID为:"+sessionId);
        }else {
            resp.getWriter().write("session已经存在,ID为:"+sessionId+person);
        }
    }

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

3.配置映射关系

4.运行显示结果

 

Session和Cookie的区别:

  Cookie是把用户的数据写给用户的浏览器,浏览器保存(可以保存多个)

  Session把用户的数据写到用户独占Session中,服务器端保存(保存重要信息,减少服务器资源浪费)

  Session由服务器创建

Session应用场景:

  保存登录用户信息

  购物车信息

  网站中经常使用的数据信息

访问网站的session图解:

 

 

posted @ 2020-11-03 10:14  lemmon_water  阅读(105)  评论(0)    收藏  举报