JSP에서 쿠키(Cookie) 작동 원리 쿠키는 일반적으로 HTTP 응답 헤더를 통해 설정됩니다. 물론 자바스크립트(JavaScript)를 사용해 브라우저에서 직접 쿠키를 생성할 수도 있지만, JSP 환경에서는 서버가 헤더를 통해 쿠키를 전달하는 방식이 표준입니다. 쿠키를 설정하는 JSP 페이지는 다음과 같은 형태의 HTTP 헤더를 클라이언트에 전송합니다. HTTP/1.1 200 OK Date: Fri, 04 Feb 2000 21:03:38 GMT Server: Apache/1.3.9 (UNIX) PHP/4.0b3 Set-Cooki
JSP에서 쿠키를 설정하는 과정은 크게 세 단계로 이루어집니다. 각 단계를 예제 코드와 함께 자세히 살펴보겠습니다.1단계: Cookie 객체 생성Cookie 생성자에 쿠키 이름과 값을 문자열 형태로 전달하여 객체를 생성합니다.Cookie cookie = new Cookie(key,value);이때 쿠키의 이름과 값에는 공백이나 다음과 같은 특수 문자를 사용할 수 없으므로 주의해야 합니다.[ ] ( ) = , / ? @ : ;2단계: 쿠키 유효 기간 설정setMaxAge 메서드를 사용하면 쿠키가 유지될 시간을 초 단위로 지정할 수
JSP에서 쿠키를 읽으려면 먼저 HttpServletRequest 객체의 getCookies() 메서드를 호출하여 javax.servlet.http.Cookie 객체 배열을 만들어야 합니다. 그다음 반복문으로 이 배열을 순회하면서 각 쿠키에 대해 getName()과 getValue() 메서드를 호출하면 쿠키 이름과 대응하는 값을 손쉽게 확인할 수 있습니다.쿠키 읽기 예제앞선 예제에서 설정했던 쿠키를 실제로 읽어보겠습니다. 아래 코드를 main.jsp 파일로 저장한 후 웹 브라우저에서 접속해 보세요.<html>
JSP에서 쿠키를 삭제하는 것은 생각보다 훨씬 간단합니다. 기존 쿠키를 삭제하려면 아래의 세 단계만 순서대로 따라 하면 됩니다. 이미 존재하는 쿠키를 읽어와 Cookie 객체에 저장합니다. setMaxAge() 메서드를 사용해 쿠키의 유효 기간을 0으로 설정합니다. 유효 기간이 0이 되면 해당 쿠키는 즉시 만료되어 삭제됩니다. 수정된 쿠키를 다시 응답(response) 헤더에 추가합니다. 다음 예제는 first_name이라는 이름의 기존 쿠키를 삭제하는 전체 과정을 보여줍니다. 코드를 실행한 후 main.jsp에 다시 접속하면
HTTP는 상태 비저장(stateless) 프로토콜입니다. 즉, 클라이언트가 웹 페이지를 요청할 때마다 웹 서버에 새로운 연결을 열고, 서버는 이전 클라이언트 요청에 대한 어떠한 기록도 자동으로 보관하지 않습니다.그렇다면 로그인 상태나 장바구니처럼 사용자 정보를 여러 요청에 걸쳐 유지해야 하는 경우에는 어떻게 해야 할까요? 이번 글에서는 웹 클라이언트와 웹 서버 간의 세션을 유지하는 대표적인 방법들을 살펴보겠습니다.웹 클라이언트와 서버 간 세션 유지 방법1. 쿠키(Cookies)웹 서버는 각 웹 클라이언트에게 고유한 세션 ID를 쿠
JSP는 요청을 처리할 때 getParameter() 메서드를 사용하여 단순 텍스트 파라미터를 읽고, getInputStream() 메서드를 사용하여 클라이언트에서 전송되는 바이너리 데이터 스트림을 읽습니다. JSP로 폼 데이터 읽기 JSP는 상황에 따라 아래의 메서드들을 활용하여 폼(form) 데이터를 자동으로 파싱합니다. getParameter(): request.getParameter() 메서드를 호출하여 폼 파라미터의 값을 가져옵니다. getParameterValues(): 체크박스처럼 하나의 파라미터가 여러 번 나타나 여
JavaServer Pages(JSP) API는 HTML 또는 XML 태그와 유사한 형태의 커스텀 JSP 태그를 직접 정의할 수 있도록 지원합니다. 그리고 태그 라이브러리(tag library)란 이처럼 커스텀 동작을 구현하는 사용자 정의 태그들의 모음을 의미합니다.taglib 지시문의 역할taglib 지시문은 JSP 페이지에서 커스텀 태그 집합을 사용하겠다고 선언하는 역할을 합니다. 구체적으로 다음 세 가지 기능을 수행합니다.JSP 페이지가 특정 커스텀 태그 라이브러리를 사용한다는 것을 선언해당 태그 라이브러리가 위치한 경로(UR
웹 개발에서 폼 데이터나 쿼리 문자열을 처리하는 것은 JSP의 기본적인 기능 중 하나입니다. 이 글에서는 GET 방식으로 URL을 통해 전달된 요청 파라미터를 JSP에서 읽어오는 방법을 알아보겠습니다.GET 방식으로 값 전달하기다음과 같은 URL은 GET 방식을 사용하여 두 개의 값을 HelloForm 프로그램으로 전달합니다.href=https://localhost:8080/main.jsp?first_name=ZARA&last_name=ALIURL에서 first_name=ZARA와 last_name=ALI라는 두 개의 파라미
JSP에서 GET 메소드로 폼 데이터 읽기다음은 HTML FORM과 제출(submit) 버튼을 사용하여 두 개의 값을 전달하는 예제입니다. 이 입력값은 앞서 살펴본 것과 동일한 JSP 파일인 main.jsp에서 처리하게 됩니다.<html> <body> <form action = "main.jsp" method = "GET"> First Name:
JSP(JavaServer Pages) API를 활용하면 HTML이나 XML 태그와 유사한 형태의 커스텀 JSP 태그를 직접 정의할 수 있습니다. 그리고 태그 라이브러리(tag library)란 이처럼 사용자가 정의한 태그들이 모여 특정 동작을 수행하도록 구현된 태그의 집합을 의미합니다.taglib 지시문이란?taglib 지시문(directive)은 JSP 페이지에서 커스텀 태그 집합을 사용하겠다고 선언하는 역할을 합니다. 이 지시문은 세 가지 기능을 수행합니다.JSP 페이지가 커스텀 태그 집합을 사용한다고 선언태그 라이브러리의 위
커스텀 태그(Custom Tag)는 사용자가 직접 정의하는 JSP 언어 요소입니다. 커스텀 태그를 포함한 JSP 페이지가 서블릿으로 변환될 때, 해당 태그는 태그 핸들러(tag handler)라는 객체에 대한 연산으로 변환됩니다. 이후 웹 컨테이너(Web Container)가 JSP 페이지의 서블릿을 실행할 때 이 연산들을 호출하게 됩니다.JSP 태그 확장 기능을 활용하면 JavaServer Page에 바로 삽입할 수 있는 새로운 태그를 만들 수 있습니다. 특히 JSP 2.0 스펙부터는 커스텀 태그를 더 쉽게 작성할 수 있도록 Si
JSP 커스텀 태그에 속성 추가하기 사용자 정의(커스텀) 태그에는 다양한 속성(attribute)을 함께 사용할 수 있습니다. 상위 JSP 페이지에서 전달된 속성 값을 받아 처리하려면, 커스텀 태그 클래스가 JavaBean의 setter 메서드와 동일한 형태의 setter 메서드를 구현해야 합니다. 1. Setter 메서드 구현하기 아래 예제는 message라는 속성을 받아 출력하는 HelloTag 클래스입니다. package com.tutorialspoint; import javax.servlet.jsp.tagext.*; im
JSP 사용자 정의 태그의 속성이란?JSP에서 사용자 정의 태그(Custom Tag)를 작성할 때는 TLD(Tag Library Descriptor) 파일에 해당 태그가 받아들일 속성(attribute)을 명확하게 정의해야 합니다. 속성을 올바르게 정의하면 태그의 재사용성이 높아지고, JSP 페이지에서 태그를 사용할 때 어떤 값을 전달해야 하는지 개발자가 쉽게 파악할 수 있습니다.속성을 정의할 때는 아래와 같은 표준 속성 요소들을 포함하는 것이 좋습니다.태그 속성의 주요 구성 요소번호속성 및 용도1name속성의 이름을 정의하는 요소
웹 브라우저에서 GET 또는 POST 방식으로 전달된 입력값을 처리하는 JSP 프로그램인 main.jsp의 예제를 살펴보겠습니다.main.jsp 코드 분석사실 이전에 살펴본 JSP 코드와 달라진 부분은 없습니다. 단지 매개변수를 전달하는 방식만 변경되었을 뿐, JSP 프로그램으로 전달되는 바이너리 데이터는 없기 때문입니다. 파일 업로드처럼 바이너리 데이터 스트림을 직접 읽어야 하는 경우의 파일 처리 개념은 별도의 챕터에서 자세히 다루겠습니다.<html> <head>
체크박스(checkbox)는 사용자가 여러 개의 항목을 동시에 선택해야 할 때 사용하는 폼 요소입니다. 라디오 버튼과 달리 두 개 이상의 옵션을 중복 선택할 수 있어, 설문조사나 관심 분야 선택 등 다양한 웹 폼에서 널리 활용됩니다. 1. 체크박스가 포함된 HTML 폼 만들기 다음은 세 개의 체크박스를 가진 간단한 HTML 폼 예제입니다. 파일 이름은 CheckBox.htm으로 저장하면 됩니다. <html> <body> <form action =
JSP의 import 속성이란?JSP에서 import 속성은 자바(Java)의 import 문과 동일한 기능을 수행하며, 동작 방식도 거의 같습니다. 이 속성의 값으로는 JSP 페이지에서 사용하고자 하는 패키지 이름을 지정합니다.import 속성은 page 디렉티브(directive) 안에 작성하며, 외부 라이브러리나 API의 클래스를 JSP 페이지 내에서 자유롭게 사용할 수 있도록 해줍니다.단일 패키지 가져오기예를 들어 JDBC 프로그래밍에 필수적인 java.sql.* 패키지를 가져오려면 다음과 같이 page 디렉티브를 작성합니다
JSP의 info 속성이란 무엇인가?JSP에서 info 속성은 해당 JSP 페이지에 대한 간단한 설명(문자열)을 지정할 때 사용하는 page 지시어의 속성입니다. 이 속성에 작성한 내용은 페이지의 저작자, 작성 목적, 버전 등 페이지에 대한 부가 정보를 담는 용도로 활용됩니다.info 속성은 서버나 컨테이너가 직접 화면에 출력하지는 않지만, 서블릿으로 변환된 JSP 페이지에서 getServletInfo() 메서드를 통해 해당 설명 문자열을 가져올 수 있습니다. 따라서 페이지를 관리하거나 문서화할 때 유용하게 사용됩니다.info 속성
JSP의 isThreadSafe 속성이란? isThreadSafe 속성은 JSP 페이지가 스레드로부터 안전(thread-safe)한지 여부를 지정하는 페이지 지시어(page directive)입니다. 기본적으로 모든 JSP는 스레드 안전하다고 간주되며, 이 경우 JSP 엔진은 여러 클라이언트의 요청을 동시에 멀티스레드 방식으로 처리할 수 있습니다. 반면 isThreadSafe를 false로 설정하면, JSP 엔진은 한 번에 하나의 스레드만 해당 JSP를 실행하도록 보장합니다. 즉, 모든 요청이 순차적으로 처리되기 때문에 여러 스레드
JSP의 language 속성 개요JSP(JavaServer Pages)에서 language 속성은 해당 JSP 페이지의 스크립트를 작성할 때 사용되는 프로그래밍 언어를 지정하는 page 디렉티브(page directive)입니다.이 속성을 통해 JSP 컨테이너는 페이지 내의 스크립틀릿(scriptlet), 표현식(expression), 선언문(declaration) 등을 어떤 언어 문법으로 해석해야 하는지 판단하게 됩니다.사용 예시일반적으로 JSP 페이지는 Java를 스크립팅 언어로 사용하기 때문에, language 옵션은 다음과
JSP 세션(session) 속성이란 무엇인가?JSP의 session 속성은 해당 JSP 페이지가 HTTP 세션을 사용할지 여부를 지정하는 페이지 디렉티브(page directive) 옵션입니다. 이 속성을 통해 개발자는 세션 기능의 사용 여부를 명시적으로 제어할 수 있습니다.session=true로 설정하면 JSP 페이지에서 내장(built-in) session 객체에 접근할 수 있으며, 반대로 session=false로 설정하면 내장 session 객체를 사용할 수 없습니다.세션 속성 설정 예시다음 지시문을 추가하면 JSP 페이