> Java > java지도 시간 > Java의 세션 객체 및 메소드 인스턴스 분석

Java의 세션 객체 및 메소드 인스턴스 분석

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
풀어 주다: 2023-05-13 22:01:04
앞으로
1329명이 탐색했습니다.

세션 개체는 세션 범위 내 각 클라이언트의 액세스 상태를 기록하여 각 클라이언트의 작업 상태를 추적하는 데 사용됩니다. 세션에 저장된 정보는 브라우저가 후속 요청을 할 때 이러한 세션의 유효한 데이터를 얻을 수 있습니다. .

jsp 페이지에서 직접 세션 객체(jsp의 내장 객체)를 사용하거나, pageContext.getSession() 또는 request.getSession을 통해 세션 객체를 다시 가져올 수 있습니다.

세션에서는 사용자 정보를 저장하고 장바구니 등의 기능을 구현할 수 있습니다.

HTTP 프로토콜은 클라이언트가 서버에 요청을 보낸 후 서버가 응답을 반환합니다. 따라서 서버는 연결 관련 정보를 저장하지 않습니다. 연결 정보가 이전 연결과 동일한 클라이언트 정보라고 판단할 수 없으므로 해당 연결에 대한 정보를 기록하기 위해 세션을 사용해야 합니다.

클라이언트가 브라우저를 열고 서버에 접속하는 순간부터 클라이언트가 브라우저를 닫고 서버를 떠나는 순간까지를 세션이라고 합니다. 클라이언트가 서버에 접근할 때 서버의 여러 페이지에 반복적으로 연결하거나, 페이지를 반복적으로 새로 고치거나, 페이지에 지속적으로 정보를 제출하는 등의 작업을 수행할 수 있습니다. 서버는 어떤 방법을 통해 이것이 동일한 클라이언트라는 것을 알아야 하며, 세션이 필요합니다.

Session은 다음과 같이 작동합니다.

1. 클라이언트가 처음으로 서버의 페이지에 액세스하면 서버는 사용자에게 세션 개체를 할당하고 세션에 대한 고유 ID를 지정한 다음 해당 ID를

2. 클라이언트가 서버의 다른 리소스에 계속 액세스하면 서버는 더 이상 새 세션 개체를 할당하지 않습니다. 클라이언트가 클라이언트까지 브라우저가 닫히거나, 시간 초과되거나, 세션을 무효화하기 위해 세션의validate() 메서드를 호출하면 클라이언트와 서버 간의 세션이 종료됩니다.

3. 고객이 웹사이트에 액세스하기 위해 브라우저를 다시 열면 서버는 고객에게 세션 개체를 재할당하고 sessionID를 재할당합니다.

session 객체는 주로 속성 연산 및 세션 관리에 사용됩니다. 일반적으로 사용되는 방법은 다음과 같습니다.

1. public void setAttribute(String name, String value) 지정된 이름을 설정하고 세션 범위에 추가한 후 이 속성이 세션 범위 내에 존재하는 경우 속성 값을 변경합니다. public void setAttribute(String name,String value)设定指定名字的属性的值,并将它添加到session会话范围内,如果这个属性是会话范围内存在,则更改该属性的值。

2、public Object getAttribute(String name)在会话范围内获取指定名字的属性的值,返回值类型为object,如果该属性不存在,则返回null。

3、public void removeAttribute(String name),删除指定名字的session属性,若该属性不存在,则出现异常。

4、public void invalidate(),使session失效。可以立即使当前会话失效,原来会话中存储的所有对象都不能再被访问。

5、public String getId( ),获取当前的会话ID。每个会话在服务器端都存在一个唯一的标示sessionID,session对象发送到浏览器的唯一数据就是sessionID,它一般存储在cookie中。

6、public void setMaxInactiveInterval(int interval) 设置会话的最大持续时间,单位是秒,负数表明会话永不失效。

7、public int getMaxInActiveInterval()

2. public Object getAttribute(String name) 세션 범위에서 지정된 이름을 가진 속성의 값을 가져옵니다. 속성이 존재하지 않으면 null이 반환됩니다. .

3. public void RemoveAttribute(String name), 지정된 이름의 세션 속성이 존재하지 않으면 예외가 발생합니다.

4. public voidvalidate(), 세션을 무효화합니다. 현재 세션은 즉시 무효화될 수 있으며, 원래 세션에 저장된 모든 개체에 더 이상 액세스할 수 없습니다.

5. public String getId( ), 현재 세션 ID를 가져옵니다. 각 세션은 서버측에서 고유한 식별자인 sessionID를 가집니다. 세션 개체가 브라우저로 전송하는 유일한 데이터는 일반적으로 쿠키에 저장되는 sessionID입니다.

6. public void setMaxInactiveInterval(int Interval) 세션의 최대 기간을 초 단위로 설정합니다. 음수는 세션이 만료되지 않음을 나타냅니다.

7. public int getMaxInActiveInterval(), 세션의 최대 지속 시간을 가져옵니다.

8. 세션 생성 시간과 마지막 액세스 시간을 얻으려면 세션 개체의 getCreationTime() 및 getLastAccessedTime() 메서드를 사용하지만 반환 값은 밀리초입니다. 일반적으로 특정 날짜를 얻으려면 다음 변환을 사용해야 합니다. 그리고 시간.

Date creationTime = new Date(session.getCreationTime());
Date accessedTime = new Date(session.getLastAccessedTime());
로그인 후 복사
<%@ page language="java" import="java.util.*" contentType="text/html;charset=GBK"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
로그인 후 복사
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>" rel="external nofollow" >   
    <title>session对象方法</title>
   
 <meta http-equiv="pragma" content="no-cache">
 <meta http-equiv="cache-control" content="no-cache">
 <meta http-equiv="expires" content="0">   
 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
 <meta http-equiv="description" content="This is my page">
 <!--
 <link rel="stylesheet" type="text/css" href="styles.css" rel="external nofollow" >
 -->
  </head>
 
  <body>
    <b>
    会话ID:<%=session.getId() %> <br>
    是否新会话:<%=session.isNew() %><br>
    设置和获取属性对象:用户名 =
    <%session.setAttribute("用户名","bing"); %>
    <%=session.getAttribute("用户名") %><br>
    <%
    Date creationTime = new Date(session.getCreationTime());
    Date accessedTime = new Date(session.getLastAccessedTime());
     %>
     会话创建时间:<%=creationTime %><br>
     上次访问时间:<%=accessedTime %><br>
     会话持续时间(s):<%=session.getMaxInactiveInterval() %><br>
     <%session.setMaxInactiveInterval(12); %>
     修改后的会话持续时间(s):<%=session.getMaxInactiveInterval() %><br>
     <%session.invalidate(); %>
     </b>
  </body>
</html>
로그인 후 복사

세션을 얻기 위해 일반적으로 사용되는 몇 가지 방법 🎜🎜1. Spring mvc에서 🎜
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
로그인 후 복사
🎜2. struts2에서 🎜🎜 (1) 🎜
ActionContext context = ActionContext.getContext(); 
Map request = (Map) context.get("request"); 
Map session = context.getSession(); 
Map application = context.getApplication();
로그인 후 복사
🎜 (2) 🎜
ActionContext actionContext = ActionContext.getContext(); 
HttpServletRequest request = (HttpServletRequest) actionContext
.get(ServletActionContext.HTTP_REQUEST); 
HttpSession session = request.getSession(); 
ServletContext context = (ServletContext) actionContext 
 .get(ServletActionContext.SERVLET_CONTEXT);
로그인 후 복사
🎜3.

위 내용은 Java의 세션 객체 및 메소드 인스턴스 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:yisu.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿