Mon/Feb/03[Java] day23.- 페이지 간 데이터 이동JSP 기본 (이어서) * 웹 페이지와 페이지 사이 data 전달하는 방법
* HTML - Servlet - JSP 간 data 이동 이동 과정 반드시 외워둘 것!
예제) home.html
AddServlet.java
r.jsp
파일 Include Now.jsp - 오늘 일자
test.jsp
* out.flush() 여기서 include()가 나오면 Now.jsp를 실행시키면서 Now.jsp내용이 먼저 나오게 되기 때문에 out.flush()를 통해 out에 그 위의 내용을 저장시키는 것. ( 현재 자신의 위치에 결과값 참조 ) include()와 함께 따라다니는 method. (반드시 암기!) * 여기서는 dispatcher에 특별히 저장하는 내용이 없기 때문에, <%@include file = "Now.jsp" %>로만 처리해도 무방함 * Now.jsp 에서는 날짜값만 연산해서 test.jsp로 가져오는 거기 때문에, Now.jsp 에는 다른 HTML tags 있으면 안됨 쿠키와 세션쿠키 Cookie - 브라우저 상의 임시 저장소 ; browser에 저장되기 때문에 눈으로 확인 가능, 노출 가능성 큼 세션 Session - 웹 서버 상의 임시 저장소 ; Server 내부에 저장되기 때문에 눈으로 확인 불가, 노출 가능성 적음 쿠키가 먼저 탄생, 쿠키의 기술을 그대로 서버 내부로 가져간 것이 세션 쿠키 Cookie 쿠키를 만드는 방법 : Cookie Class 객체 생성 - response.addCookie로 전달
Chrome 에서 cookie data 확인 > JSESSIONID는 cookie data를 관리하기 위한 것 쿠키를 불러오는 방법 : request.getCookies() 모든 쿠키를 Cookie 배열로 return
BROWSER 종료 후 다시 실행하면 모두 NULL * 접속 URL에 따라 cookies 다르게 저장됨 ex) localhost:8080/~으로 저장 후 127.0.0.1:8080/~로 접속하면 null 값만 보임 localhost:8080/과 127.0.0.1:8080/ 둘다 동일한 위치이지만, 브라우저는 url로 비교하기 때문 * Cookie는 수정 / 삭제 method 없음 - 수정하려면 동일한 cookie 명으로 덮어써야 함 - 삭제하려면 1. browser 끄거나 2. cookie의 수명 지정 ; cookie의 기본 수명은 browser 종료와 함께 삭제
* servlet class 내부에서도 동일하게 쓰이지만, 일반적으로 잘 사용하지 않음 ; 내부 작동이기 때문에 굳이 쓸 이유가 없음 세션 session Server 내부 임시저장이기 때문에, JSP와 Servlet의 session이 다름 - 각자 객체 생성해야 함 JSP에는 내장 method 있으나, Servlet에는 없음 - Servlet은 getSession () 호출해야 함
적용범위 - Cookie : browser에 저장 - browser만 살아있으면 다른 파일들에서도 사용 가능 (노출 위험 상당히 높음) - Session : 동일 application 내에서만 공유 가능, 안정성이 상대적으로 높음 예제) join.html
JoinServlet.java
member.jsp
ResultServlet.java
result.jsp
* session 으로 넘길때 중간에 다시 꺼내볼 필요없이, 필요한 곳에서만 다시 꺼내보면 됨 * RequestDispatcher - rd.forward()로 전달하면 session을 쓸 필요 없음 ; 알아서 다 넘겨줌 다시한번 정리 ) 외울 것
|