# 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 |