victory的博客

长安一片月,万户捣衣声

0%

JavaWeb项目开发 | session

session

session

  1. 什么是session?
    服务器端会话技术
  2. api

(1)session的获取

HttpSession session=request.getSession()

(2)session属性操作

session.setAttribute("attr_name", attr_value);//设置属性
session.getAttribute(attr_name);//获取属性
  1. 作用范围
    一次会话中

    session 测试(其他的servlet可以共享一次请求中的数据)

  2. 项目目录
  3. 代码

a.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
    <a href="/sessiontest/demo1">访问demo1</a>
    <a href="/sessiontest/demo2">访问demo2</a>
    <a href="/sessiontest/demo3">访问demo3</a>
</body>
</html>

Demo1Servlet

package com.oracle;

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

public class Demo1Servlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //request.setAttribute("username", "zhangsan");
        
        //请求转发
        //request.getRequestDispatcher("/demo2").forward(request, response);
        
        //创建session
        HttpSession session = request.getSession();
        System.out.println("Demo1Servlet增加username属性,值为lisi");
        session.setAttribute("username", "lisi");
    }

    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }
}

Demo2Servlet

package com.oracle;

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

public class Demo2Servlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //String username = (String)request.getAttribute("username");
        //System.out.println(username);//null 一次会话当中的第二次请求不能得到第一次请求的数据
        
        HttpSession session = request.getSession();
        String username = (String)session.getAttribute("username");
        System.out.println("Demo2Servlet:" + username);
        
    }

    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }
}

Demo3Servlet

package com.oracle;

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

public class Demo3Servlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        HttpSession session = request.getSession();
        String username = (String)session.getAttribute("username");
        System.out.println("Demo2Servlet:" + username);
    }

    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }
}

效果