강의 소개
현재 수강하고 있는 멀티캠퍼스 k-digital 지능형 웹서비스 풀 스택 과정을 수강하며 적은 내용입니다.
교재로는 자바 웹을 다루는 기술을 사용하고 있습니다.
서블릿 클래스 작성법
서블릿 매핑하기
방법 1. @WebServlet사용(어노테이션)
@WebServlet("/url매핑부분")
class A extends HttpServlet {
doGet(){실행내용}
}
자바 소스 내 직접 작성해서 단순하다. 하지만 전체 서블릿 매핑 이름 구조를 파악하기는 어렵다.
@WebServlet() 안에 들어가는 부분이 url 매핑되는 부분이다.
이 서블릿 클래스는 서버를 실행한 뒤 아래 주소를 브라우저에 입력하면 호출된다.
http://ip:port/DynamicWebProject폴더명/url매핑부분
방법 2. Web.xml에 서블릿 정의
<!-- 1. aliases 설정 -->
<servlet>
<servlet-name>아래 servlet-name과 같은 이름</servlet-name>
<servlet-class>패키지명.서블릿클래스명</servlet-class>
</servlet>
<!-- 2. 매핑 -->
<servlet-mapping>
<servlet-name>위의 servlet-name과 같은 이름</servlet-name>
<url-pattern>/url매핑</url-pattern>
</servlet-mapping>
서블릿 3 버전 이전까지 사용되었던 방법이다. 전체적으로 서블릿 매핑 구조를 알 수 있다.
WEB-INF 폴더 내 Web.xml 파일에 위와 같은 형식으로 내용을 추가한다.
유의해야 할 점은 url-pattern의 값은 /hello 등과 같이 같이 반드시 /가 있어야 한다는 점이다.
위의 어노테이션 방식과 마찬가지로 아래와 같이 호출된다. 설정 방법만 다를 뿐 같은 작업을 해준 것이다.
http://ip:port/DynamicWebProject폴더명/url매핑부분
서블릿 클래스 구현 시 상속받아야 하는 클래스
일반. java파일에서 상속을 통해 서블릿 클래스를 만들 수 있다.
이 3개의 클래스, 인터페이스는 상속관계이며 아래 사진과 같다.
방법 1. HttpServlet 클래스를 상속받기
@WebServlet("/url매핑부분")
class A extends HttpServlet {
doGet(){실행내용}
}
HttpServlet은 http방식의 2가지 중 get방식, post방식 중 선택 가능하다.
get방식일 경우 doGet(), post방식일 경우 doPost() 메서드를 각각 오버 라이딩하면 된다.
get, post 모두 가능하여 이 클래스를 상속받는 것이 가장 선호되는 서블릿 구현 방식이다.
서블릿이 반드시 상속받아야 할 Httpservlet은 톰캣 라이브러리다. 따라서 java압축파일인. jar로 묶여있다.
- doGet() / doPost() 메서드: 실행 결과를 브라우저에 전송하는 메서드이다.
HttpServlet클래스를 상속받으면 doGet메서드 혹은 doPost 둘 중 하나 이상을 반드시 오버 라이딩해야 한다. (둘 다 오버 라이딩하는 것도 가능하다.)
ex. 만약 /login 요청 시 @WebServlet("/login")을 만나면 해당 클래스인 class A를 실행하게 된다. 그럼 A내부의 doGet메서드가 실행하려는 내용이 웹브라우저에서 실행되어 출력된다.
방법 2. GenericServlet 클래스를 상속받기
@WebServlet("/url매핑부분")
class A extends GenericServlet {
service(){실행내용}
}
service만 오버 라이딩해야 한다. get, post 방식 구분을 하지 못한다.
방법 3. Servlet인터페이스를 상속받기
class A implements Servlet {
오버라이딩해야 할 메서드 5개}
오버 라이딩해야 하는 메서드가 5개이기 때문에 번거로워 잘 사용되지 않는다.
이 인터페이스의 내부에는 서블릿의 생명주기와 관련된 메서드인 init(), destroy(), service() 등이 있다.
'교육, 학습 > 멀티캠퍼스_풀 스택' 카테고리의 다른 글
Servlet - 3가지 기본 기능, 요청과 응답 (0) | 2022.03.10 |
---|---|
Servlet - 생명주기 메서드(init, doGet, destroy), 실행흐름 (1) | 2022.03.09 |
Servlet - 개념, 역할, 동작과정 (0) | 2022.03.08 |
Servlet - 웹 애플리케이션 이해, dynamic web project 구조 (0) | 2022.03.07 |
Servlet - 웹 프로그래밍 개발 기초 (0) | 2022.03.07 |
댓글