1 분 소요

안녕하세요. Nerd-Lee입니다.
공부 내용은, 인프런 박매일님의 [NarP Series]MVC 프레임워크는 내 손에[나프1탄] 을 참고하였습니다.


1. Servlet이 뭐야??

  • Servlet은 100% JAVA로 이루어져 있고, Server + Let가 결합된 단어라고 한다.

2. 파일을 만들어보자.

  • src / kr.web.controller(package) / HelloSevlet.java 를 만들어보자.
  • HelloServlet.java 파일을 서블릿 형태로 만들어야
    톰캣서버가 구동이 가능해지기 때문에 서블릿 형태로 만들어보자.
  • HttpServlet 이란 클래스를 상속받자. 패키지명은 javax.servlet.http.HttpServlet 이다.
  • Servlet 에서, Main 함수와 같은 제일 먼저 실행되는 메서드가 필요한 데
    alt + shift + s 키를 눌러서, override/implements methods 라는 버튼을 클릭해서
    HttpServlet 클래스가 가진 메서드를 재정의 해야하는데
    service(HttpServletRequest, HttpServletResponse) 를 체크하고 OK 클릭!
  • 이렇게 만들어진 것이, Servlet의 골격이다. 이 다음, jsp에서 만들었던 것 처럼
    1~10까지의 총합을 서블릿으로 만들어보면 된다. 밑에 코드처럼 추가해보자.
    MyUtil my = new MyUtil();
    int sum = my.sum();
    
  • 이제 해당 데이터를 클라이언트와 연결을 시켜서 요청을 받고 응답을 하면
    해당 값을 보낼 수 있도록 만들어야 한다.
  • PrintWriter out = res.getWriter(); 를 추가해주자.
    res.getWriter() 는 요청한 클라이언트와 연결시키는 IO를 만들어내는 메서드이다.
    PrintWriter out 변수는 getWriter로 받아온, 출력스트림을 받아온다.
    그리고 out 변수가 요청한 클라이언트와 연결되어 있는 하나의 빨대 역할을 하는것이다.
  • 이제 HTML 코드를 하나 작성해서, out 변수에게 넘겨서, 클라이언트로 보내면 된다.
package kr.web.controller;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import kr.web.util.MyUtil;

// JavaEE -> Servlet
public class HelloServlet extends HttpServlet {

	@Override
	protected void service(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
		// TODO Auto-generated method stub
		MyUtil my = new MyUtil();
		int sum = my.sum();
		
		// 요청한 클라이언트에게 응답하기
		PrintWriter out = res.getWriter();
		
		out.println("<html>");
		out.println("<body>");
		out.println(sum);
		out.println("</body>");
		out.println("/<html>");
	}
}
  • 최종 서블릿 예제 코드이다. 이제 서블릿에 대해서 보니깐, 현재 내가 회사에서 보고 있는 프로젝트가….ㅠㅠ
    어떻게 진행되고 있었던건지를 깨닫게 된다. 서블릿도 있고, jsp도 있고..난장판인데
    이걸 리팩토링하자니 아직 실력이 부족하고 물론 천천히 진행해도 상관은 없으나 막상 서블릿과 jsp의 차이를 알게되니..
    코드를 처음보면서도 이걸 왜 이렇게 만들었지? 라는 생각을 늘 품고 있었는데.. 에효.. 하나로 통일이 된게 아니였구나..를 깨닫게 된다.
    하하하하.. 나중에 리팩토링 하자. jsp로 깔끔하게ㅠㅠ


  • 일단 오늘은 토요일이라 하루 쉴려고 했으나..
    그래도 공부 하나 정도는 듣고 자는 게 좋을 것 같다는 생각에 글을 작성해본다.
    내일은 더 많은 공부를 할 예정이다. 일단 영어도 시작했으니깐
    영어부터 공부를 해보고 프로그래밍 공부를 시작하자..ㅠㅠ 화이팅!


이 글이 도움이 되셨다면 댓글 부탁드립니다^^
다음 글로 찾아오겠습니다!