본문 바로가기

develop/JSP

내장 객체 - session, application,pageContext,로그인 어쩌고 저쩌고

application

 

어플리케이션 내장객체는 서버의 정보를 저장하고, 서버가 동작해야 어플리케이션 내장객체가 자동으로 생성되어

기억장소를 할당한다.

보통 서버의 정보를 저장하고 서버를 멈추면 기억장소도 바로 해제된다.

 

서버정보 : <%=application.getServeInfo() %>
서버의 물리적인 경로 : <%=application.getRealPath("\")%>

 

pageContext

 

현페이지 정보를 저장하는 내장객체 페이지가 보이면 만들어지고 다음 페이지로 바뀌면 사라짐.

 

 

 

 

session

 

클라이언트와 서버 간의 연결 정보를 저장한 객체다. 클라이언트가 페이지를 요청하러 갈 때,

서버와 연결이 되면 연결정보를 저장하는 session이라는 내장객체가 생성된다(기억장소가 할당)

 

서버에서 세션 기억장소를 없애는 법

1. 30분동안 서버와 클라이언트 간에 작업이 없다 => 세션 기억장소가 없어짐(해제)

2. 브라우저를 모두 닫으면 없어짐

3. 세션 기억장소를 없애는 명령을 실행 => 로그아웃 session.invalidate();

 

세션 ID값 확인 : <%=session.getId()%><br>
세션 ID값 생성 시간 : <%=session.getCreationTime() %><br>
세션 ID값 마지막으로 접근한 시간: <%=session.getLastAccessedTime() %><br>
세션 유지 시간 : <%=session.getMaxInactiveInterval() %>초<br>
세션 유지 시간 3600초 1시간 변경 :

 

"ses1" 세션값 하나만 삭제

<%= session.removeAttribute("ses1");%>

삭제하고 이동하기 (sessionTest.jsp)

<%=session.removeAttribute("ses1");%>

<script type="text/javascript">

	alert("이동한다");
	location.href="sessionTest.jsp";

</script>

 

세션값 전체 삭제

<%= session.invalidate(); %>

 

세션값 생성하고 가져오기

 

<%
session.setAttribute("ses1","session1");
session.setAttribute("ses2","session2");
%>

세션값1 : <%=session.getAttribute("ses1");
세션값2 : <%=session.getAttribute("ses2");

 

 

 

-------------

 

영역 영역 객체 속성 유지 범위
page pageContext 현 페이지만 유지
request request 요청 페이지만 있으면 유지
session session 페이지 상관없이 연결만 되있으면 유지
application application 페이지 상관없이 서버가 동작하면 유지

 

 

- 내장객체에 속성값을 저장. 모든 형 저장 가능

내장객체.setAttribute("속성이름",값);

pageContext.setAttribute("page","pageContext value");
request.setAttribute("req", "request value");
session.setAttribute("ses", "session value");
application.setAttribute("app", "application value");

 

-내장객체에 속성값을 가져오기

내장객체.getAttribute("속성이름");

 

아이디 : <%=id %><br>
pageContext 속성값 : <%=pageContext.getAttribute("page") %><br>
request 속성값 : <%=request.getAttribute("req") %><br>
session 속성값 : <%=session.getAttribute("ses") %><br>
application 속성값 : <%=application.getAttribute("app") %><br>

 

-내장객체 기억장소 중에 속성값 하나를 삭제

내장객체.removeAttribute("속성이름");

 

 

이동하는 방법 3가지

 

1. <a>태그

<a href="scopePro.jsp></a>

 

2. 자바스크립트

location.href=""

 

3. response.sendRedirect

response.sendRedirect();

 

 

forward 액션태그

 

jsp코드를 <%%>에 넣지않고 태그처럼 이용할 수 있도록 하는 문법

 

<jsp:forward page=""/> 바로 이동시킴

 

include 액션태그

 

반복되는 부분을 파일로 만들고 반복되는 곳에 파일을 넣기! 파일 하나만 수정하면 모든 페이지 수정이 가능

<jsp:include page="include_top.jsp">
	<jsp:param name="id" value="kim"/>
</jsp:inclide>

한줄로 끝나면 /> 로 마무리

 

그러면 "include_top.jsp"에서만 문서를 수정하면 저 코드가 존재하는 모든 페이지에서 

내용 수정이 가능하다!! 

'develop > JSP' 카테고리의 다른 글

내장 객체 - request,response,out  (0) 2021.01.26