1> 서블릿 (Servlet) : 웹서버에서 동작하는 서비스 페이지로 웹브라우저에서 클라이언트 요청에 따라 서버가 실행하는 자바 프로그램
- 서블릿 파일은 웹서버 內 위치
- 웹서버가 설치된 컴퓨터 주소 (도메인)
https://test.com:80/test/123.jsp
80 : 포트번호로 컴퓨터 도착 이후 해당 서비스를 처리하는 서버를 찾기위한 정보입니다.
test : 컴퓨터와 서버까지 찾은 다음에는 해당 어플리케이션에 요청합니다.
123.jsp : 클라이언트가 요청한 최종 문서입니다.
2> web.xml 파일
- 웹 어플리케이션 서비스 처리에 대한 정의된 환경설정 파일
- 웹서버 구동 시 web.xml 파일 읽기
- 이클립스에서 아파치 톰캣 서버를 생성하게 되면 아래와 같이 서버 디렉토리의 web.xml 파일을 확인 할 수 있습니다.
- 소스 상에서 webapp/WEB-INF 경로에 보통 web.xml 파일이 위치해있습니다.
3> 서블릿 디렉토리
- 서블릿 프로그램 실행 관련 클래스 파일이 있는 디렉토리
- 서블릿 디렉토리 경로 : /WEB-INF/classes
4> 서블릿 클래스 계층 구조
Servlet (Interface) – GenericServlet - HttpServlet
1. Servlet 인터페이스 : 서블릿 프로그램 메소드 구현 (생명주기)
Init(), service(), destroy(), getServletConfig(), getServletInfo()
2. GenericServlet 클래스 : Servlet 인터페이스 상속하여 C-S 환경에서 필요한 기능 구현한 추상클래스
3. HttpServlet 클래스 : GenericServlet 클래스 상속하여 Http 프로토콜 동작을 수행하도록 구현한 클래스
Http 프로토콜 기반으로 브라우저 요청을 전달받아 처리하는 역할
EX) public class TestServlet extends HttpServlet {
// Http 프로토콜 서비스 처리를 위해 HttpServlet 클래스 상속 필요
}
5> 서블릿 처리 Process
Client(요청) -> Web Server -> Servlet 컨테이너 -> 요청 -> 메모리 로딩 -> 객체 생성 -> init() -> service()
1. 서블릿 객체 생성 : 클라이언트에서 웹브라우저 통해 요청을 하면 웹서버는 요청 정보의 헤더에서 URI 분석
2. 요청 페이지가 서블릿이면 서블릿 컨테이너로 전달
3. 서블릿 컨테이너는 서블릿 실행 (WEB-INF/classes, WEB-INF/lib)
- Init() : 초기화 작업 메소드 (처음 서블릿 요청 때만 수행)
- Service() : 서블릿 처리 작업 메소드
- Destroy() : 메모리 자원 해제 작업 메소드 (서버 중지로 인한 서비스 중지 시 서블릿 객체 삭제)
6> web.xml 내 서블릿 선언
- 웹서버에 서블릿 등록
<servlet> // HttpServlet 상속받고 있는 클래스 web.xml 등록할 때 사용
<servlet-name> 서블릿 명 </servlet-name>
<servlet-class> 실제 서블릿 클래스명 </servlet-class> // web 서버가 서블릿을 찾아가는 정보
</servlet>
- 서블릿 요청 시 실행할 URI 지정
<servlet-mapping>
<servlet-name> 서블릿 명 </servlet-name>
<url-pattern>/test/*</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>5</session-timeout>
</session-config>
7> 어노테이션 (Annotation) : 주석문과 같이 소스의 @ 기호로 사용되어 컴파일러 정보를 알려주고 내용 설정하는 기능
@Override : 해당 어노테이션이 선언된 메소드는 상속받은 메소드를 재정의하는 기능
@SuppressWarning : 해당 어노테이션이 선언된 메소드는 컴파일러 경고를 무시하는 기능
아래는 웹 기본적인 개념 참고하시기 바랍니다!!
[웹 프로그래밍 개념] 웹 Web 이란? (서블릿, JSP, 컨테이너, HTTP)
감사합니다.!!!
'IT ▶ > Java & Web' 카테고리의 다른 글
Java API 클래스 종류와 패딩(padding) 개념 (0) | 2020.07.21 |
---|---|
Servlet 관련 HTML 입력 태그 (Form, 체크박스, 라디오박스 등) (0) | 2020.07.15 |
HTML 숫자기호 ① , < > 괄호 코드 추가하기 (0) | 2020.05.27 |
CSS, HTML Text 글씨 크기, 색깔, align 정렬 방법 (0) | 2020.04.24 |
CSS 파일에서 class, id, div 태그, link 태그 사용 방법 (0) | 2020.04.20 |