Web Application Structure(웹 서비스 기본 설정 구조)
1. src
- 개발자가 작성한 Servlet 코드가 저장된다.
2. Libraries
- Servlet이나 JSP에서 추가로 사용하는 라이브러리 또는 드라이버
- jar로 압축한 파일
3. Web Content
- Deploy할 때 Web Content 디렉터리 전체가 .war로 묶어서 보내진다.
- WEB-INF
- lib
- 추가한 모든 라이브러리 또는 드라이버가 이곳에 모두 저장된다.
- classes
- 작성한 Java Servlet 파일이 나중에 .class로 이곳에 모두 저장된다.
- web.xml
- SUN에서 정해놓은 규칙에 맞게 작성해야 하며 모든 WAS에 대하여 작성 방법이 동일하다.
- .html 파일들
- 관련된 HTML 소스를 저장한다.
- Ex. WebContent > views Directory -> index.html은
http://localhost/helloLogin/views/index.html와 매핑된다
- Ex. WebContent > views Directory -> index.html은
- 관련된 HTML 소스를 저장한다.
- lib
web.xml 기본설정
개념
- web application의 설정을 위한 deployment descriptor
역할
- Deploy할 때 Servlet의 정보를 설정해준다.
- 브라우저가 Java Servlet에 접근하기 위해서 WAS(Ex. Tomcat)에 필요한 정보를 알려줘야 해당하는 Servlet을 호출할 수 있다.
- 정보 1) 배포할 Servlet이 무엇인지?
- 정보 2) 해당 Servlet이 어떤 URL에 매핑되는지
예시
<web-app>
<!-- 1. aliases 설정 -->
<servlet>
<servlet-name>welcome</servlet-name>
<servlet-class>servlets.WelcomeServlet</servlet-class>
</servlet>
<!-- 2. 매핑 -->
<servlet-mapping>
<servlet-name>welcome</servlet-name>
<url-pattern>/welcome</url-pattern>
</servlet-mapping>
</web-app>
1. aliases 설정
- 서블릿 이름을 실제 서블릿 클래스에 연결
- <servlet-name>welcome</servlet-name>과 아래 매핑 설정에서의 servlet-name은 반드시 같아야 한다.
- <servlet-class>servlets.WelcomeServlet</servlet-class>은 개발자에 의해 작성된 실제 클래스 이름으로 설정해야 한다.
- Ex. (패키지 이름).(서블릿 클래스 이름)
2. 매핑
- URL을 서블릿 이름에 연결
- <url-pattern>/welcome</url-parttern>은 클라이언트(browser)의 요청 URL에서 앱(프로젝트)이름 뒤에 오는 부분으로, 슬래시('/')로 시작해야 한다.
※ 참고 클라이언트(browser)가 요청하는 URL정보
- 요청을 보낼 서버의 IP 주소 : Port 번호 / App 이름 / 달라고 요청하는 HTML
- Ex. http://localhost:8080/FormHandlingServlet/LoginForm.html
spring MVC에서의 web.xml 구체적인 설정 내용
- DispatcherServlet
- ContextLoaderListener
- encodingFilter
DispatcherServlet
- Spring Container를 생성한다.
- Spring Container : Controller의 life Cycle 관리
- 클라이언트의 요청을 처음으로 받는 클래스(Spring에서 제공)
- 클라이언트의 요청을 Handler(Controller)에 보낸다.
- 그 외에 필요한 것
- HandlerMapping
- 어떤 url을 받을지 결정
- ViewResolver
- logical view name - prefix, suffix -> pysical view object
- HandlerMapping
- 각 기능의 요청별로 DispatcherServlet을 할당한다.
- 아래와 같은 설정을 각 기능에 맞게 추가한다.
<servlet>
<servlet-name>salesServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- contextLoader가 해당 위치의 설정 파일을 읽어, 해당 파일을 dispatcher servlet으로 만든다. -->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/salesServlet-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- /sales로 시작하는 url 요청을 받아 salesServlet에서 처리한다. -->
<servlet-mapping>
<servlet-name>salesServlet</servlet-name>
<url-pattern>/sales</url-pattern>
</servlet-mapping>
출처
gmlwjd9405.github.io/2018/10/29/web-application-structure.html
[Web] web.xml 설정 내용, 역할 및 간단한 예시 이해하기 - Heee's Development Blog
Step by step goes a long way.
gmlwjd9405.github.io
'Web > 기초' 카테고리의 다른 글
[WEB기초] Spring 생성자 주입을 써야하는 이유 (0) | 2021.08.03 |
---|---|
[WEB기초] DI(Dependency Injection) - 의존성 주입 (0) | 2021.01.18 |
[WEB기초] Servlet이란 (0) | 2021.01.10 |
[WEB기초] 로드 밸런서(Load Balancer) (0) | 2020.12.27 |
[WEB기초] 소켓, 서킷, 패킷, TCP/IP 통신 (0) | 2020.12.13 |