본문 바로가기

JSP

include지시자 / 쿠키

# include지시자 
-    <%@ include file="b.jsp"%>               // 저작권표시(워터마크등) 단순반복!


# <jsp:include> vs include 지시자 비교

-    <jsp:include>    :  동적 디렉티브
           .java .class따로만들고 요청이왓을때 합침(즉, 실행된 결과물을 현재 페이지에 포함시킴)
            ex)  <jsp:include page="a.jsp" />

            즉, a.jsp안에 b.jsp가 <jsp:include> 되어있을경우 
            a.jsp가 컴파일되고 이후 html문서로 생성되는 시점에 b.jsp가 컴파일되고 html문서화된다.
            이후 a.html에 합쳐진다. 
            따라서 a.jsp에서는 b.jsp안에 선언된 전역변수나 함수등을 사용 할 수 없다.
    

-    <%@ include file="a.jsp" %>    :    정적 디렉티브
지시자는 소스를 한개밖에안만들고 만들때 합침
따라서 각자 선언된 변수를 서로 사용가능하다.
( jsp파일두개를 하나로 합친뒤 하나의 jsp로 만든후 하나의 클래스파일로 컴파일한다 )

단점은 부모 페이지에 include한 파일이 많을경우 inlucde 페이지에서 선언된 변수를 일일이 
추적해야해 유지보수할때 귀찮다. 


저작권같은거는 지시자로만들어서 계속 추가함
즉, 매페이지마다 반복되는것들은 이거사용
따로 머 전달할거없을때 사용

[사용예]
=> 모든jsp페이지에서 사용되는 변수 지정(공통변수)
=> 저작권표시와같은 간단하면서도 모든페이지에서 중복되는문장

      


[ex]    동적 include 의 단점을 회피
        ( 동적 include는 두 jsp파일간의 변수를 공유하지않는다 )
        하지만 부모 jsp파일의 변수값을 자식 jsp파일에 파라미터로 넘길 수는 있다
<%  String content= "abc";   %>
<jsp:include page="${content}" >
      <jsp:param name="content" value="<%=content%>"/>
</jsp:include>


[ex] 기본 include지시자 사용법 ( url잘볼것 )
-    a.jsp에 b.jsp내용을 합치는효과
-    합치는효과이기에 a.jsp에서 b.jsp내용을 다음과같이쓸수있다.
a.jsp
=====
<%@ page language= "java" contentType ="text/html; charset=EUC-KR"
    pageEncoding= "EUC-KR" %>
<%@ include file="b.jsp" %>

<%=path%>

b.jsp
============
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<%@ page import="java.sql.*"%>
<%
      String path = request.getContextPath();
%>































# 쿠키

서버의저장장소 : 4개영역, DB , file
클라이언트의 저장장소 : 쿠키, 내임시폴더


웹브라우저가 웹서버로 파라미터를 통해 정보를 전달하는것과반대로
웹서버가 웹브라우저에게 정보를 전달하는방법이 있는데 이것이바로 쿠키임!
1. 쿠키생성 : 웹서버에서 쿠키생성 ( 응답시 데이터와함께 저장되어 전송 )
2. 쿠키저장 : 웹브라우저의 쿠키저장소에 보관 ( 쿠키의종류에따라 메모리나 파일로 저장 )
3. 쿠키전송 : 웹브라우저는 한번 저장된 쿠키를 매번 요청이있을때마다 웹서버로 전송
                    웹서버는 웹브라우저가 전송한 쿠키를 사용해서 필요한 작업수행

쿠키의 나이를 지정안하면 session과같이 웹브라우저가 꺼지면 사라짐
나이지정은 coo1.setMaxAge(60*60);


[ex] b.jsp를 저장만하고 실행하지말고 크롬같은거켜서 아무 거나 실행하고 url에 b.jsp실행해보면
        쿠키정보가뜸 ( 선 실행안하면 쿠키정보가없어서? 널포인트입셉션 뜸 )
b.jsp
=====
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<%
Cookie[] coos=request.getCookies();
for(Cookie coo : coos){
         out.println(coo.getName()+" : "+coo.getValue());
}
%>



[ex] 쿠키임의생성
a.jsp
=========
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>

<%
Cookie coo1 = new Cookie("aa", "bb");
// 생성자에 쿠키이름, 쿠키값 을 세팅
Cookie coo2 = new Cookie("cc", "dd");
response.addCookie(coo1);
response.addCookie(coo2);
%>
 쿠키생성완료

b.jsp
============
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<%
Cookie[] coos=request.getCookies();
for(Cookie coo : coos){
out.println(coo.getName()+" : "+coo.getValue());
}
%>



[ex] 쿠키 유효시간
바로위예제에서 a.jsp에서 coo1.setMaxAge(60*10); 를 객채생성뒤에 바로추가해주면
익스플로러에서 b.jsp하면 널포인트 , 다시 a.jsp하고 b.jsp하면 쿠키 3개가 확인됨 ( 하나는 기본,  2개는 내가임의로만든거 ) ( a.jsp하면 쿠키3개생성됨)
이상태에서 크롬에서 b.jsp하면 쿠키 1개 확인됨 ( 익스에서 만든 유효시간있는 쿠키...), 새로고침하면 이거와 jsession 

쿠키유효시간세팅안하면 session과 유효시간이 같음 

다음사이트의 id저장체크박스에 체크하면 내컴퓨터에 아이디가 쿠키로 저장됨

[ex] 쿠키삭제





'JSP' 카테고리의 다른 글

JSP 에러 페이지 설정  (0) 2019.03.27
JSP 경로 / 파일관련  (0) 2019.03.09
DB풀링기법(커넥션풀)  (0) 2019.03.09
현재 접속자수 표시  (0) 2019.03.09
로그인 화면이동( 화면이동방법 3가지 )  (0) 2019.03.09