-
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