2. 서블릿 - 1)서블릿 생명주기, 초기화

2018. 11. 18. 21:16· 프로그래밍/스프링

2.1 서블릿 시작하기


서블릿 : JVM 기반에서 웹 개발을 하기 위한 명세이자 API다. Java EE에 포함된 스펙 중의 하나로 자바에서 HTTP 요청과 응답을 처리하기 위한 내용들을 담고 있다.


자바를 실행하려면 JRE가 필요

-> 서블릿을 실행하려면 웹 애플리케이션 컨테이너가 필요


2.1.1. 서블릿 설정


그래들을 사용할 예정.



InitServlet.java
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;

@WebServlet("/init")
public class InitServlet extends HttpServlet{
 @Override
 public void init() throws ServletException{
  System.out.println("init call");
 }
}


HttpServlet은 추상 클래스이다. init메소드는 초기화에 대응되는 메서드이므로 한번만 호출이 된다.



gradlew appStartWar
http://localhost:8080/init

콘솔에서 gradlew appStartWar를 입력후 브라우저로 http://localhost:8080/init에 접속한다.

그러면 콘솔에서 "init call"을 확인할 수 있다.



아래는 위 방식을 기존 web.xml에서 URL매핑을 설정하는 방식이다.

<servlet>
    <servlet-name>Init<&/servlet-name>
    <servlet-class>InitServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>Init</servlet-name>
    <url-parttern>/init</url-parttern>
</servlet-mapping>


servletConfig.getInitParameter를 이용해서 web.xml 또는 WEbInitParam 어노테이션의 정보를 서블릿 초기화 시 전달한다.

import java.io.IOException;

import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebInitParam;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet(
		name="initServlet", urlPatterns = {"/init"},
		initParams = {@WebInitParam(name="siteName", value="jpub")}
		)
public class InitServlet extends HttpServlet{
	
	private String myParam = "";
	
	@Override
	public void init(ServletConfig servletConfig) throws ServletException{
		System.out.println("init call");
		this.myParam = servletConfig.getInitParameter("siteName");
		System.out.println("site name : " + myParam);
	}
	
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException{
		resp.getWriter().println("hello");
	}
}


'프로그래밍 > 스프링' 카테고리의 다른 글

[스프링 인 액션] 0. 이 책을 다시 읽는 이유  (0) 2024.02.27
[스프링 마이크로서비스 코딩 공작소] 2. 스프링 부트로 마이크로서비스 구축  (3) 2023.08.21
[스프링 마이크로서비스 코딩 공작소] 1. 스프링, 클라우드와 만나다  (3) 2023.08.21
[스프링 마이크로서비스 코딩 공작소] 0. 개요  (0) 2023.08.20
[스프링 부트로 배우는 자바 웹 개발]1. 개발 환경의 변화와 자바  (0) 2018.11.18
'프로그래밍/스프링' 카테고리의 다른 글
  • [스프링 마이크로서비스 코딩 공작소] 2. 스프링 부트로 마이크로서비스 구축
  • [스프링 마이크로서비스 코딩 공작소] 1. 스프링, 클라우드와 만나다
  • [스프링 마이크로서비스 코딩 공작소] 0. 개요
  • [스프링 부트로 배우는 자바 웹 개발]1. 개발 환경의 변화와 자바
돌비돌비돌비
돌비돌비돌비
돌비돌비돌비
죠아
돌비돌비돌비
전체
오늘
어제
  • 분류 전체보기 (16)
    • 프로그래밍 (12)
      • R (0)
      • JAVA (0)
      • OpenCV (1)
      • Design Pattern (0)
      • WebRTC (0)
      • 네트워크 (0)
      • 스프링 (7)
      • NoSQL (2)
      • MySQL (1)
      • 알고리즘 (1)
    • LaundryBucket (0)
    • 면접 (0)

블로그 메뉴

  • 홈
  • 태그
  • 미디어로그
  • 위치로그
  • 방명록

공지사항

인기 글

태그

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
돌비돌비돌비
2. 서블릿 - 1)서블릿 생명주기, 초기화
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.