Programming/Java

[완독정리] 자바웹을 다루는 기술 1- 길벗

armyost 2021. 2. 9. 23:05
728x90

서블릿이란 : 

서블릿은 서버 쪽에서 실행되면서  클라이언트의 요청에 따라 동적으로 서비스를 제공하는 자바클래스입니다.
- 서버쪽에서 실행되면서 기능을 수행합니다.
- 기존의 정적인 웹 프로그램의 문제점을 보완하여 동적인 여러가지 기능을 제공합니다.
- 스레드 방식으로 실행됩니다.
- 자바로 만들어져 자바의의 특징을 가집니다.
- 컨테이너에서 실행됩니다.
- 컨테이너 종류에 상관없이 실행됩니다.(플랫폼 독립적)
- 보안기능을 적용하기 쉽습니다.
- 웹 브라우저에서 요청시 기능을 수행합니다.

MIME-TYPE :

서버에서 웹 브라우저로 데이터를 전송할 때는 어떤 종류의 데이터를 전송하는지 웹 브라우저에 알려줘야 합니다. 그 이유는 웹 브라우저가 전송 받을 데이터의 종류를 미리 알고 있으면 더 빠르게 처리할 수 있기 때문입니다. 톰켓 컨테이너에서 미리 MIME-TYPE을 설정해서 전송할 데이터의 종류를 지정합니다.

JNDI
실제 웹 애플리케이션에서 ConnectionPool 객체를 구현할 때는 Java SE에서 제공하는 Javax.sql.DataSource 클래스를 이용합니다. 그리고 웹 애플리케이션 실행 시 톰캣(컨테이너)이 만들어 놓은 ConnectionPool 객체에 접근할 때는 JNDI를 이용합니다.

서블릿의 다양한 포워딩 방법
- redirect 방법 : 웹브라우저에 재요청하는 방식
- Refresh 방법 : 웹브라우저에 재요청하는 방식 
- location 방법 : 자바스크립트에서 재요청하는 방식
- dispatch 방법 : 서블릿이 직접 요청하는 방식(클라이언트를 거치지 않고 다른 서블릿에 요청)

바인딩
- setAttribute
- getAttribute
- removeAttribute

스코프
스코프의 기능은 다음과 같습니다.
- 로그인 상태 유지기능
- 장바구니 기능
- MVC의 Model과 View의 데이터 전달기능
스코프의 종류와 특징
- 애플리케이션 스코프 : ServletContext
- 세션 스코프 : HttpSession
- 리퀘스트 스코프 : HttpSErvletRequest

필터
- 요청필터 : 
사용자 인증 및 권한 검사
요청시 요청 관련 로그 작업
인코딩 기능
- 응답필터 : 
응답 결과에 대한 암호화 작업
서비스 시간 측정

DAO와 Service
DAO는 데이터베이스에 접근하는 기능을 수행하고 Service는 실제 프로그램을 업무에 적용하는 사용자 입장에서 업무단위, 즉 트랜잭션으로 작업을 수행합니다. 여기서 업무단위란 논리적인 단위기능을 의미합니다.