티스토리 뷰
02. 서블릿의 기초
서블릿
서블릿 기술에서 웹 애플리케이션 구현을 위해서 작성해야 하는 코드는 '서블릿 클래스'이다.
이 서블릿 클래스를 가지고 웹 서비스를 할 수 있는 상태(=서블릿)로 만들어야 한다.
서블릿 클래스를 가지고 객체를 만든 후(인스턴스화) 그 객체를 초기화 한 서블릿 객체만이 웹서비스를 할 수 있다.
인스턴스화 : 클래스를 가지고 객체를 만드는 행위
웹서버가 서블릿을 운영하는 방법
1. 여러 서블릿의 동시 실행
- 웹서버는 멀티스레드 방식으로 작동한다 → 동시에 같은 데이터 사용 가능
멀티 스레드 : 프로그램의 실행 흐름이 여러갈래(thread)로 나눠져서 동시에 실행되는 것
2. 웹 컨테이너가 만드는 서블릿의 갯수
- 한개(멀티-스레드 모델) 또는 여러개(싱글-스레드 모델)
- 멀티-스레드 모델을 사용 → 단점을 해결 가능하기 때문이다
멀티-스레드 모델
- 장점 : 서블릿을 만들기 위해 필요한 시스템 자원, 서블릿의 메모리 절약 가능
- 단점 : 데이터 공유문제 → 서블릿 클래스의 인스턴스 변수로 인한것 → 인스턴스 변수를 선언하지 않음으로 해결
인스턴스 변수 : static 이 아닌 클래스의 멤버변수
서블릿 클래스 등록
웹 애플리케이션의 디플로이먼트 스크립터 파일(web.xml)에 서블릿 클래스를 등록
web.xml → 웹 애플리케이션 디렉토리마다 1개씩만 만들 수 있다(=한개만 존재)
web.xml 파일 만들기
1. 루트 엘리먼트인 <web-app>을 만든다
1 2 3 | <web-app> </web-app> | cs |
2. 웹서버가 브라우저로부터 URL을 받았을 때 서블릿 클래스를 찾아 호출하기 위해 필요한 정보를 기록해야 한다.
필요한 정보 : URL과 서블릿 클래스의 이름
<servlet>과 <servlet-mapping> 엘리먼트를 만든다.
1 2 3 4 5 6 7 8 | <web-app> <servlet> <!-- 서블릿 클래스의 이름이 들어갈 부분--> </servlet> <servlet-mapping> <!-- 서블릿 클래스를 호출할 때 사용할 URL이 들어갈 부분 --> </servlet-mapping> </web-app> | cs |
<servlet-mapping> 엘리먼트 안에 들어갈 URL 주소는 웹서버의 도메인 이름, 포트번호, 웹 애플리케이션 디렉터리의 이름을 제외한 나머지 부분이 들어가야한다. 서블릿의 URL 패턴 이라고 하는데, URL이 http://localhost:8080/brain/hundred 라면 /hundred가 된다.
클래스 이름과 URL패턴을 넣을때 <servlet>과 <servlet-mapping> 엘리먼트에 그냥 넣으면 안되고 <servlet-class> 와 <url-pattern> 이라는 서브엘리먼트를 만들어 넣어야 한다.
1 2 3 4 5 6 7 8 9 10 11 | <web-app> <servlet> <!-- 서블릿 클래스의 이름이 들어갈 부분--> <servlet-class>HundredServlet</servlet-class> </servlet> <servlet-mapping> <!-- 서블릿 클래스를 호출할 때 사용할 URL이 들어갈 부분 --> <url-pattern>/hundred</url-pattern> </servlet-mapping> </web-app> | cs |
3. web.xml 파일에는 하나의 엘리먼트만 있는것이 아니기 때문에 이렇게 선언한 엘리먼트가 서로를 찾을 수 있도록 연결시켜야 하는데,
<servlet> 엘리먼트 안에 서블릿의 식별자로 사용할 이름을 쓰고, <servlet-mapping>엘리먼트에서 그 이름을 이용하여 참조하도록 한다.
<servlet-name>이라는 엘리먼트를 만들어 사용할 이름을 넣으면 된다.
1 2 3 4 5 6 7 8 9 10 11 12 13 | <web-app> <servlet> <!-- 서블릿 클래스의 이름이 들어갈 부분--> <servlet-name>hundred-servlet</servlet-name> <servlet-class>HundredServlet</servlet-class> </servlet> <servlet-mapping> <!-- 서블릿 클래스를 호출할 때 사용할 URL이 들어갈 부분 --> <servlet-name>hundred-servlet</servlet-name> <url-pattern>/hundred</url-pattern> </servlet-mapping> </web-app> | cs |
여기까지가 서블릿 클래스의 등록에 필요한 기본적인 코드이다.
온전한 web.xml 파일이 되려면 반드시 써넣어야 하는 두가지 정보가 필요한데, web.xml 파일의 작성에 사용된 문법의 식별자와, 문법의 버전이다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <web-app xmlns="http://java.sun.com/xml/ns/javaee" version="2.5"> <!-- 문법의 식별자와 버전 --> <servlet> <!-- 서블릿 클래스의 이름이 들어갈 부분--> <servlet-name>hundred-servlet</servlet-name> <servlet-class>HundredServlet</servlet-class> </servlet> <servlet-mapping> <!-- 서블릿 클래스를 호출할 때 사용할 URL이 들어갈 부분 --> <servlet-name>hundred-servlet</servlet-name> <url-pattern>/hundred</url-pattern> </servlet-mapping> </web-app> | cs |
'공부와개발사이 > JSP와Servlet' 카테고리의 다른 글
03. JSP의 기초_1 (0) | 2016.12.02 |
---|---|
01. JSP와 서블릿 (0) | 2016.11.29 |
- Total
- Today
- Yesterday
- servlet
- jsp 기초 개념
- selectbox에 값 매핑
- servlet게시판
- 체크박스
- 스크립팅 요소
- 제이쿼리
- 체크박스전체선택
- java
- jsp
- Split
- Hyper-V
- 게시판페이지설계
- input[type=text]초기화
- input[type=file]초기화
- 자바
- SQL
- c 태그
- 게시판table설계
- windows hyper-v
- spring
- windows 8.1
- 체크박스전체해제
- 자바스크립트
- Javascript
- 스프링
- String[] 파라미터
- 이클립스DB연결
- 윈도우8.1
- foreach 배열
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |