02
18
728x90

온랑니 쇼핑몰 같은 경우 대부분 상품 조회, 주문, 회원 관리 등 여러 기능으로 이루어져 있다. 만약 이런 기능을 하나의 서블릿으로 만들어서 제공한다면 소스가 복잡해져 관리가 힘들어질 것이다. 따라서 각 기능에 대한 서블릿을 따로 만들어서 제공하게 된다.


1. 패키지 선택 마우스 오른쪽 클릭 -> New -> Class

2. 클래스 이름 작성 후 Finish

3. 아래와 같이 클래스가 생성된 것을 확인 가능

4. SecondServlet.java 클래스를 열어서 아래와 같이 코드 작성

package sec01.ex01;

import java.io.IOException;

import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

public class SecondServlet extends HttpServlet {
	@Override
	public void init() throws ServletException
	{
		System.out.println("init 메서드 호출>>>>");
	}
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
	throws ServletException, IOException
	{
		System.out.println("doGet 메서드 호출>>>>");
	}
	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp)
	throws ServletException, IOException
	{
		System.out.println("doPost 메서드 호출>>>>");
	}
	@Override
	public void destroy()
	{
		System.out.println("destroy 메서드 호출>>>>");
	}
}
5. web.xml 파일을 열어서 아래와 같이 코드 작성 (매핑)

여러개의 서블릿을 매핑할 때는 <servlet> 태그와 <servlet-mapping> 태그를 각각 분리하여 작성해야 함에 유의하자.

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="https://jakarta.ee/xml/ns/jakartaee" xmlns:web="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_5_0.xsd http://xmlns.jcp.org/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="5.0">
  <servlet>
	<servlet-name>aaa</servlet-name>
	<servlet-class>sec01.ex01.FirstServlet</servlet-class>
  </servlet>
    <servlet>
	<servlet-name>bbb</servlet-name>
	<servlet-class>sec01.ex01.SecondServlet</servlet-class>
  </servlet>
  
  <servlet-mapping>
  	<servlet-name>aaa</servlet-name>
  	<url-pattern>/first</url-pattern>
  </servlet-mapping>
    <servlet-mapping>
  	<servlet-name>bbb</servlet-name>
  	<url-pattern>/second</url-pattern>
  </servlet-mapping>
</web-app>
6. 서버 작동

7. 웹 홈페이지 주소창에 ip주소:포트번호/프로젝트이름/매핑한이름 작성 후 검색

8. 아래와 같이 콘솔창에 각 메서드가 호출되어 메시지를 출력하는 모습 확인이 가능하다.

728x90
COMMENT