JSP(2) - Servlet 1

JeJune Lee·2021년 8월 20일
0

JSP

목록 보기
2/8

Servlet

Servlet은 저번에도 말했듯이 MVC 패턴 중 C(controller)에 해당하는 역할이다. 기본적으로 java코드로 이루어져 있다. JSP는 JSP기술의 장점을 최대한 활용 할 수 있는 웹에플리케이션 구조에서 사용자에게 결과를 보여주는 프리젠테이션 층을 담당하고 Servlet은 Servlet기술의 장점을 최대한 활용 할 수 있는 사용자의 요청을 받아 분석하고 비지니스 층과 통신하여 처리하고 처리한 결과를 다시 사용자에게 응답하는 컨트롤러 층을 담당한다. 보여지는 부분은 JSP가 Java 코드를 처리해주는 것이 Servlet이다.

간단하게 예제 통해 보자.

post.html

<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>

	<form action="PostMethod" method="post">
		<input type="submit" value="post">
	</form>

</body>
</html>

간단하게 Post라는 버튼을 만들어보았다. 여기서 form태그가 중요하다. form 태그에 action은 어떤 Servlet으로 보낼 것인가? 이다. 그리고 method는 어떤 방식으로 보낼 것인가?이다. get과 post가 있다. PostMethod라는 Servlet으로 post방식으로 보낸다는 것이다.

PostMethod.java

package com.javalec.ex;

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

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

/**
 * Servlet implementation class PostMethod
 */
@WebServlet("/PostMethod")
public class PostMethod extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public PostMethod() {
        super();
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
     
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		System.out.println("doGet");
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
     
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		System.out.println("doPost");
		
		response.setContentType("text/html; charset=euc-kr");
		PrintWriter writer = response.getWriter();
		writer.println("<html>");
		writer.println("<head>");
		writer.println("</head>");
		writer.println("<body>");
		writer.println("<h1>POST 방식 입니다. 따라서 doPost 메소드 호출 되었습니다.</h1>");
		writer.println("</body>");
		writer.println("</html>");
	}

}

post 방식으로 실행했기 때문에 doPost메소드가 실행된다. Servlet은 JSP랑 다르게 html코드를 넣을 수 없으므로 writer을 하나 만들어서 찍어본다. response.getWriter()로 가져오면 된다.

출력

POST 방식 입니다. 따라서 doPost 메소드 호출 되었습니다.

post 버튼을 누르면 위의 출력문이 보이는 것을 알 수 있다!

오늘은 여기까지..

간단하게 Servlet을 알아보았는데, JSP와 Servlet 개념을 알아야 하고, 웹 서버 처리 방식, WAS, MVC 등을 이해해야 Spring을 다룰 수 있다.

profile
Being Server developer

0개의 댓글