{ JSP } JSP_1
JSP 와 Servlet
- 웹 애플리케이션 개발에 사용되는 자바 기반 기술입니다.
- 이 둘은 서버 측에서 실행되며, 웹 브라우저에 동적 콘텐츠를 제공하는 데 사용됩니다.
자바 서블릿 (Servlet)
개념
- 서블릿은 자바 웹 어플리케이션을 쉽게 개발하기 위해 만들어진 표준 API 이다.
- 자바 클래스의 집합 (API)으로 웹 서버에서 실행되며 클라이언트의 요청(HTTP 요청)을 처리합니다.
역할
- 주로 HTTP 요청을 처리하고, 요청에 대한 응답을 생성하는 역할을 합니다. 자바의 장점은 플랫폼 독립성을 갖추고 있습니다.
- 플랫폼 독립성이란 소프트웨어에 포함된 코드가 운영 체제에 종속되지 않고 여러 환경에서 동일하게 동작할 수 있는 능력을 의미합니다.
- “Write Once, Run Anywhere”
사용 방법
- Controller를 만들 때 사용합니다.
- 서블릿 클래스는 온라인 웹상에서 누구나 다 접속 가능하게 public 접근 지정자로 선언합니다.
- 클라이언트가 웹 브라우저를 통해 요청을 보내면, 웹 서버는 해당 요청을 서블릿으로 전달합니다.
- 서블릿은 요청을 처리한 후, HTML이나 JSON 등의 형태로 응답을 생성해 클라이언트에게 보냅니다.
서블렛 종류
- HttpServletRequest
- HttpServletResponse
- RequestDispatcher
- “키이름”, “값”: 메서 드로 키이름에 저장된 값을 유지하려면 사용해서 뷰페이지 이동을 해야함
-
PrintWriter
- get으로 접근할 때는 doGet() 메서드를 오버라이딩 해서 호출
- post으로 접근할 때는 doPost() 메서드를 오버라이딩해서 호출
코드 예제
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloWorldServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 응답의 유형을 HTML으로 명시
response.setContentType("text/html;chatset=UTF-8");
// 모든 print methods를 실행할 수 있는 클래스
PrintWriter out = response.getWriter();
out.print("<h1>Hello, World!</h1>");
}
}
JSP (Java Server Pages)
개념
JSP는 HTML 내에 자바 코드를 포함하여 웹 페이지를 동적으로 생성할 수 있도록 해주는 기술입니다.
사용 방법
- JSP 파일은 HTML 코드와 자바 코드를 혼합하여 작성됩니다.
- 클라이언트가 JSP 페이지를 요청하면, 웹 서버는 JSP 페이지를 서블릿으로 변환하여 실행하고, 결과를 클라이언트에게 전달합니다.
코드 예제
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<title>JSP</title>
</head>
<body>
<h1>Hello, World!</h1>
<%
int ran = (int)(Math.random()*9+1);
오늘의 행운의 숫자는 <%=ran %>입니다.
%>
</body>
</html>
주요 차이점
- 서블릿은 자바 코드 안에 HTML이 포함된 형태로 작성되며, 주로 비즈니스 로직을 처리하는 데 적합합니다.
- JSP는 HTML 안에 자바 코드가 포함된 형태로 작성되며, 주로 프리젠테이션 로직을 처리하는 데 적합합니다.
결합 사용
일반적으로 서블릿과 JSP는 함께 사용됩니다. 서블릿은 요청을 받아 비즈니스 로직을 처리하고, 결과를 JSP로 전달하여 JSP가 HTML을 생성해 클라이언트에게 응답하는 방식으로 사용됩니다. 이 방식은 MVC(Model-View-Controller) 패턴을 구현하는 데 유용합니다.