▶ 서블릿
- 서버에서 웹페이지 등을 동적으로 생성하거나 데이터 처리를 수행하기 위해 Java로 작정된 프로그램
- Java 코드안에 HTML태그가 삽입됨, 확장자가 .java
▶ 서블릿 작성하기
(1) File → New → Dynamic Web Project
(2) 1. 프로젝트 이름 설정 → 2. 실행환경 설정(자신이 설치한 WAS버전 설정) → 3. Finish
▶ 프로젝트 구조
- Java Resources > src/main/java 경로에 서블릿 파일를 작성해야함
- 프로젝트의 홈 디렉터리(root)는 webapp이며, 여기에 JSP나 HTML 파일을 작성해야함
- 배포 서술자(web.xml) :웹 애플케이션의 환경설정 정보를 담은 파일. WAS가 처음 구동될 때 이 파일을 읽어 설정 내용을 톰캣에 적용
(3) Java Resources > src/main/java 경로에 서블릿 파일 작성 (Class 파일 생성: New → Class)
(4) 1. 패키지 설정 → 2. 서블릿 이름 설정 → 3. Finish
(5) 다음 서블릿 코드 작성
▶ 서블릿 코드 구조
● 특징
- 기능별로 서블릿(코드)가 작성됨 ex)HelloServlet을 요청하면 HelloServlet서블릿만 실행되고, list라는 서블릿을 요청하면 list서블릿만 실행됨
- 자바에 main()에 코드를 작성하는 것과 달리 service()에서 코드 작성함
- class명은 중요하지않고, 약속된 인터페이스나 추상클래스를 사용해야함 ex) 다음 코드에서 extends HttpServlet로 추상클래스를 상속받음
- 추상클래스에 정해져있는 servic()함수를 구현(오버라이딩)하여 실행함
● 서블릿 코드 구조
▶ 서블릿 요청방식
- 웹 브라우저(클라이언트)는 url을 통해 서블릿 페이지를 요청
- url을 통해 요청할 때 다음그림과 같이 "/web-inf/classes/HelloServlet.class", web-inf 폴더안은 사용자에 의해 요청되면 안됨(웹 브라우저가 직접 서블릿 코드를 요청하면 안됨)
- web-inf안에 파일들, 즉 서블릿 파일들은 특별한 방법으로 웹 브라우저(클라이언트)가 요청해야함
▷ url과 서블릿 매핑
- 웹 브라우저가 "/hello"라는 url을 요청하면, "/hello"라는 url이 요청 왔을때 실행되는 서블릿 코드를 매핑 시킴
- WAS는 url과 매핑된 서블릿 코드를 찾아서 실행
- "/web-inf/classes/HelloServlet.class"와 같이 web-inf 내부의 파일들의 경로와 서블릿 이름이 노출되는 것과 달리 매핑하여 url을 요청하면 web-inf 내부 정보들을 비공개로 하고 웹 브라우저가 직접 요청하지 못하게 함
▷ web.xml에서 url과 서블릿 매핑 (배포 서술자파일 설정)
- 배포 서술자란 웹 애플케이션의 환경설정 정보를 담은 파일
- web.xml파일에서 url과 서블릿 매핑 설정
(6) web.xml 파일위치: src > main > webapp > WEB-INF > web.xml
(만약 web.xml 파일이 보이지 않는다면 프로젝트(HelloServlet) 우클릭 → Java EE Tools → Generate Deployment Descriptor stub)
(7) 만약 Design으로 되어있다면 Source 클릭 후 다음 매핑코드 작성
→ "mapping1"이라는 이름으로 서블릿 코드와 url 매핑
→ /hello라는 url이 요청오면 HelloServlet 서블릿을 실행시킴
(8) 메뉴에서 [Run] → [Run As] → [Run on Server] (단축기 Ctrl + F11)
(9) 실행결과
'[JSP, 서블릿]' 카테고리의 다른 글
[JSP] GET요청과 POST 요청 (0) | 2023.01.13 |
---|---|
[JSP] 서블릿 매핑 (0) | 2023.01.12 |
[JSP] 지시어, 스크립트요소, 내장객체 (0) | 2023.01.10 |
[JSP] JSP 작성하기 (0) | 2023.01.09 |
[JSP] 서블릿,JSP 개요 (0) | 2023.01.08 |
댓글