신입SW인력을 위한 실전 JSP Servlet - 4강 Servlet 맛보기

3강 정리

  • JSP : html문서 안에 JSP코드를 넣고 확장자를 .jsp라고 한다. 그 JSP가 웹에서 동적으로 작동한다. 응답할 때는 html로 해준다.
  • jsp파일 -> java파일 -> class파일 (서버에서 로직수행)

4-1. Servlet 문서 작성하기

1. Servlet 특징

  • 동적 웹 어플리케이션 컴포넌트
  • .java 확장자
  • 클라이언트의 요청에 의해 동적으로 작동하고 응답은 html을 이용
  • java thread 이용하여 동작 -> servlet을 사용하는 가장 큰 장점 : 요청이 많이 들어와도 서버의 부하가 적게 걸린다.
  • MVC패턴에서 Controller로 이용

2. JPS와 Servlet 비교

JSP 특징 Servlet 특징
동적 웹 어플리케이션 컴포넌트  
클라이언트의 요청에 동적으로 작동하고, 응답은 html을 이용한다.  
.jsp 확장자 .java 확장자
jsp는 servlet으로 변환되어 실행 java thread를 이용하여 동작
MVC 패턴에서 View MVC 패턴에서 Controller


3. MVC패턴

3강에서 본 MVC패턴과 동일하나 JSP는 View이며, Servlet은 Controller이다.
MVC패턴 3강에도 설명했지만 다시 한번 설명하자면 클라이언트가 어떤 작업을 Controller에게 요청하면 그 작업을 판단하고 수행할 수 있는 Model에 지시를 내린다. 로직 수행을 하다가 DB가 필요하면 DB에 접속하여 작업을 수행한다. 작업 수행이 끝났으면 결과물을 Controller에게 전달하고 Controller는 View에게 전달한다. View는 웹 형태로 만들어서 클라이언트에게 응답한다.

4. Servlet 문서 작성하기

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
32
33
34
35
36
37
38
39
40
41
package com.javalex.ex;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class HelloWorld
 */
@WebServlet("/HWorld")
public class HelloWorld extends HttpServlet {
	private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#HttpServlet()
     */
    public HelloWorld() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		System.out.println("HelloWorld~~!");
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

실행결과 실행결과 결과값이 브라우저가 아닌 콘솔창에 보여준다.

4-2. web.xml에 Servlet 맵핑

주소가 너무 길고 보안에 노출되어 있는 경로를 간단하게 맵핑하는 것이다. 맵핑하는 방법은 두가지가 있다. servlet맵핑

1. web.xml에 서블릿 맵핑

실행결과 실행결과

2. 어노테이션을 이용한 서블릿 맵핑

실행결과 실행결과

4-3. 마무리

  • JSP는 html코드 안에 넣고 Servlet은 java파일이므로 클래스의 속성인 슈퍼클래스를 가질 수 있다. 확장자는 .java이다.
  • Servlet은 반드시 맵핑하여 사용해야한다. 1) web.xml에 서블릿 맵핑 2) 어노테이션을 이용한 서블릿 맵핑

출처
Seoul Wiz, 신입SW인력을 위한 실전 JSP Servlet 동영상과정, https://www.youtube.com/watch?v=APJAJeePl4g&list=PLYBmkgNU_x7Zj0nCzt5D0qV33C_rU1NK2