Skip to content

Latest commit

 

History

History
82 lines (63 loc) · 2.67 KB

File metadata and controls

82 lines (63 loc) · 2.67 KB

Servlet

  • java 코드 안에 html 코드
  • 확장자가 .java인 파일
  • 자바의 일반적인 클래스와 동일한 개념으로 HttpServlet를 상속받은 클래스이다.
  • 비즈니스 로직 처리에 적합하다.
  • ex) out.println(” <HTML> “);
// Java program to show servlet example
// Importing required Java libraries
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
  
// Extend HttpServlet class
public class AdvanceJavaConcepts extends HttpServlet 
{ 
   private String output;
    
   // Initializing servlet 
   public void init() throws ServletException 
   {
      output = "Advance Java Concepts";
   }
  
   // Requesting and printing the output
   public void doGet(HttpServletRequest req, 
                    HttpServletResponse resp)
      throws ServletException, IOException 
      {
         resp.setContentType("text/html");
         PrintWriter out = resp.getWriter();
         out.println(output);
      }
}

Servlet을 사용할 경우 java 코드안에 html 코드를 일일이 기입해야 하기때문에, 화면 UI 구현이 까다로워진다. 이를 보완하기 위해 html 코드에서 처리하기 위해 만든 기술이 JSP이다.

JSP(Java Server Page)

  • html 코드 안에 java 언어 (태그를 이용해서 작성)
  • 확장자가 .jsp인 파일
  • 뷰를 표현하기에 좋다
  • ex) <% for (int i = 0 ; i < 10 ; i++) { %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title> Hello World - JSP tutorial </title>
</head>
<body>
    <%= "Hello World!" %>
</body>
</html>
  1. JSP는 Servlet 파일(.java) 파일로 변환된다.
  2. Servlet 파일을 다시 컴파일해서 .class파일로 만든 뒤 실행한다.
  3. 실행 결과, 자바 언어가 모두 사라진 Html 코드가 된다.

즉, JSP 파일 → Servlet 파일 → 클래스 파일 → 실행 의 과정을 거친다.

주로 JSP는 화면 구성, 서블릿은 로직을 수행하는데 사용하는 경우가 많다.

단, 서블릿을 보완하기 위한 JSP또한 html 코드에 java코드를 삽입하는 방식이므로 유지보수하기 어렵다. 서블릿/JSP은 뷰와 비즈니스 로직을 한 곳에서 처리하기 때문에, java-html 코드가 섞여 유지보수 하기 어려워진다. 이를 해결하기 위해 MVC 패턴에서는 각각의 역할을 분리하였다.

MVC 패턴

  • View : HTML이 중심이 되는 JSP를 사용
  • Controller : Java 코드가 중심이 되는 Servlet을 사용
  • Model : Java Beans로, DTO와 DAO를 통해 Mysql과 같은 DataBase에 접근

Reference