-
JSP < -> ServletBack end/JSP 2023. 11. 14. 15:44
서블릿(Servlet)과 JSP(JavaServer Pages)는 모두 Java를 기반으로 하는 웹 개발 기술이지만, 목적과 사용 방식에서 몇 가지 차이가 있습니다.
1. **목적:**
- **서블릿:** 자바 코드 안에 HTML 코드를 포함하여 동적인 웹 페이지를 생성하는데 주로 사용됩니다. Java 코드 안에서 HTML을 작성하므로 코드가 복잡해질 수 있습니다.
- **JSP:** HTML 안에 자바 코드를 삽입하여 웹 페이지를 생성하는데 목적이 있습니다. 주로 디자이너와 개발자 간의 협업을 쉽게 하기 위해 만들어졌습니다.
2. **문법:**
- **서블릿:** 자바 코드 안에서 HTML을 문자열 형태로 작성해야 합니다. 코드가 복잡하고 가독성이 떨어질 수 있습니다.
- **JSP:** HTML 문서 안에 자바 코드를 삽입하는 형태로 작성할 수 있습니다. 이는 일반적인 HTML 문법과 유사하게 보이므로 가독성이 향상됩니다.
3. **유지보수 및 개발 생산성:**
- **서블릿:** 자바 코드와 HTML 코드가 혼합되어 있기 때문에 유지보수가 어려울 수 있습니다. 코드 변경 시 자바 클래스를 다시 컴파일해야 합니다.
- **JSP:** HTML과 자바 코드가 분리되어 있어 유지보수가 더 쉽습니다. 변경된 부분만을 다시 컴파일할 수 있어 개발 생산성이 향상됩니다.
4. **컴파일 방식:**
- **서블릿:** 서블릿은 자바 클래스로 변환되어야 하므로 컴파일이 필요합니다.
- **JSP:** JSP는 서블릿으로 변환되어 실행되는데, 이 변환은 필요할 때 자동으로 이루어집니다.
일반적으로 웹 애플리케이션에서는 서블릿과 JSP를 함께 사용하는 것이 일반적이며, 각각의 장점을 살려 개발하는 경우가 많습니다. 최근에는 서블릿과 JSP 대신에 스프링 프레임워크 등의 웹 프레임워크를 사용하는 추세가 높아지고 있습니다.서블릿 예시 코드:
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;
@WebServlet("/HelloServlet")
public class HelloServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
String name = request.getParameter("name");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head>");
out.println("<title>Hello Servlet</title>");
out.println("</head>");
out.println("<body>");
out.println("<h2>Hello, " + name + "!</h2>");
out.println("</body>");
out.println("</html>");
}
}JSP 예시 코드:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Hello JSP</title>
</head>
<body>
<form action="HelloServlet" method="post">
Enter your name: <input type="text" name="name">
<input type="submit" value="Submit">
</form>
<%
String name = request.getParameter("name");
if (name != null && !name.isEmpty()) {
%>
<h2>Hello, <%= name %>!</h2>
<%
}
%>
</body>
</html>'Back end > JSP' 카테고리의 다른 글
jstl 사용 방법 공유 사이트 (0) 2023.09.01 JSP 내장객체 (0) 2023.06.28 JSP request,response (0) 2023.06.28 CRUD (0) 2023.06.27 JSP 스크립트 (0) 2023.06.27