study/WebServer

2_ws_(Sevlet2, JSP)

스파이크12 2020. 1. 10. 08:56

@Servlet 생명주기

- 클라이언트 요청이 들어오면 해당 서블릿이 메모리에 있는지 확인하고 없는 경우

init() 메소드를 호출하여 적재

실행중 서블릿이 변경될 경우 기존 서블릿을 파괴하고 init()메소드를 통해 새로운 내용을 다시 메모리에 적재

@Get과 Post방식의 비교/차이

#HTTP 형태 [Header : 노출부분 / Body : 비노출부분(여러가지정보가들어있음)]

-Get

HTTP Header 부분에 담음

URL에 데이터를 포함시켜 요정

전송하는 길이 제한

캐싱가능(ex 즐겨찾기, 북마크, 링크공유)

순수하게 데이터만 가져옴

-Post

HTTP Body 부분에 담음

URL에 데이터를 노출하지않고 요청

데이터길이에 제한은 없지만 최대요청받는시간(Timeout)이 존재함

캐싱불가능

브라우저의 문자인코딩값도 같이가져옴(ISO-8859-1)

@비즈니스 로직

Servlet은 Java Class이기 때문에 비즈니스 로직(데이터 가공, DB 접근 등의 기능수행을 위한 로직)

수행이 Front 관련 기술들(HTML, Javascript, jQuery)보다 간편하고 효율적이다.

@Get 방식

Head에서 불러옴

// 응답페이지에 사용할 컨텐츠 타입 설정

response.setContentType("text/html; charset=UTF-8");

// 문자열(HTML코드)를 응답화면에 출력할 스트림을

// response객체에서 얻어와 응답화면과 해당 Servlet연결

PrintWriter out = response.getWriter();

@Post 방식

Body에서 불러옴

크롬 = ISO-8859-1으로 인코딩되어있으므로

request.setCharacterEncoding("UTF-8");

// 응답 페이지에 사용할 컨텐츠 타입 설정

response.setContentType("text/html; character=UTF-8");

// 문자열(HTML코드)를 응답화면에 출력할 스트림을

// response에서 얻어와 응답화면과 해당 Servlet 연결

PrintWriter out = response.getWriter();

@@@JSP@@@

JSP란??

JAVA 코드가 들어가 있는 HTML 코드 (결과는 자바)

@Servlet과 JSP차이점

-Servlet

자바코드 속에 HTML이 들어있음

-JSP

HTML속에 자바코드를 넣음

자바 소스코드(<% %> 또는 <%= %>)가 들어가는 형태

@순서

coding -> 서블릿변환 -> 컴파일 -> 실행

         jsp              java          class

@scope

page: 현재페이지내

request: 요청을 받은 servlet/jsp

session: 브라우저

application : 전체

@jsp를 이루는 구성인자(element)

1) page :

-errorPage : 에러발생시 페이지로 이동해라

-isErrorPage : 오류처리페이지

2) ★include : jsp 파일이 자바파일로 바뀔때 자바문서에 삽입되어 컴파일 되는 파일 추가

@스크립팅 원소 : JSP페이지에서 자바코드를 직접기술할수 있게 하는 기능

1) 선언문(declartion)

<%! 자바코드 %>

(메소드, 내부 클래스 #예전에 많이씀)

2) ★스트립틀릿(scriptlet)

<% 자바코드 %>

자바코드(변수선언, 연산, if, for 등등)

3) ★출력식, 표현식(expression)

<%= 자바코드 %>

(결과를 출력해줌(직접적으로 화면에 보여줌))

@내장객체

-request

-response

-out

-session

-config