Everything has an expiration date
13 [Servlet(서블릿)] 본문
■■■ Servlet(서블릿) ■■■
0. 웹 어플리케이션을 구축하기 위한 웹 프로그램을 구성하는 언어의 한 종류.
(JAVA 기반)
1. JSP 에서 정적인 부분을 담당하고, Servlet 에서는 동적인 처리를 위한
부분으로 사용되어 보다 효율적인 웹 어플리케이션을 구축할 수 있다.
- JSP → 단점. MVC 패턴을 적용하기 힘들다.
- Servlet → 단점. 웹 페이지(view) 작성이 번거롭고 복잡하다. (불편)
- Servlet + JSP → MVC 패턴 적용 및 웹 페이지(view)를 보다 편리하게 작성.
단점. 구조가 복잡해지게 된다.
2. JSP 는 내부적으로 Web Container 가 Servlet 으로 변경시켜준다.
****************************************************************************************
WEB-INF 는 클라이언트가 접근 불가능한 공간이기 때문에
여기 안에 jsp 페이지를 작성시키면 404 에러(클라이언트 에러)가 발생한다.
우리에게 허락을 받으면, 그 페이지로 이동하게끔하는 처리를 해 주어야 한다.
이윤수씨의 멱살을 잡고 끌고 나가는 방식이 아니라 (WebContent에 jsp 모두 작성)
나한테 허락을 받아야만 접근을 할 수 있게끔... (WEB-INF에 구성하고 허락받아야만 동작.)
****************************************************************************************
3. WEB-INF 는 환경 설정 파일이 저장되는 곳
(→ 외부에서는 접근 불가 / 금지) check~!!!
- lib : 라이브러리 파일을 저장(ojdbc6.jar, jstl.jar 등)
- J2EE (엔터프라이즈급 - 외부 pc 모두)
- J2SE (스탠다드급 - 단일 본인 pc)
- classes : class 파일이 저장(servlet)
- 『classes > com > util > MyUtil.class』
원래는 이렇게 만들어야 하지만 이클립스가 자동으로 연결
실제 위치는
『C:\WebStudy\.metadata\.plugins\org.eclipse.wst.server.core
\tmp0\work\Catalina\localhost\WebApp20\org\apache\jsp』
* .jar : java
* .war : web(프로젝트 아래 모든 것을 압축할 때)
* .ear : jar + war
web.xml : context path 의 환경 설정 (배치 기술서이다.)
4. 『init()』과 『destroy()』 는 단 한 번 호출되며
『service()』는 클라이언트의 요청이 있을 때마다 호출된다.
이제는 JSP 를 『service()』 메소드 내부에 코딩하는 것과 같다.
5. 『GenericServlet』 이나 『HttpServlet』 을 활용한다.
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄★
1. Servlet : 인터페이스 구현
2. GenericServlet : service() 메소드 구현
3. HttpServlet : toGet() toPost() 메소드 구현
6. URL 패턴을 지정하는 방법은 크게 3가지이다.
- 『/a』
- 『/*』
- 『.do』
7. web.xml 을 수정하면 서버를 꼭 재구동한 이후에 실행해야 한다.
(재구동해야만 변경사항이 반영된다.)
8. 지금까지는
JSP(입력) → JSP(처리, 결과) 였으나
JSP 와 함께 Servlet을 다루게 된 이후에는
JSP(입력) → Servlet(결과를 위한 처리) → JSP(결과) 방식으로 구성된다.
★ 이제는, 클라이언트와 만나지 않는 부분은 Servlet으로 구성할 것이다~!!!
'[WebStudy] Concept' 카테고리의 다른 글
15 [DBCP(DataBase Connection Pool)] (0) | 2023.12.28 |
---|---|
14 [EL과 JSTL] (0) | 2023.12.28 |
12 [JSP 액션 태그] (1) | 2023.12.18 |
11 [Emmet(에밋)] (0) | 2023.12.15 |
10 [쿠키와 세션] (0) | 2023.12.15 |