doGet(), doPost()와 같은 메서드를 사용web.xml 파일에서 서블릿을 설정<servlet> 태그로 서블릿을 선언하고, <servlet-mapping> 태그로 URL 패턴을 지정하여 클라이언트의 요청을 해당 서블릿으로 전달/hello.do로 요청을 보내면 Hello 서블릿이 실행<servlet>
<servlet-name>Hello</servlet-name>
<servlet-class>servlet.Hello</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Hello</servlet-name>
<url-pattern>/hello.do</url-pattern>
</servlet-mapping>
HttpServlet 클래스를 상속받아 서블릿을 구현합니다.
doGet() 메서드에서는 클라이언트에게 HTML 콘텐츠를 응답으로 보내는 역할
doPost() 메서드는 POST 방식의 요청을 처리하며, 여기서는 예시로만 구현
init(): 서블릿이 생성될 때 한 번 실행
destroy(): 서블릿이 종료될 때 실행
결과 :
Hello init... // 최초 실행 시 초기화 Hello doGet...
package servlet;
import java.io.IOException;
import java.io.PrintWriter;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
public class Hello extends HttpServlet {
private static final long serialVersionUID = 1L;
@Override
public void init() throws ServletException {
// 서블릿을 초기화(최초 실행)
System.out.println("Hello init...");
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// 클라이언트 요청이 GET방식일 때
System.out.println("Hello doGet...");
// HTML 출력
resp.setContentType("text/html;charset=UTF-8");
PrintWriter writer = resp.getWriter();
writer.println("<html>");
writer.println("<head>");
writer.println("<meta charset='UTF-8'>");
writer.println("<title>Hello</title>");
writer.println("</head>");
writer.println("<body>");
writer.println("<h3>Hello Servlet</h3>");
writer.println("<a href='/ch09/hello.do'>Hello</a>");
writer.println("<a href='/ch09/welcome.do'>Welcome</a>");
writer.println("<a href='/ch09/greeting.do'>Greeting</a>");
writer.println("</body>");
writer.println("</html>");
writer.close();
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// 클라이언트 요청이 POST방식일 때
System.out.println("Hello doPost...");
}
@Override
public void destroy() {
// 서블릿이 종료될 때(WAS가 중지될 때)
System.out.println("Hello destroy...");
}
}