티스토리 뷰
반응형
서블릿 애플리케이션 개발
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가 만들어진 것이다.
반응형
'Spring > Spring 웹 MVC' 카테고리의 다른 글
[스프링 웹 MVC] 스프링 MVC 연동(Dispatcher Servlet) (0) | 2020.03.13 |
---|---|
[스프링 웹 MVC] 스프링 MVC 동작 원리 (0) | 2020.02.11 |
[스프링 웹 MVC] 스프링 IoC 컨테이너와 연동 (0) | 2020.02.11 |
[스프링 웹 MVC] 서블릿 리스너와 필터 (0) | 2020.02.11 |
[스프링 웹 MVC] 서블릿 애플리케이션 (0) | 2020.02.11 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- junit
- effectivejava
- Spring
- java
- 복사 팩토리
- 생성자
- 이펙티브자바
- 스프링부트
- 점층적 생성 패턴
- 김영한
- 이펙티브 자바
- 정적팩터리메서드
- springboot
- mustache
- java8
- 연관관계
- try catch finally
- 자바8
- 빌더 패턴
- JPA
- jdk버전
- flatMap
- 빈 순환 참조
- 팩토리 메소드 패턴
- ifPresent
- Effective Java
- package-private
- 인프런
- @Lazy
- try with resources
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함