스프링 MVC 동작 원리(3) : 서블릿 애플리케이션 개발
3. 서블릿 애플리케이션 개발
준비물: 메이븐, 톰캣
- 메이븐 프로젝트 생성 archtype에서 webapp 선택
- 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>
- Project Structure에서 java 디렉토리를 Sources로 지정
- 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");
}
}
- 서블릿 독자적으로 실행할 수 없기 때문에 서블릿 컨테이너, 톰캣이 필요하다.
톰캣 9버전 설치 후 Fix를 눌러 war_exploded를 선택한다. war 패키지 압축을 풀어서 애플리케이션을 배포한다.
- 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>
- Tomcat을 실행시킨다.
http://localhost:8080/servlet02_war_exploded/hello
그렇다면 spring에서는 어떻게 HttpServlet, web.xml, html을 코딩하지 않아도 웹 어플리케이션을 띄울 수 있는 것일까?
참고
- 인프런 : 스프링 웹 MVC(백기선)
Author And Source
이 문제에 관하여(스프링 MVC 동작 원리(3) : 서블릿 애플리케이션 개발), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jsj3282/스프링-MVC-동작-원리3-서블릿-애플리케이션-개발저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)