티스토리 뷰

반응형

서블릿 애플리케이션 개발

maven 프로젝트 생성

pom.xml 간략 설명

 <dependency>
   <groupId>junit</groupId>
   <artifactId>junit</artifactId>
   <version>4.11</version>
   <scope>test</scope>    <!-- 소스 클래스 패스에서는 사용 못하고 오롯이 테스트를 실행할 때만 사용 가능 -->
</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>    <!-- 이 의존성을 언제 어떻게 클래스패스에 넣고 쓸 것이냐의 범위를 뜻함 -->
  <!-- 코딩 시점에는 사용이 가능하나, 런타임 시점(war 패키징)에는 클래스 패스에서 제외된다.-->
</dependency>
  • JUnit Scope : test
    • 소스 classpath 에서는 사용 못하고 오롯이 테스트를 실행할 때만 사용이 가능하다.
  • Servlet Scope : provided
    • 이 의존성을 언제 어떻게 classpath에 넣고 쓸것이냐의 범위를 뜻한다.
    • 코딩 시점에는 사용이 가능하나, 런타임 시점(war 패키징 시점)에는 classpath에서 제외된다.
    • 해당 API는 어딘가(컨테이너)에서 제공이 되어진다는 뜻이다.
      • 이로 인해서 런타임 시점에서는 classpath에서 제외되도 괜찮다는 것이다.

 

소스 패키지 설정

File > project structure > Modules > java 패키지 > source로 설정

서블릿을 사용한 애플리케이션을 실행하기 위해서는 톰캣 서버가 필요하다.

 

애플리케이션 실행을 위한 web.xml 설정

<!--서블릿 등록-->
<servlet>
    <servlet-name>hello</servlet-name>
      <!-- 서블릿 위치 -->
    <servlet-class>com.mesung.HelloServlet</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>hello</servlet-name>
    <url-pattern>/hello</url-pattern>
  </servlet-mapping>

 

서블릿 컨테이너 실행 순서

  • 첫 로딩
    • init > doGet 혹은 doPost
  • 다음 로딩
    • doGet 혹은 doPost
  • 종료
    • destroy

 

스프링 MVC는 서블릿 컨테이너 기반으로 만들어졌다.

@Override
public void init() throws ServletException {
  System.out.println("init");
}

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
  System.out.println("doGet");
  resp.getWriter().println("<html>");
  resp.getWriter().println("<head>");
  resp.getWriter().println("<body>");
  resp.getWriter().println("<h1>hello servlet</h1>");
  resp.getWriter().println("</body>");
  resp.getWriter().println("</head>");
  resp.getWriter().println("</html>");
}

@Override
public void destroy() {
  System.out.println("destroy");
}
  • 위 소스 기반으로 스프링 MVC가 만들어진 것이다.
반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
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
글 보관함