程序员社区

【Servlet-1】HttpSession接口

  1. 以下三个接口都是范围对象:
    ServletContext application;是应用范围
    HTTPSession session;是会话范围
    HTTPServletRequest request;是请求范围
    application>session>request
  2. application完成跨会话共享数据
    session完成跨请求共享数据,但是这些请求必须在同一个会话中
    request完成跨Servlet共享数据,但是这些Servlet必须在同一个请求中
    使用原则:由小到大尝试
  3. void setAttribute(String name, Object o)
    Object getAttribute(String name)
    void removeAttribute(String name)
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<a href="/32/AccesssMyselfSession">访问我的会话对象</a><br>
<a href="/32/GetDataFronSession">从会话对象中获取数据</a>
</body>
</html>

AccesssMyselfSession.java文件

package Session;

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

@WebServlet("/AccesssMyselfSession")
public class AccesssMyselfSession extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String ip = request.getRemoteAddr();
        System.out.println(ip);
        HttpSession session = request.getSession();
        System.out.println(ip+"s session="+session);

        session.setAttribute("username","zhangsan");

    }

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

GetDataFronSession.java文件:

package Session;

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

@WebServlet("/GetDataFronSession")
public class GetDataFronSession extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        HttpSession session = request.getSession();
        Object username = session.getAttribute("username");
        System.out.println(username);
    }

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

void invalidate():销毁Session

package Session;

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

@WebServlet("/Logout")
public class Logout extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //获取Session对象,如果没有获取到Session对象则返回null
        HttpSession session = request.getSession(false);
        if(session!=null){
            //销毁Session
            session.invalidate();
        }
    }
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doPost(request, response);
    }
}

赞(0) 打赏
未经允许不得转载:IDEA激活码 » 【Servlet-1】HttpSession接口

相关推荐

  • 暂无文章

一个分享Java & Python知识的社区