본문 바로가기
JAVA/JSP, Servlet

<Servlet>이란 무엇일까? 서블릿 개념정리

1. Servlet 이란?

 

웹의 시대가 오면서 사람들은 고민하기 시작했다. Java로 웹을 개발할 수 없을까? 라고 말이다.

초창기의 Java는 웹개발을 염두해두고 만든 언어가 아니기 때문에 웹을 개발할 수가 없었다.

그래서 J2EE라는 것이 등장했다. 쉽게 말해 웹을 개발할 수 있도록 업그래이드 된 자바의 기능들 이라고 생각하면 된다.

이렇게 등장한 J2EE의 기술중에 한가지가 Servlet이고 그 외에도 JDBC등등이 있다.

 

J2EE를 통해 등장한 Servlet은 url주소를 맵핑하여 웹 브라우저에서 url주소로 자바의 클래스 파일을 호출 할수 있게 만들었고 이렇게 호출된 Servlet이라는 자바클래스는 자바로 짜여진 코드를 브라우저가 이해할수 있는 html로 변환하여 브라우저에게 전달해서 우리가 보는 웹화면이 되는 것이다. 한마디로 Servlet이라는 것으 개념은 별거 없다.

그냥 자바인데 웹브라우저에서 볼 수 있게 만든 자바인 것이다.

 

 

 

 

 

2. Servlet 만들기

 

Servlet파일을 만드는 것은 쉽다.

일반 클래스 파일을 만드는 것처럼 파일 생성에 가보면 Servlet항목이 보이는데 선택을 해준다.

 

 

그 다음 Next를 누르면 패키지명과 클래스명을 지정하는 란이 나오는데 원하는 이름을 기입하면 된다.

 

 

그다음 Next를 누르면 URL mappings라는 항목이 보인다.

위에서 설명한 것처럼 내가 만든 Servlet을 호출하기 위한 url을 설정하는 항목인데 기본값으로 해도 되고 원하는 url주소가 있다면 변경해서 기입하도록 한다.

(참고로 현업에서는 보안상의 이유로 url주소를 servlet파일의 이름과 다르게 작성한다고 한다)

 

 

Next를 누르면 이제 마지막 단계이다.

이 단계에서는 Servlet파일을 생성할 때 기본적으로 추가할 함수를 설정하는 단계이다.

예를들어 get방식으로 통신하는 서블릿을 만들고자 한다면 아래항목에서 doGet을 체크하고 finish를 누르면

doGet함수가 기본적으로 세팅되어 파일이 만들어진다.

 

여기서 모든 함수에 대해서 설명하긴 어려우니 몇가지만 살펴보자면 destroy함수는 서블릿 객체가 사라지면 실행되는 함수이고 init함수는 서블릿 객체가 최초 생성될때 실행되는 함수이다.

그 외에도 get, post함수는 너무 유명하니 따로 언급하지는 않도록 하겠다.

 

 

 

 

 

3. Servlet의 기본구조

 

아래의 코드는 완성된 Servlet 파일이다. 최초 생성되는 주석문이라던가 불필요한 부분은 지웠으며 get, post함수만 선택해서 생성했고 url mapping은 /test로 했다.

만약 url주소로 이 서블릿 파일을 호출하는데 get방식으로 호출한다면 doGet함수에 적혀있는 로직이 실행될 것이고

반대로 post방식으로 호출한다면 doPost함수의 로직이 실행된다.

 

Servlet코드를 보면 알겠지만 Servlet덕분에 웹개발을 하는데 있어서 자바를 마음대로 사용할 수 있다.

Servlet에서 자바를 이용한 연산을 한 결과값을 브라우저에 표현할수도 있고 반복문을 돌린다거나 dao, dto를 이용한 여러가지 db관련 작업도 가능할 것이다. java에서 사용되는 수많은 라이브러리들이 모두 사용가능하다는 의미이다!!

package test;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


@WebServlet("/test")
public class test extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    public test() {
        super();
    }

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
	}


	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
	}

}

 

 

 

 

 

4. Servlet 설명의 마무리

 

대략적인 Servlet의 개념에 대해서 기술해 보았다.

만약 처음 공부를 하는 입장이라면 아직 답답한 부분이 많을 것이다.

JSP에서 값은 어떻게 전달받고 전달받은 값을 가지고 연산 혹은 작업한 내용을 다시 돌려 보내려면 어떻게 해야하는지 등등 아직 넘어야 할 산이 많다. 하지만 이 포스팅을 통해 Servlet = java 라는 사실과 Servlet을 브라우저에서 호출해서 html로 작성된 내용을 볼 수 있다는 개념 한가지만 이해했다면 큰 소득이라 생각한다.

 

다음 공부를 위한 키워드를 제시하자면 HttpServletRequest와 HttpServletResponse객체, 그리고

redirect와 forward에 대해서 공부해 보는 것을 권장하고 싶다.

 

 

 

 

 

 

'JAVA > JSP, Servlet' 카테고리의 다른 글

[JSTL]이란? JSTL CORE태그 사용법  (0) 2019.05.18
<Servlet>redirec와 forward개념  (0) 2019.05.15

댓글