- 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이다.
- 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>- JSP는 Servlet 파일(
.java) 파일로 변환된다. - Servlet 파일을 다시 컴파일해서
.class파일로 만든 뒤 실행한다. - 실행 결과, 자바 언어가 모두 사라진 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