JSP/Servlet 기초

2025. 9. 5. 15:33·JAVA
  • JSP
    • JSP(JavaServer Pages)는 HTML 문서에 Java 코드를 삽입하여 동적인 웹 페이지를 생성하는 서버 측 스크립트 언어이다.
    • JSP는 클라이언트 요청 시 내부적으로 서블릿(Java 코드)으로 변환되어 실행된 후 HTML을 생성해 응답
      • 쉽게 말해 HTML 문서에 Java 코드를 삽입하여 동적인 웹 페이지를 생성하는 서버 측 스크립트 언어

예시)

// hello.jsp

<% @ page contentType="text/html: charset=UTF-8"%>
<html>
<head>
<body>
	<h2>Hello, JSP!</h2>
</body>
</html>

 

  • 특징 및 구성
항목 설명
실행 구조 JSP 파일은 .jsp확장자를 사용하며, WAS(Web Application Server)가 
내부적으로 Servlet으로 변환하여 실행
파일 확장자 .jsp
HTML과 Java 결합 방식 <%= 변수 %> 또는 <% Java 코드 %>로
HTML 내에서 Java 코드 삽입
대표 문법 <%= %>(출력), <% %>(로직), ${}(EL - Expression Language, JSP 2.0 이후)

 

 

JSP의 기초 구조

 

  • Servlet
    • Servlet은 자바 코드로 작성된 서버 측 프로그램으로, 클라이언트의 요청을 받아 처리하고 동적인 응답을 생성하는 웹 컴포넌트이다.
      위의 우측 하단 자바 코드 과정을 제외한 나머지 내용들이 나와있는 개념이라고 이해하면 됨
@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request,HttpServletResponse response)
            throws ServletException, IOException {
            //요청처리 및 응답 작성
    }
}
구성 요소 설명
@WebServlet URL 매핑 설정 (/hello 등)
HttpServlet 서블릿은 이 클래스를 상속
doGet() GET 요청 처리 메서드
doPost() POST 요청 처리 메서드
  • doGet()은 URL에 데이터를 담아 조회용으로 사용하고,
    doPost()는 본문에 데이터를 담아 데이터 입력에 사용된다.
항목 Get doPost()
데이터 전송 방식 URL에 쿼리스트링으로 전송 (?name=value) HTTP Body에 담아 전송
URL 노출 O (브라우저 주소창에 보임) X (보이지 않음)
전송 데이터 길이 제한 있음 (일반적으로 2048자 이하) 제한 없음 (더 많은 데이터 전송 가능)
보안성 낮음 (URL에 노출됨) 상대적으로 높음
용도 단순 조회, 검색 로그인, 폼 제출 등 민감 데이터 처리
브라우저 캐시 캐시됨 (뒤로 가기 시 데이터 유지) 캐시되지 않음

 

JSP vs Servlet 비교 정리

항목 JSP Servlet
정의 HTML 안에 Java 코드를 삽입한 서버 측 스크립트 Java 코드로 작성된 서버 측 프로그램으로 웹 요청을 처리 
역할 중심 화면 출력(View 역할에 적합) 로직 처리(Controller 역할에 적합)
작성 방식 HTML 코드 안에 Java 코드 Java 코드 안에 HTML
사용 목적 화면에 데이터를 출력, 응답 HTML 생성 요청 처리, DB 접근, 비즈니스 로직 수행
표준 위치 JSP 표준 태그 라이브러리 (JSTL 포함) Java Servlet API (javax.servlet)
기능 차이 Servlet의 기능 포함 + 표현 기능 강화 웹 요청을 동적으로 처리 가능
수정 및 배포 수정 시 WAS가 자동 처리 (재배포 불필요) 코드를 수정하면 다시 컴파일 후 재배포 필요
초기 목적 HTML 중심의 View 생성을 위한 보완 기술 동적 요청 처리를 위한 Java 기반 웹 컴포넌트
추천 사용 예 사용자에게 보여지는 HTML 응답 페이지 생성 로그인 처리, DB 조회, 로직 연산 등

'JAVA' 카테고리의 다른 글

JAVA 객체지향 개념 정리  (1) 2025.09.16
JAVA 문법 규칙 및 GitHub 커밋 컨벤션 학습  (0) 2025.09.15
Thymleaf  (0) 2025.09.05
Java 문법 기초  (1) 2025.09.05
Java란 무엇인가?  (9) 2025.08.14
'JAVA' 카테고리의 다른 글
  • JAVA 객체지향 개념 정리
  • JAVA 문법 규칙 및 GitHub 커밋 컨벤션 학습
  • Thymleaf
  • Java 문법 기초
stark77
stark77
하마의 IT 자기개발 이모저모, 백엔드 개발자로 거듭나기
  • stark77
    하마의 개발자 성장일기
    stark77
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 컴퓨터구조와 운영체제
        • 컴퓨터구조
        • 운영체제
      • SQL 기초
      • Spring
        • 백엔드 기초
        • Spring 실습
      • JAVA
        • Java 실습
      • HTML&CSS
        • HTML&CSS 실습
      • Git&GitHub
        • Git&GitHub 실습
      • 내배캠 끄적끄적
        • Today I Learned
      • 유용한 툴 및 사이트 정리
      • 취미
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    BEAN
    백엔드 기초다지기
    객체지향프로그래밍
    String.format
    Java 문법기초
    다형성
    HTML&CSS
    백엔드 기초
    Github
    algorithm
    SpringSecurity
    Spring
    객체지향
    프로세스와 쓰레드
    java
    Til
    JPA
    Spriingboot
    thymleaf
    네트워크 기초
    for문
    git
    웹소켓
    Stomp
    경합조건과 교착상태
    RestTemplate
    jsp
    WebSocket
    실시간 데이터 처리
    MVC
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
stark77
JSP/Servlet 기초
상단으로

티스토리툴바