본문 바로가기

JSP,Servlet

JSP - Session객체 생성/가져오기/ 삭제

Session 생성

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h1>세션생성</h1>
	
	<%
		session.setAttribute("session1", "첫번째 세션" );
		session.setAttribute("session2", 15);
		
	%>
	<a href = "ex02selectSession.jsp">세션 확인</a>
</body>
</html>

session 객체 생성

 

jsp에서는 객체 생성없이 바로 생성가능 ---------> 내장객체 

session에 값 추가 

setAttribute("세션이름", "(object)데이터");

 


Session 값 가져오기

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h1>세션 조회</h1>
	<%
		
		String value1=(String)session.getAttribute("session1"); // 첨에 빨간줄 뜬다 
	
		Integer value2= (Integer)session.getAttribute("session2");
		
		out.print(value1+"<br>");
		out.print(value2+"<br>");
	
	%>
	<a href="ex02deleteSession">세션 삭제</a>
	<a href="ex02deletAllSession">세션 전체삭제</a>
</body>
</html>

session 객체 생성

---->jsp에서는 생략!!!

 

세션 가져오기----> getAttribute("세션이름");

 

세션을 저장할 때, Object으로 업캐스팅이 일어난다.

 

세션에서 값을 꺼내올 때, 다운캐스팅(명시적 형변환) 필요

 

String value1=session.getAttribute("session1"); -----> 이렇게만 쓰면 오류가 난다.

----->String value1=(String)session.getAttribute("session1") 다운캐스팅을 해줘야 오류가 사라짐!! 중요

 

NullPointerException : null 값이 허용되지 않는경우인다, null값이 들어간 상황

 

int,char,boolean --->기본자료형

 

기본자료형에는 null값을 담을 수 없음

 

int의 참조자료형 -----> Integer를 써준다

 

session에서 값을 가져올때, 기본자료형 대신 참조자료형

Integer value2 =(Integer)session.getAttribute("session2");----> 여기도 마찬가지로 다운캐스팅

 


Session 전체 삭제

package Controller;

import java.io.IOException;
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;


@WebServlet("/ex02deletAllSession")
public class ex02deletAllSession extends HttpServlet {
	private static final long serialVersionUID = 1L;

	
	protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		HttpSession session = request.getSession();
		
		session.invalidate();
		response.sendRedirect("ex02selectSession.jsp");
		
		
	}

}

세션 객체 생성 JSP에서만 생략!

 

세션 객체 생성

HTTPSession session = request.getSession();

 

전체 세션 삭제---> 잘 안씀 ..

session.invalidate();


Session 객체 삭제

package Controller;

import java.io.IOException;
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;


@WebServlet("/ex02deleteSession")
public class ex02deleteSession extends HttpServlet {
	private static final long serialVersionUID = 1L;

	
	protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		HttpSession session =  request.getSession();
	
		session.removeAttribute("session1");
		
		response.sendRedirect("ex02selectSession.jsp");
		
		
	
	}

}

위랑 똑같이 우선

세션 객체 생성

 

HttpSession session = request.getSession();

 

세션 1개 삭제

removeAttribute("세션명");

 

session.removeAttribute("session1");