티스토리 뷰

개발

[Web] JSP vs Servlet

koreatech 2024. 7. 2. 12:05

JSP와 Servlet

둘 다 웹 애플리케이션을 만드는데 사용됨

 

1. JSP

JSP 동작흐름

  정적 데이터(HTML, XML, SVG, WML, ... )와

  동적 데이터(JSP; <% %> 형태)

  와 같은 두 가지 유형의 텍스트를 포함하는 텍스트 문서

 

사용 문법

선언 

멤버변수 or 메소드를 선언하는 영역

<%! 멤버변수와 메서드 %>  

 

스크립트릿

Client요청 시 매번 호출되는 영역으로, Servlet으로 변환 시 service() method에 해당. 요청/응답 관련된 코드 구현

<% 자바 코드 %>

 

표현식 

데이터를 문자열 형태로 출력할 때 사용

<%= 문자열 %>

 

주석 

<%-- 주석 code --%>

 

  확장자가 .jsp

  html와 같은 정적 데이터 문서 안에 자바 언어를 삽입해 사용할 수 있도록 해줌

<!-- 다음과 같이 <%   %> 를 삽입한 형태로 사용한다. -->
<%@page import="java.util.Random"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<html>
<title>Java Random Number</title>
<body>
	<!-- Java에서의 util을 import하여 사용 --> 
    <%
    	Random ran = new Random();
        int num = ran.nextInt(50) + 1;
        out.print("<h1>: " + num + "</h1>";
    %>
</body>
</html>

2. Servlet

서블릿의 동작흐름

  요청-응답 모델을 통해 접근하는 애플리케이션을 호스팅하는 서버의 기능을 확장하는데 사용되는 Java Class

  주로 웹 서비스에서 호스팅하는 애플리케이션을 확장하는 데 사용

 

  확장자가 .java

  Java 코드 안에 HTML을 포함시킴

package com.my.web;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

// 해당 주소/Test 로 접근할 시 출력
@WebServlet("/Test")
public class Test extends HttpServlet {

	protected void doGet(HttpServletRequest request, HttpServletResponse response) 
			throws ServletException, IOException {
		// HTML로 인코딩
		response.setCharacterEncoding("UTF-8");
		response.setContentType("text/html; charset=UTF-8");
		// 페이지 상에 "get으로 요청"이라는 문구가 띄워짐
		PrintWriter out = response.getWriter();
		out.print("get으로 요청");
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) 
			throws ServletException, IOException {
		// HTML로 인코딩
		response.setCharacterEncoding("UTF-8");
		response.setContentType("text/html; charset=UTF-8");
		// 페이지 상에 "post로 요청"이라는 문구가 띄워짐
		PrintWriter out = response.getWriter();
		out.print("post로 요청");
	}

}

  


3. JSP Servlet 비교

JSP Servlet
HTML 문서 안에 Java 코드 포함 Java 코드 안에 HTML 포함 
HTML 내부에 Java코드를 작성하기 쉬움 ( 사용이 쉬움 )  사용이 어려움
MVC 상의 View 역할 MVC 상의 Controller 역할
Servlet보다 느림
: JSP 생명주기의 시작에서 JSP 를 자바 코드로 변환하고 컴파일을 진행하기 때문에 
빠름
HTTP Requests만 지원 모든 종류의 Protocol Requests를 지원
service() 메서드의 오버라이드(재정의)를 지원하지 않음 service()메서드의 오버라이드(재정의)를 지원
JSP 세션 관리가 자동으로 활성화 세션 관리가 자동으로 활성화 되지 않음
사용자가 명시적으로 활성화시켜주어야 함 
JavaBeans client-side를 사용함으로써
JSP의 비즈니스 로직이 표현 로직과 분리되어있음
비즈니스 로직과 표현 로직 등을 하나의 서블릿 파일에 구현해야 함 
수정이 빠름 수정이 느림
: Reload, 재컴파일, JavaBeans 사용, 서버 재시작 등의 작업이 포함
: 시간이 많이 걸리는 컴파일 작업
내장된 암묵적 객체 존재 내장된 암묵적 객체 없음
클라이언트 측에서 Javascript를 실행할 경우
클라이언트 측 검증이 사용됨
클라이언트 측에서 Javascript를 실행할 수 있는 방법이 없음
패키지를 코드의 어느 부분이든 포함할 수 있음
: bottom, middleclient-side, top, ...
패키지를 코드의 맨 위에 가져와야 함
대용량 데이터의 효율적 처리 불가능 대용량 데이터 처리 가능
사용자 정의 태그를 작성할 수 있는 기능 있음 사용자 정의 태그 작성 기능 없음
실행 전, Java Servlet으로 컴파일
Servlet과 유사한 생명 주기를 가짐
웹 서버에서 호스팅되고 실행

 

 

 


출처

https://invertko.tistory.com/67

 

2019.01.29 JSP 기본예제#1

#1 랜덤수의 사용 ->Random12345678910111213141516171819java util Colored by Color Scriptercs ▼실행 화면▼ #2 자바변수선언후 그대로 JSP에서 사용123456789101112131415161718192021222324EX2 ID : PW : Colored by Color Scriptercs ▼실

invertko.tistory.com

 

https://codevang.tistory.com/191

 

Tomcat(톰캣), JSP, Servlet(서블릿)의 기본 개념 및 구조

JSP와 Servlet(서블릿)은 모두 자바로 웹 어플리케이션을 만들기 위한 도구입니다. 기존 자바를 통해 채팅 프로그램 등을 만들었듯이, 기본 원리는 거의 유사합니다. 다만 웹(Web)을 조금 더 쉽게 다

codevang.tistory.com

https://javacpro.tistory.com/43

 

[JSP] JSP (JavaServer Pages ) 란 무엇인가?

JSP (JavaServer Pages ) 란 무엇인가? JSP 란 JavaServer Pages 의 약자이며HTML 코드에 JAVA 코드를 넣어 동적웹페이지를 생성하는 웹어플리케이션 도구이다.JSP 가 실행되면 자바 서블릿(Servlet) 으로 변환되며

javacpro.tistory.com

https://geeksforgeeks.org/difference-between-servlet-and-jsp/

 

Difference between Servlet and JSP - GeeksforGeeks

A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, quizzes and practice/competitive programming/company interview Questions.

www.geeksforgeeks.org

https://java-is-happy-things.tistory.com/23

 

Servlet (서블릿)이해하기 + 실습예제

Servlet Servlet이란 자바를 사용하여 웹페이지를 동적으로 생성하는 서버측 프로그램 혹은 그 사양을 말하며, 흔히 "서블릿"이라 불린다. 자바 서블릿은 웹 서버의 성늘을 향상하기 위해 사용되는

java-is-happy-things.tistory.com

https://java-is-happy-things.tistory.com/26

 

JSP(Java Server Page)

JSP JSP란? 자바서버페이지(JSP)는 HTML 내 자바코드를 삽입하여 웹 서버에서 동적으로 웹 페이지를 생성하여 웹 브라우저에 돌려주는 언어이다. Java EE 스펙 중 일부로 웹 애플리케이션서버에서 동

java-is-happy-things.tistory.com

http://sgcomputer.tistory.com/236

 

서블릿 기초 형태

2020/10/30 - [백엔드/서블릿&JSP] - 서블릿(Servlet)이란? 서블릿(Servlet)이란? 서블릿이란? 자바를 기반으로 하는 웹페이지를 동적으로 만들어줄 수 있는 일종의 프로그램을 말한다. 사실 좁게 보면 서

sgcomputer.tistory.com

 

 


JSP vs Thymeleaf 참고용

https://velog.io/@posasac/SpringJSP-vs-Thymeleaf

 

[Spring]JSP vs Thymeleaf

자바 프로그래밍을 처음 배울 때 기본적으로 JSP를 배운다. JSP는 일반적인 Java MVC 구조에서 View의 역할을 하는데 요즘 Spring에서는 View로 Thymeleaf를 더 추구한다고 한다! JSP vs Thymeleaf JSP의 경우에는

velog.io


 

'개발' 카테고리의 다른 글

[Web] Thymeleaf  (0) 2024.07.03
[Markup] CDATA 관련  (0) 2024.07.03
[Protocol] SNMP  (0) 2024.06.14
[Spring Boot] 1. 스프링 부트 기능 특징  (0) 2024.06.13
[Web] React, Spring boot 연동  (2) 2024.03.21
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함