ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • JSP < -> Servlet
    Back 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
Designed by Tistory.