Post

Dynamic Web Project란?

#naver-import

원문: https://blog.naver.com/qoxmfaktmxj/222735586350

Java Servlet 기반의 Web Application

Servlet(서블릿)은 웹 브라우저(Web Browser)에서 요청(Request)이 들어오면 웹 컨테이너(Web Container, Servlet Container)에서 웹 페이지를 동적으로 생성하고 웹 브라우저에 응답(Respone)하는 Server-Side(서버사이드) 자바 프로그램입니다.

[[ Web ] 서버 사이드(Sever Side) ? 클라이언트 사이드(Client Side)? 1 [서론, 클라이언트 사이드(Client Side)]

nitro04.blogspot.com](https://nitro04.blogspot.com/2020/06/web-sever-side-client-side-1.html)

웹 서버(Web Server, HTTP Server)는 웹 브라우저(Web Browser)에서 HTTP 요청(Request)을 받아 정적인 콘텐츠(html, image(jpg, gif, png 등등), css, script)를 응답(Response)합니다.

웹 서버로는 Apache Server, Nginx, IIS, WebToB 등이 많이 사용됩니다.

Web Container(웹 컨테이너)는 요청되는 URL과 매핑되는 서블릿을 호출하기 위해 스레드를 생성하고 서블릿을 처리합니다. (WAS가 처리하는 것이 Web Container입니다. 설명을 위해 표시한 겁니다.)

그리고 Web Container(웹 컨테이너)는 서브릿뿐만 아니라 JSP 그리고 Server-Side(서버사이드) 코드가 있는 프로그램 파일들을 관리하고 처리합니다.

웹 응용프로그램 서버로는 Apache Tomcat, Web Logic, Web Sphere, JBOSS, Jeus 등이 많이 사용됩니다.

JSP vs Servlet

JSP(JavaServer Pages )는 HTML 안에 Scriptlet(스크립틀릿)으로 자바 소스 코드(<% %>)를 포함하고 있습니다. 파일 확장자는 “.jsp”이고 WAS에서 실행될 때 동적으로 컴파일(Compile)되어 실행됩니다.

Servlet(서블릿)은 자바 소스 코드 안에 HTML를 포함하고 있습니다. 파일 확장자는 “.java”이고 배포하기 위해서는 컴파일(Compile)을 해야 합니다. 컴파일된 파일 확장자는 “.class”입니다.

프로젝트 구조

Java Resources | 자바기반의 자원들

src**: Java 소스파일, 프로퍼티(.properties)파일 위치

libraries: 실제 WebContent/WEB-INF/lib 폴더를 가상으로 보여줌

build | 소스파일 컴파일 이후의 결과물들

build**: 자바 클래스 파일(.class) 위치

WebContent | HTML(.html), CSS(.css), JavaScript(.js), JSP, 이미지 파일 등의 웹 콘텐츠

웹 어플리케이션을 서버에 배치할 때 이 폴더의 내용물이 그대로 복사

WebContent/WEB-INF: 웹 어플리케이션 설정 관련 파일들이 위치하는 디렉토리

이 폴더에 있는 파일은 클라이언트에서 요청할 수 없음

WebContent/WEB-INF/web.xml: 웹 어플리케이션 Deployment Descriptor(배치 설명서, DD파일)

서블릿, 필터, 리스너, 매개변수, Welcome Pages 등의 웹 어플리케이션 컴포넌트 배치 정보를 작성

서블릿 컨테이너는 클라이언트의 요청을 처리할 때 이 파일의 정보를 참고하여 서블릿 클래스를 찾거나 필터를 실행하는 등의 작업을 수행

WebContent/WEB-INF/lib: 자바 아카이브 파일(.jar)이 위치하는 디렉토리

jar(Java Archive)?

zip 파일 형태의 압축파일

여러개의 자바 클래스 파일과 클래스들이 이용하는 관련 리소스(텍스트, 그림 등) 및 메타 데이터를 하나의 파일로 모아서 압축

하나의 파일로서 자바 플랫폼에 응용 SW나 라이브러리를 배포하기 위한 파일 포맷

Java Project를 Dynamic Web Project로 변경하기 위해서는 Properties에서

Project Facets을 설정하면 된다.

댓글