ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • JSP Servlet 이론(3)
    JSP Servlet 2022. 5. 24. 15:06

    JSP는 왜 필요할까? 
    <Servlet의 특징>
    - 자바코드로 구현한 후 컴파일하고 배포해야 한다
    - 코드가 수정되면 다시 컴파일하고 배포해야 한다
    - HTML 코드를 Servlet 클래스 내에서 문자열("")로 작성해야 한다
    - 프로그램이 복잡해지면 출력되는 HTML페이지를 상상하기 어렵다

    JSP : Java Server Page
    HTML내에 Java코드를 작성하고 웹 서버에서 웹 페이지를 생성하여 웹브라우저에 돌려주는 자바를 기반으로 한 스크립트 언어
    - .jsp 확장자를 가짐
    - 동적으로 작동하여 응답은 html을 이용함
    - jsp -> 서블릿(.java) -> 클래스(.class) -> html으로 변환되어 실행됨

    ==> 로직 구현은 Servlet에, HTML 중심의 코드는 JSP에

    < 스크립트릿(Scriptlet) : <% %> >
    : JSP 페이지 내부에 자바(Java) 소스코드를 삽입한다.

    < 표현식(Expression) <% = %> >
    : 출력결과(html 요소내)에 값을 넣기 위해 사용한다

    < 지시자(Directive) <%@ %> >
    : page지시자(전체적인 페이지 속성), include지시자(외부파일을 포함하고 싶을 때), taglib지시자(외부 라이브러리 사용하고 싶을 때)
     JSP에 대한 설정 정보 또는 JSP 페이지에 다른 문서를 포함시킬 때 사용한다

    < 선언문(Declaration) <%! %> >
    : JSP 페이지 내부에 자바 메소드, 변수를 선언할 때 사용한다 (전역변수, 전역메소드 형태)

    <오류 종류>
    400 -> action(경로) 확인
    500 -> name, req.get~ 확인

     

    내장객체 
    : jsp가 servlet으로 변환될 때 자동으로 생성되는 객체(별도로 생성하지 않아도 사용할 수 있는 객체)

    <내장객체 : out>
    : servlet에서 PrintWriter랑 같은 역할
    : Scriptlet을 다중으로 사용하지 않음으로써 코드가 간결해짐

    <내장객체 : request>
    사용자 요청과 관련된 기능을 제공하는 내장 객체 (주로 클라이언트에서 서버로 전달되는 정보를 처리하기 위해 사용)
    doGet, doPost 메서드의 첫 번째 파라미터와 동일한 역할

    <내장객체 : response>
    : JSP Page의 실행결과를 웹 브라우저로 되돌려줄 때 사용하는 내장객체 (페이지 간 이동)
    1) response.sendRedirect("이동하고 싶은 페이지");
    --> 요청 1번 응답 1번 client(웹브라우저) 요청 1번 응답 1번
    : 현재 실행 중인 JSP page의 실행을 중단하고 다른 Web page가 대신 호출되도록 만드는 기능
    : response.sendRedirect 뒤에 만약 코드가 있다면 그 코드들은 죽는 코드가 되므로 response.sendRedirect는 마지막에 작성해줘야함

    <내장객체 : session>
    하나의 웹브라우저의 정보를 유지하기 위한 세션정보를 가지고 있는 객체

    <내장객체 : application>
    웹 어플리케이션의 Context의 정보를 저장하고 있는 객체

    <내장객체 : pageContext>
    JSP 페이지에 대한 정보를 가지고 있는 객체

    2) rd = request.get~~~()
    request.setAttribute("key", value);
    rd.foward(request, response);
    --> url 바뀌지 않았다!

    <HTTP 특징>
    1. connectionless (비연결성)
       - 클라이언트가 요청을 한 후 응답을 받으면 그 연결을 끊어 버리는 특징
    2. stateless (무상태)
       - 통신이 끝나면 상태를 유지하지 않는 특징

    Cookie (쿠키)
    : 클라이언트(브라우저)에 저장되는 키와 값이 들어있는 작은 데이터 파일

    <쿠키(Cookie) 동작방식>
    1. 클라이언트가 페이지 요청
    2. 상태를 유지하고 싶은 값을 쿠키로 생성
    3. http 헤더에 쿠키를 포함시켜 응답
    4. 브라우저가 종료되어도 쿠키 만료 기간이 있다면 클라이언트에서 보관
    5. 같은 요청을 할 경우 http 헤더에 쿠키를 함께 보냄
    6. 서버에서 쿠키를 읽어 이전 상태 정보를 변경할 필요가 있을 때 쿠키를 업데이트하여 변경된 쿠키를 http 헤더에 포함시켜 응답

    <Cookie 사용 예>
    1. ID저장, 로그인 상태 유지
    2. 일주일간 다시 보지 않기
    3. 쇼핑몰 장바구니 기능

    <Cookie 단점>
    1. 보안에 취약
    2. 작은 허용 용량
    3. 다른 브라우저에서 저장한 값 사용불가

    <Session(세션)>
    : 브라우저가 종료되기 전까지 클라이언트의 정보를 유지하게 해주는 기술
    : 사용자 정보 파일을 서버 측에서 관리

    <세션(Session) 동작방식>
    1. 클라이언트가 페이지 요청
    2. 해당 브라우저(클라이언트)에 유일한 ID(SessionID)를 부여
    3. 응답헤더에 Session id를 포함해서 전송
    4. 쿠키에 Session id 저장
    5. 이후 서버에 요청할 때 Session id가 담긴 쿠키를 요청헤더에 추가하여 요청

    <Session 사용 예>
    1. 로그인 같이 보안상 중요한 작업을 수행할 때 사용

    <Session 특징>
    1. 각 client에게 고유 ID 부여
    2. 보안 면에서 쿠키보다 우수
    3. 사용자가 많아지면 서버 메모리 많이 차지하게 됨

    <JSP 내장객체 기본영역(Scope)>
    page : 하나의 JSP 페이지를 처리할 때 사용되는 영역
    request : 하나의 요청을 처리할 때 상요되는 영역
    sesson : 하나의 브라우저와 관련된 영역
    application : 하나의 웹 애플리케이션과 관련된 영역

    'JSP Servlet' 카테고리의 다른 글

    Eclipse Tomcat9 Setting  (0) 2022.07.12
    JSP Servelet 이론(4)  (0) 2022.06.02
    JSP 실습(2)  (0) 2022.05.02
    JSP 실습(1)  (0) 2022.05.02
    Servlet 실습(2)  (0) 2022.04.29

    댓글

Designed by Tistory.