[jsp] attribute scope / 속성 유효 범위 / request, session 값을 저장하는 객체

seulki·2022년 10월 13일
0

jsp

목록 보기
24/51
post-custom-banner

🎈attribute scope

  • page : 페이지 내 에서 지역변수 처럼 사용
  • request : 요청을 받아 웹 브라우저에게 응답할 때까지 변수가 유지되는 경우
  • session : 웹 브라우저 별로 변수가 관리되는 경우 사용
          -> ex) 크롬 브라우저가 여러 창이 열려있을 때 한 개를 닫아도 세션은
                유지된다. 크롬 브라우저를 모두 닫아야 세션이 종료된다.
  • application : 웹 어플리케이션이 시작되고 종료될 때 까지 유지되는 경우


🎈request 에 값 담기

  1. attribute.jsp
<%@ 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>
	<%
		String userid = "user";
		String userpw = "abcd1234";
		String username = "자바학생";
		
		request.setAttribute("userid", userid);
		request.setAttribute("userpw", userpw);
		request.setAttribute("username", username);
		
		//request값이 살아있어야 하기 때문에 forward로 페이지 이동해야함.
		
		pageContext.forward("attribute2.jsp");
				
	%>
</body>
</html>


🎈request 에서 값 꺼내기

  • request 객체는 Object 타입으로 저장되기 때문에 형변환 해야 함.
  1. attribute2.jsp
<%@ 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>
	<%
		String userid = (String)request.getAttribute("userid");
		String userpw = (String)request.getAttribute("userpw");
		String username = (String)request.getAttribute("username");
	%>
	
	아이디 : <%=userid %></br>
	비밀번호 : <%=userpw %></br>
	이름 : <%=username %>
	
</body>
</html>
  • forward로 페이지 이동 했기 때문에, url에는 변화가 없다.

  • forward가 아닌 redirect로 페이지 이동하면 request 부분이 날라가서
    null값으로 출력된다.



🎈session 에 값 담기

  1. attribute.jsp
<%@ 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>
	<%
		String userid = "user";
		String userpw = "abcd1234";
		String username = "자바학생";
		
		session.setAttribute("userid", userid);
		session.setAttribute("userpw", userpw);
		session.setAttribute("username", username);

	  // redirect방식은 request 객체의 값만 지우기 때문에
      // session은 redirect 방식으로 전달해도 된다.
		
		//pageContext.forward("attribute2.jsp");
		response.sendRedirect("attribute2.jsp");
		
	%>
</body>
</html>

🎈session 에서 값 꺼내기

  • session 객체는 Object 타입으로 저장되기 때문에 형변환 해야 함.
  1. attribute2.jsp
<%@ 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>
	<%

		String userid = (String)session.getAttribute("userid");
		String userpw = (String)session.getAttribute("userpw");
		String username = (String)session.getAttribute("username");

	%>

	아이디 : <%=userid %></br>
	비밀번호 : <%=userpw %></br>
	이름 : <%=username %>

</body>
</html>
  • session은 redirect방식으로 전달해도 된다.

profile
웹 개발자 공부 중
post-custom-banner

0개의 댓글