쿠키 (Cookie)


  • 웹 서버가 클라이언트 측 컴퓨터에 저장 할 수 있는 간단한 정보
  • 쿠키 정보는 HTTP 프로토콜의 헤더부문에 있는 쿠키 헤더를 이용
  • 사용자 정보를 저장한 후 필요할 때 정보를 읽어오기 위함

쿠키 동작 단계


  1. 쿠키 생성 단계 : 서버에 의해 생성, 응답 데이터와 함께 클라이언트에 전송
  2. 쿠키 저장 단계 : 전송된 쿠키는 클라이언트의 쿠키 저장소에 저장
  3. 쿠키 전송 단계 : 저장된 쿠키는 요청이 있을 때 마다 웹 서버에 전송

쿠키 메소드


setComment(String comment) 쿠키의 사용 목적을 설명하는 커멘트 설정
setDomain(String Pattern) 쿠키가 전달된 도메인 이름을 설정
setMaxAge(int expiry) 쿠키의 유효시간 설정(단위 초) 
setPath(String url) 쿠키를 전송할 경로 설정
setSecure(boolean b) True 일때 암호화 된 네트워크 커넥션을 통해 쿠키를 전송하도록 설정
setValue(String value) 쿠키의 값 설정
setVersion(int version) 쿠키 버전 설정

 

 


 

쿠키 형식


형식 Cookie cookie = new Cookie(String name,String value); (쿠키 이름, 쿠키값)
예제 Cookie cookie = new Cookie("JOB","Student");

세션 (Session)


  • 웹 서버쪽의 웹 컨테이너 상태를 유지하기 위해 정보를 저장
  • 웹 브라우저 별 한 개씩 세션 객체를 생성하여 컨테이너에 저장
  • 세션은 고유 ID가 부여

장점 보안성이 뛰어 남 
단점 다수 사용자 접속의 경우 서버에 큰 부담

 

세션 메소드

 


setAttribute(String name,String Value) 세션 이름과 값을 설정 상기 메소드들은 request객체 application 객체 pageContext 객체에서도 중복 사용
getAttribute(String name) 세션 이름을 얻음
removeAttribute(String name) 해당 이름의 세션 삭제
getId() 세션 id얻음  
getCreationTime() 세션 생성시간을 얻음
getLastAccessTime() 마지막 세션 접근 시간 얻음
getMaxInactiveInterval(int interval) 세션 자동종료시간을 얻음

 

'프로그래밍 > 웹프' 카테고리의 다른 글

*JSP #3 || 태그들  (0) 2021.03.30
*JSP #2 || 내장객체2  (0) 2021.03.22
*JSP #1 || 내장객체  (0) 2021.03.16
*JSP #0 || 기본태그와 의미  (0) 2021.03.09

1. 액션 태그


  • 태그 자체가 어떤 처리를 하는 것
  • 태그 자체가 이름이 있으면서 처리를 지시하는 태그
  • 페이지와 페이지 사이의 이동 관련 제어
  • 자바 애플릿을 지원
  • 액션태그는 XML 문법을 사용 반드시 종료 태그를 사용해야 함

 

액션 태그 유형


  • 표준 액션 태그 - Sun 사에서 제공하는 액션을 지시하는 태그,미리 컨테이너 안에 구현해 놓아 웹 개발자에게 태그만으로 어떠한 처리를 하도록 제공 
  • 사용자 정의 태그 - 태그를 웹 개바랒의 정의와 구현으로 문서 안에서 처리를 지시하는 태그

표준 액션태그

매개 변수가 없는 경우
(*tageName = forward,include,plugin,useBean)
<jsp:tagName attribute1="value1" attribute2="value2".../>
매개 변수가 있는 경우
(*tageName = forward,include,plugin,useBean)
<jsp::tagName attribute1="value1" attribte2="value2...>
<jsp:param name="name1" value="value1"..../>
<jsp:param name="name2" value="value2"....>
</jsp:tagName>

 

태그별 상세(include)


  1. 웹 브라우저가 a.jsp 페이지를 웹 서버에 요청
  2. 서버는 요청받은 a.jsp 페이지를 처리, a.jsp 페이지 내에서 출력 내용은 출력 버퍼에 저장
  3. <jsp::include page="b.sjp" flush="false"/> 문장을 만나면 하던 작업을 멈추고 프로그램 제어를 b.jsp페이지로 이동
  4. b.jsp페이지를 처리. b.jsp 페이지 내에 출력내용은 출력버퍼에 저장하는 등의 작업을 처리
  5. b.jsp 페이지 처리가 끝나면 다시 a.jsp페이지로 프로그램의 제어가 이동 이동위치는 <jsp::include page="b.sjp" flush="false"/> 문장 다음 행
  6. a.jsp 페이지의 나머지 부분 처리
  7. 출력버퍼의 내용을 웹 브라우저로 응답

 

Include 지시어와의 관계성

 

  • 유사점 - 다른 파일을 포함하는 기능
  • 차이점 
include 액션태그 include 지시어
해당하는 페이지의 처리결과 포함 해당하는 소스이 내용을 텍스트로포함
실행시점에서 해당파일을 호출하여 그 결과를 포함 해당파일을 포함시킨 다음 컴파일을 수행
동적인 페이지를 포함시킬 경우에 좋음
파일 두개를 각각 컴파일해서 관리하기 때문에
정적 페이지를 포함시킬 경우에 좋음
파일 내용 두개를 하나로 컴파일 하기때문에 

 

param 액션태그

 

forward 액션 태그

 

 

 

 

useBean 액션태그

 

  • 자바 빈 = 자바 클래스 : 자바로 작성한 소프트웨어 컴포넌트, 일정한 코딩 규칙에 다라 작성한 재사용 가능한 자바
  • 자바 통합 개발환경에서 사용
  • JSP에서는 빈 클래스를 JSP컨테이너가 그 생성자를 호출되어 객체를 생성하여 사용

UseBean 액션 태그

  • 하나의 자바 빈을 JSP에서 사용할 수 있게 해주는 액션 태그

usebean 속성

'프로그래밍 > 웹프' 카테고리의 다른 글

*JSP #5 || 쿠키와 세션  (0) 2021.04.06
*JSP #2 || 내장객체2  (0) 2021.03.22
*JSP #1 || 내장객체  (0) 2021.03.16
*JSP #0 || 기본태그와 의미  (0) 2021.03.09

1. pageContext

 

 


ⅰ. 개요

  • 현 JSP 페이지에 관련된 정보를 가지고 있는 내장 객체
  • 한 JSP 페이지 당 한 개의 pageContext 객체가 존재 > 해당 페이지 접속할 때 생성, 페이지 벗어날때 제거
  • JSP 페이지에서 다른 내장 객체(8가지 내장 객체)를 얻을 때 사용
  • 하나의 페이지에서 다른 페이지로 제어를 넘겨 줄 때 사용(해당 페이지가 요청을 시도한 클라이언트에 서비스를 제공하는 동안 유효)
  • 변수에 값을 설정하거나 얻어오기 위해 사용

"내장 객체" 참조 관련 메소드

 

페이지 전달 관련 메소드

 

속성 관련 메소드


2. Application


 

ⅰ. 개요

  • 서버 측 정보를 제공하기 위한 객체 ( 웹 페이지가 실행되는 서버의 정보와 자원을 얻음)
  • 웹 어플리케이션에 관련된 정보를 제공
  • 개발자를 위한 서버 정보 제공
  • 서버의 각종 자원 정보 제공
  • 로그 관련 정보 제공

개발자를 위한 서버 정보 관련 메소드
서버 자원 정보
로그 관련 메소드
속성 관련 메소드(application이 실행되는 동안만 유효함)


3. Session


ⅰ. 개요

  • 웹 브라우저의 세션 정보를 관리
  • HTTP 프로토콜은 비 연결형(무상태 프로토콜) -> 이전 정보의 저장 관리가 필요
  • 웹 페이지 간에 정보를 관리 할 수 있는 방법 (: Ⅰ.쿠키, Ⅱ.세션)
  • 사용자 로그인 후 세션을 설정하고 일정 시간 지난 경우 다시 사용자 인증 요구
  • 사용자의 페이지 방문내역 등 웹 페이지 트래킹 추적 기능

*세션 : 사용자 관련 정보를 서버에 보관접속한 클라이언트의 간단한 정보를 위한 객체, 클라이언트가 접속을 유지하는 동안 지속, 접속이 없는 경우 보통 30분이 지나면 클라이언트의 정보를 지움

*쿠키 : 사용자 관련 정보를 PC에 보관

*세션이 쿠키보다 보안성이 좋고, 제약사항이 적어 많이 사용

*세션은 하나의 어플리케이션 내에서만 유효

*두 개의 서로 다른 어플리케이션에서는 쿠키를 사용해야 함

* 무상태 프로토콜:만약에 많은 정보를 무제한 시간동안 가지고 있으려면 엄청나게 많은 데이터 양을 차지함으로 엄청나게 비효율적임.


 

주요 메소드


 

4. Config


ⅰ. 개요

  • 서블릿의 인스턴스가 참조 할 초기 설정 자료들을 담고 있는 객체
  • 서블릿이 초기화 될 때 JSP 컨테이너가 환경 정보를 서블릿으로 전달 할 떄 사용하는 객체
  • 어플리케이션에서 공유 할 수 있는 초기화 변수 접근
  • 어플리케이션의 ServerContext 객체 가져옴

주요 메소드


*서블릿 : 클라이언트의 요청을 처리, 그 결과를 반환하는 자바 기반의 웹 어플리케이션 프로그래밍 기술

jusungpark.tistory.com/15

 


 

5. Page


ⅰ. 개요

  • JSP 자체를 나타내는 객체, 자기 자신을 참조할 때 사용
  • JSP 컨테이너에서 생성된 서블릿 인스턴스 객체를 참조하는 래퍼런스 변수
  • 최근에는 거의 사용하지 않음

6. Exception


ⅰ. 개요

  • JSP 페이지에서 발생한 예외를 처리 할 때 사용하는 객체
  • 반드시 page 디렉티브의 isErrorPage 속성을 true로 지정해야 함
  • 현재 호출된 에러 정보 제공

주요 메소드

 

'프로그래밍 > 웹프' 카테고리의 다른 글

*JSP #5 || 쿠키와 세션  (0) 2021.04.06
*JSP #3 || 태그들  (0) 2021.03.30
*JSP #1 || 내장객체  (0) 2021.03.16
*JSP #0 || 기본태그와 의미  (0) 2021.03.09

*JSP : Java Server Pages

 

/* 웹 서버 동작 시 사용 유무와 상관 없이 9개의 내장 객체가 무조건 생김*/

  1. 정의 : 자바를 사용해서 웹 서버에서 실행하는 프로그램을 작성하는 언어
  2. 특징 : 동적 웹 페이지를 작성,태그 중심의 스크립트 언어
  3. 표현 : HTML 내에 JSP 태그를 사용해서 표현 ( <%@/>?....>
  4. 프로그램 구성 : 헤드와 스크립트릿 부분
  5. 수행 방식 : Client-Server 방식으로 수행(클라이언트 서비스 요청을 웹 서버가 받아 처리)

*JSP 객체

 

1. JSP 문서와 객체

 

  • JSP 문서 안에 자바 코딩이 가능
  • 객체 사용 가능

2. JSP 객체

1. 사용자 정의 객체 

   1) 개요 : 개발자 자신이 필요에 의하여 정의하고 사용하는 객체

   2) 용도 : 문서 작성에 필요한 처리,문서 모양을 위한 처리 등

   3) 사용 :

             ⅰ. 문서 안에 정의하는 경우 : <%!..%> OR <%..%>

            ⅱ . 문서 밖에 정의하는 경우 : import 필요,외부 경로에 저장

2. 내장 객체

   1)개요 : JSP 내에서 객체를 선언하지 않고 사용 할 수 있는 객체,컨텐이너 자체에서 웹 개발자를 위해서 재공하는 객체

   2)사용 : 스크립트릿이나 표현식에서 사용,객체 선언 및 생성없이 사용

 

   3)용도 및 분류

 

요청과 응답 처리 객체 requst,response,out
서블릿 정보 객체 page,config
환경 정보 관련 객체 session,application,pageContext
예외 처리 객체 exception

 

Requset 클라이언트 요청 정보 저장
HTML 폼을 통해 전달되는 값을 가져올때 사용
한 번의 웹 브라우저 요청에 대해 같은 요청을 공유하는 페이지가 대응
requst.메소드(변수)
ex)
request.getCharacterEncoding();
request.getParameter("strID");
Out 결과 출력  
Session HTTP 세션 정보 저장
한번의 웹 브라우저당 1개의 session 객체가 생성
 
Response 응답 정보 저장 서버에서 웹 브라우저로 응답을 보내는 객체
응답 http 프로토콜에 관련된 정보를 위한 것
HTTP헤더 쿠키,리다이렉션 URL을 담당
헤더 부분의 설정 정보를 가진 객체
C.F)바디 부분은 out 객체가 가짐
PageContext 페이지 정보 저장  
application 웹 어플리케이션 정보 저장
하나의 웹 어플리케이션 당 1개의 application 객체 생성
 
config 페이지 설정 정보 저장  
page 페이지를 구현한 자바 클래스 인스턴스
한 번의 요청에 대해 하나의 JSP 페이지 호출
 
exception 예외 객체  

 

 


+requset 객체는 'HTTP 프로토콜 관련 메소드','헤더메소드' 와 '파라미터 관련 메소드'로 이루어 져 있다

 

  • HTTP 프로토콜 관련 메소드

- 객체를 지원하는 웹 브라우저 및 클라이언트가 전송한 정보,서버 정보들을 볼 수 있는 메소드

  • 헤더 관련 메소드

- 헤더의 정보를 읽어 올 수 있음

 

 

  • 파라미터 관련 메소드

- 웹 브라우저가 폼에 입력한 전송한 데이터를 읽어 오는 역할

 

 


*서버로 데이터를 전달하는 방법

get

  • 웹 브라우저의 URL 창에 파라미터의 정보를 담아서 전송하는 방식
  • 클라이언트가 작성한 내용을 환경변수에 전송
  • 보안에 취약,정보의 크기가 1024로 제한됨

post

  • 클라이언트가 작성한 내용을 표준 입력을 통해 별도로 담아서 웹 서버로 전송
  • 정보의 크기에 제한 없이 전송 가능
  • URL 주소창에 전송하려는 데이터의 정보가 없으므로 보안성에 좋음.
  • 반드시 HTML의 <FORM> <INPUT> 태그를 사용해야함 (Form Action ="ex.jsp" Method="post">

 

  • Get 방식

http://localhost:8080/request_3.jsp?strID=~~~~~&Pwd=&&&

 

  • Post 방식

http://localhost:8080/request_3.jsp

 

hongsii.github.io/2017/08/02/what-is-the-difference-get-and-post/


*response 객체

 


 

'프로그래밍 > 웹프' 카테고리의 다른 글

*JSP #5 || 쿠키와 세션  (0) 2021.04.06
*JSP #3 || 태그들  (0) 2021.03.30
*JSP #2 || 내장객체2  (0) 2021.03.22
*JSP #0 || 기본태그와 의미  (0) 2021.03.09

 

               

JSP 태그 지시자태그
JSP 전체에 대한 정보나 JSP 문서 안에서 사용자 태그에 대한 지시사항 등을 표현
이 정보는 JSP 컨테이너가 JSP 문서를 서블릿으로 번역할 때 필요
Directive Tag
page
(페이지에 대한 정보를 지정)
<%@ page ~~~ %> <%@ page language="java"
contentType ="text/html;charset=euc=kr" %>

->
언어가 자바 언어로 되어있으며 웹 페이지를 실행한 결과는 텍스트/html로 해주세요. 이 페이지는 한글이 포함되어 있습니다. 
include
(페이지의 특정 영역에 다른 JSP 문서 포함)
<%@ include ~~~%>
taglib(페이지에 사용할 태그 라이브러리 지정) <%@ taglib ~~~ %>
스크립팅 요소 태그
JSP 안에서 수행해야 할 논리적 작업을 위한 프로그램을 이 태그내에 삽입
Scripting Actions Tag
선언(변수나 함수를 정의) <%! ~~~ %>  
수식(변수나 함수의 값을 출력) <%= ~~~ %>  
스크립트릿(자바 명령어 문장) <% ~~~ %>

 
표준 액션 태그 
동적인 컨텐츠를 위한 기능을 제공
이 자체가 어떤 처리를 하는 것
Standars Action Tag
<jsp:useBean> 별도로 자바 빈 파일을 사용한다.  
<jsp:setProperty> 값을 전달  
<jsp:getProperty>    
<jsp:param>    
<jsp:forward>    
<jsp:plugin>    
사용자 정의 태그
태그 자체를 사용자가 정의하여 사용
Custom Tag
<library-name:tag-nem ~~~~>    
주석 태그
JSP 문서 자체에 대한 설명(주석)
Comments Tag
<%-- ~~~ -- %>    

 

page 지시어 주요 속성

 

속성 설명
autoFlush 출력 버퍼가 다 찼을 경우, 자동으로 버퍼에 있는 데이터를 보내고 비울지의 여부를 나타냄(default = true)
버퍼 속성에 지정되어 있는 만큼 버퍼를 유지하고 버퍼가 다 차면 자동으로 전송
Buffer 클라이언트에게 응답시 사용할 출력 버퍼 크기 지정

isThreadSafe 스레드 상태에서 데이터의 안정성을 보장하는 옵션

contentType JSP가 생성할 클라이언트에게 제공될 응답 문서의 MIME(Multipurpose Internet Mail Extension) 타입을 지정
-> 문자가 아닌 다른 형식을 위한 규약
errorPage 페이지를 실행하는 도중에 에러가 발생할 경우 보여줄 페이지 지정
isErrorPage 현 JSP 페이지가 에러 페이지인지를 구분하는 속성
isELIgnored 표현 언어의 지원 여부 지정
import 페이지에서 사용할 자바 클래스 지정
Info 페이지에 대한 설명(인포) 입력
language 프로그래밍 언어 지정
session 세션을 사용할 지의 여부 지정
pageEncoding 페이지 자체의 인코딩 지정

 

'프로그래밍 > 웹프' 카테고리의 다른 글

*JSP #5 || 쿠키와 세션  (0) 2021.04.06
*JSP #3 || 태그들  (0) 2021.03.30
*JSP #2 || 내장객체2  (0) 2021.03.22
*JSP #1 || 내장객체  (0) 2021.03.16

+ Recent posts