Session은 HTTP 프로토콜의 한계를 채우기 위해 고안되었습니다. HTTP 프로토콜의 작동 방식에 유의하세요. 사용자가 요청하면 서버가 응답합니다. 클라이언트와 서버 간의 연결은 개별적이고 비연속적입니다. HTTP 프로토콜은 서버가 사용자 요청을 추적할 수 있는 기능을 제공하지 않습니다. 서버가 사용자 요청에 대한 응답을 완료한 후에는 브라우저와의 연결을 계속 유지할 수 없습니다. 서버 측에서 각 요청은 독립적이므로 HTTP 프로토콜은 사용자가 여러 홈페이지 간에 전환할 때 서버가 그의 신원을 알 수 없습니다. Session의 등장은 이러한 한계를 보완하기 위한 것입니다. 세션을 사용하면 사용자가 여러 홈페이지 사이를 전환할 때 사용자 정보를 저장할 수 있습니다. 이로 인해 이전에는 불가능했던 많은 일이 훨씬 쉬워졌습니다.
방문자가 특정 홈페이지에 접속한 후부터 나갈 때까지의 기간 동안 각 방문자는 별도의 세션을 받게 됩니다.
Java Servlet은 Session의 기능을 구현하는 HttpSession 인터페이스를 정의합니다. Servlet에서 Session을 사용하는 과정은 다음과 같습니다.
(1) 현재 세션이 정의되어 있지 않은 경우 HttpServletRequest의 getSession 메소드를 사용합니다. , 새 세션을 생성하면 getSession(true)
(2) 메서드를 사용하여 세션 변수를 작성할 수도 있습니다. HttpSession.setAttribute(name, value) 메소드를 사용하여 세션에 정보를 저장할 수 있습니다. HttpSession.putValue(name, value)를 사용할 수도 있지만 이 메서드는 더 이상 사용되지 않습니다.
(3) 세션 변수를 읽습니다. HttpSession.getAttribute(name) 메소드를 사용하여 세션의 변수 값을 읽을 수 있습니다. name이 정의되지 않은 변수인 경우 null이 반환됩니다. getAttribute에서 읽은 변수 유형은 Object이고 강제 유형 변환을 사용해야 합니다. 예를 들어:
String uid = (String) session.getAttribute("uid");
HttpSession.getValue(name)도 가능합니다. 하지만 이 방법 역시 시대에 뒤떨어진 방법이다.
(4) 세션 닫기 세션을 사용한 후 session.invalidate() 메서드를 사용하여 세션을 닫을 수 있습니다. 그러나 이것이 반드시 요구되는 것은 아닙니다. 왜냐하면 Servlet 엔진은 일정 시간이 지나면 자동으로 Seesion을 닫기 때문입니다.
다음은 session
//97colorcolorSessionExample.java
import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet 사용을 보여주는 간단한 예입니다. .http .*;
//필요한 소프트웨어 패키지 가져오기
public class SessionExample은 HttpServlet을 확장합니다
{
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException //doGet 메서드 구현
{
response.setContentType( "text/ html"); //HTTP 헤더 설정
PrintWriter out = response.getWriter(); //출력 가져오기 97gan
HttpSession session = request.getSession(true);
//세션 개체 가져오기
// HTML 마크업을 인쇄하세요
out.println("");
out.println("
위 내용은 JAVA에서 Session의 세션 상태를 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!