스프링 MVC 동작 원리(3) : 서블릿 애플리케이션 개발

de_sj_awa·2021년 6월 26일
0

3. 서블릿 애플리케이션 개발

준비물: 메이븐, 톰캣

  1. 메이븐 프로젝트 생성 archtype에서 webapp 선택

  1. pom.xml에 servlet dependency 추가
<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>4.0.1</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>5.2.3.RELEASE</version>
    </dependency>
  </dependencies>
  1. Project Structure에서 java 디렉토리를 Sources로 지정

  1. HelloServlet 클래스 생성
public class HelloServlet 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");
        resp.getWriter().println("<html>");
        resp.getWriter().println("<head>");
        resp.getWriter().println("<body>");
        resp.getWriter().println("Hello Servlet");
        resp.getWriter().println("</body>");
        resp.getWriter().println("</head>");
        resp.getWriter().println("</html>");
    }

    @Override
    public void destroy() {
        System.out.println("destroy");
    }
}
  1. 서블릿 독자적으로 실행할 수 없기 때문에 서블릿 컨테이너, 톰캣이 필요하다.

톰캣 9버전 설치 후 Fix를 눌러 war_exploded를 선택한다. war 패키지 압축을 풀어서 애플리케이션을 배포한다.

  1. webapp/WEB-INF/web.xml에 서블릿을 등록한다.

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
  <display-name>Archetype Created Web Application</display-name>
  <servlet>
    <servlet-name>hello</servlet-name>
    <servlet-class>org.example.servlet02.HelloServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>hello</servlet-name>
    <url-pattern>/hello</url-pattern>
  </servlet-mapping>
</web-app>
  1. Tomcat을 실행시킨다.

http://localhost:8080/servlet02_war_exploded/hello

그렇다면 spring에서는 어떻게 HttpServlet, web.xml, html을 코딩하지 않아도 웹 어플리케이션을 띄울 수 있는 것일까?

참고

  • 인프런 : 스프링 웹 MVC(백기선)
profile
이것저것 관심많은 개발자.

0개의 댓글