c23 [JSP] 서블릿 작성하기
본문 바로가기
[JSP, 서블릿]

[JSP] 서블릿 작성하기

by Jarvis2304 2023. 1. 11.

 

 



▶ 서블릿 

- 서버에서 웹페이지 등을 동적으로 생성하거나 데이터 처리를 수행하기 위해 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

댓글