Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
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
Tags more
Archives
Today
Total
관리 메뉴

David의 블로그

[JSP/Servlet]Servlet 클래스 구현방법, Servlet과 URL 요청 매핑 방법 본문

프로그래밍/Jsp_Servlet

[JSP/Servlet]Servlet 클래스 구현방법, Servlet과 URL 요청 매핑 방법

David 리 2023. 11. 5. 15:14

다양한 웹 프레임워크 출현으로 Servlet 을 직접 개발해야 하는 경우는 흔치 않다고 하지만,

웹 개발자라면 서블릿이 무엇이고 Servlet의 동작 방식을 이해하는 것은 필수라고 생각했다.

나 역시 정확한 사용방법 모르면서 느낌으로만 코딩을 했었다.

이 참에 직접 구현하고 정리하면서 많이 알게된 것 같다.

 

프로젝트는 eclipse로 Dynamic web project로 구현했다.

프로젝트 구성은 다음과 같고

context root는 servlet_practice로 설정했다.

 

 

[Servlet 클래스 구현]

Servlet 클래스를 구현하기 위해서 HttpServlet 클래스를 상속받아야 한다.

상속받았다면, 처리하고자 하는 HTTP 방식에 따른 알맞은 메소드를 정의한다.

나는 doGet()로 정의했다.

 

doGet() 메소드는 HttpServletRequest, HttpServletResponse 두 파라미터를 갖는데,

이는 JSP의 Reqeust, Response 기본객체에 해당한다고 볼 수 있다.

 

그리고 JSP대신에 PrintWriter의 out을 이용하여

HTML 뷰로 구성했다.

 

 

[Servlet URL 매핑]

Servlet 클래스를 만들었다면, 이제 [프로젝트]/webapps/WEB-INF안에 있는 web.xml에 설정을 한다.

<servlet> 태그는 만들어놓은 servlet 클래스를 등록하는 역할을 한다.

이 태그안에 <servlet-name>과 <servlet-class>를 작성하는데

<servlet-name>은 servlet을 참조할 때 쓸 이름

<servlet-class>는 servlet으로 사용할 클래스의 완전한 이름을 지정합니다.

 

<servlet-class>는 프로젝트 패키지 경로로 지정해주면 되는 것 같다. (/) X -> (.) O

 

<servlet-mapping> 태그는 servlet이 어떤 URL을 처리할지에 대한 매핑 정보를 등록하는 역할을 한다.

<servlet-name>은 위에서 servlet을 참조할 때 쓸 servlet 이름이고

<url-pattern>은 매핑할 URL 패턴을 지정한다.

 

<url-pattern>은 1개 이상 등록이 가능하다고 한다.

 

 

 

톰캣을 실행해보면

http://서버:포트/[context root]/servlet으로 접근하면 위와 같은 화면이 뜬다.