티스토리 뷰

WEB/DynamicWeb

[Servlet] Servlet 기초

춘햄 2021. 4. 26. 14:19

 Servlet?

 

 최대한 간단하게 설명하면, Servlet은 웹에서 클라이언트의 요청에 대한 동적인 처리를 서버가 수행할 수 있게끔 해주는 JAVA API라고 할 수 있다. 

즉, JAVA 코드로 작성되는 HTML 코드라고 할 수 있는데, JSP가 요청 결과를 VIEW 해주는 데 집중한다면, Servlet은 서버 내부에서 데이터의 처리(제어)에 집중한다고 볼 수 있다.

 

간단한 실습을 진행해면서 왜 Servlet 을 사용하는 것이 좋은지, 어떤 것이 단점인지 등등 자세히 알아보도록 하자.


기본적으로 servlet은 동적 웹 프로젝트에서 Java Resources - src 에 위치하며, new를 클릭하여 생성할 수 있다.

 

패키지명, 클래스명을 입력해주고, next를 눌러 넘어가면

 

다음과 같은 화면이 나오는데, Description은 해당 Servlet에 대한 설명을 간단히 적어주면 되고(생략 가능), 그 밑에 URL mapping은 주소창에 직접 표출되는 정보이니, 수정해서 원하는 주소명으로 바꿔도 된다.

 

next를 한번 더 누르면, 위 화면으로 넘어온다. 이 작업에서는 생성자의 생성 여부, 추상 메서드 사용 여부 등을 체크하면 된다. (이번 포스팅에서는 doGet() 메서드만 사용한다.)

 

servlet을 생성하면 다음과 같은 코드가 자동으로 작성된다. (주석은 자동작성되지 않는다.)

package unit01;

import java.io.IOException;
import javax.servlet.ServletException; 
import javax.servlet.annotation.WebServlet;  //annotation @
import javax.servlet.http.HttpServlet; //HttpServlet implements Servlet
import javax.servlet.http.HttpServletRequest; //doGet() / doPost() 의 첫번째 매개변수 타입
import javax.servlet.http.HttpServletResponse; // doGet() / doPost() 의 두번째 매개변수 타입

/**
 * Servlet implementation class HelloServlet
 */
@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;  //수정 불가! 톰캣이 서블릿을 구별하기 위해 자동으로 부여되는 코드

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		response.getWriter().append("Served at: ").append(request.getContextPath());
		//response.getWriter() => printWriter 타입 객체를 반환
		// PrintWriter out = response.getWriter();
		//response.getWriter().append("Served at: ") => out.append("Served at: "); 추가
		//
		//즉, String  tags = ""; tags += "<html>" 과 비슷
	}

}

바로 실행해보자.

아까 맵핑해준 주소와 테스트 코드가 실행된다!!

 

드디어 servlet에도 한 걸음 내딛었다.

 

 

 

 

'WEB > DynamicWeb' 카테고리의 다른 글

[Servlet] init() & destroy()  (0) 2021.04.26
[Servlet] 간단한 덧셈을 수행하는 클래스  (0) 2021.04.26
[JSP] JSTL - fmt  (0) 2021.04.26
[JSP] JSTL - core  (0) 2021.04.23
[JSP] EL 표현식 문법과 사용 방법  (0) 2021.04.23
Comments