Back-End/Servlet

Servlet ■ JSP

SIKIDA 2024. 8. 25. 15:02
728x90

 

프로그래밍 기초 - Data Response

Data Response

 

프로그래밍 기초 - Data Response

서블릿에서 사용자에게 데이터를 응답하는 방식은 크게 두 가지로 나눌 수 있습니다:

  1. HTML 코드를 모두 작성하여 응답하는 방식
    이 방식은 아주 오래된 방식으로, JSP가 나오기 이전에 주로 사용되었습니다.
  2. 데이터(변수)를 응답하는 방식
    JSP를 활용하여 데이터를 응답하며, HTML 코드는 JSP가 담당합니다.

 

Data Response - 옛날 방식 예제

옛날 방식에서는 서블릿 코드 내에서 모든 HTML을 작성하여 클라이언트에게 응답했습니다. 예를 들어, GetSubmitController에서 HTML 코드를 작성하여 응답하는 방식입니다.

Data Response - 요즘의 자바 방식 (JSP)

현대의 자바 응답 방식에서는 JSP를 사용하여 데이터를 응답합니다. 이전에 사용했던 GetRequestController에서 작성한 out 코드를 모두 삭제하고, JSP 파일을 사용해 HTML과 자바 코드를 함께 작성합니다.

Data Response - JSP 파일 생성

src/main/webapp/ex1 폴더에서 우클릭 후 New -> JSP File을 선택하여 dataResponse.jsp 파일을 생성합니다. 이후, HTML 안에 자바 코드를 작성할 수 있는 스크립틀릿(Scriptlet)을 사용하여 코드를 작성합니다.

 

 

JSP(Java Server Page)

JSP는 서버 사이드 언어로, HTML에서 자바 코드를 사용할 수 있게 해줍니다. JSP는 HTML 코드 안에 자바 코드를 삽입하는 방식으로, 옛날 방식인 자바 코드 안에 HTML을 삽입하는 것과는 반대의 개념입니다.

 

 

JSP 지시자(Directive)

JSP 환경을 설정하는 태그는 <%@ %>입니다. 예를 들어, 인코딩 방식을 지정할 때 이 태그를 사용합니다.

JSP 선언문(Declaration)

<%! %> 태그를 사용하여 변수나 메소드를 선언하고 사용할 수 있습니다.

 

JSP 스크립틀릿(Scriptlet)

<% %> 태그를 사용하여 JSP 파일 내에 자바 코드를 직접 삽입할 수 있습니다.

JSP 표현식(Expression)

<%= %> 태그를 사용하여 자바 코드를 HTML에 삽입할 수 있습니다.

 

 

JSP의 단점

  1. 서버로부터 값을 받아올 때, 여러 단계를 거쳐야 합니다.
    • A. 스크립틀릿에서 getAttribute로 값을 받아와 변수에 할당
    • B. 표현식을 사용하여 저장된 변수를 HTML에 삽입
  2. 분기 처리가 많아질수록 코드의 가독성이 떨어지고 개발이 불편해집니다.

JSP 단점 - 1 예시

하나의 객체를 받아와 사용하는데, 여러 번의 절차를 거쳐야 합니다. 예를 들어:

  1. Member 클래스 임포트
  2. 값을 전달받아 변수로 저장
  3. member 객체의 getName 메소드를 호출

 

JSP 단점 극복을 위한 EL(Expression Language)

JSP 2.0에서 추가된 EL(Expression Language)은 기존의 불편한 방식 대신, 변수를 불러오는 작업을 단 한 줄로 해결할 수 있게 해줍니다. 예를 들어 ${ } 구문을 사용하여 변수를 호출할 수 있습니다.

 

JSP 단점 - 2 예시

if문을 사용할 때, JSP에서 가독성이 떨어지고 관리하기 어려운 코드가 됩니다.

JSTL(JSP Standard Tag Library)

JSTL을 사용하면, 자바 문법을 HTML 태그처럼 사용할 수 있어 가독성이 높아지고 코드 관리가 용이해집니다.

 

JSTL 태그 문법

JSTL에서 자주 사용되는 주요 태그는 다음과 같습니다

 

 

JSTL 태그 문법 예시

 

c:set 예시 : num1 변수에 값 1을 할당합니다.

 

c:out 예시

1. value에 값이 있고, 태그 사이에 값이 없을 경우: value 값 출력

2. value에 값이 없을 경우: 태그 사이의 값 출력

3. value에 값이 있고, 태그 사이에 값이 있을 경우: value 값 출력

4. value에 값이 없고, 태그 사이에도 값이 없을 경우: 빈 값 출력

 

c:if 예시

조건식에 해당하면, 안에 있는 HTML 태그를 보여줍니다. 여러 개의 조건이 필요한 경우 c:if를 반복적으로 사용하는 대신 c:choose를 사용하는 것이 좋습니다.

 

 

c:choose 예시

여러 개의 조건식을 비교할 때 적합합니다. when의 모든 조건식이 틀렸을 경우 otherwise가 실행됩니다. otherwise의 사용은 필수가 아니며, when은 여러 개 사용할 수 있습니다.

* 자바의 else if ~ else 문과 비슷함

c:forEach 예시

items에 있는 배열을 var에 있는 변수로 하나씩 저장하며 반복문을 실행합니다.

 

c:forEach 속성

 

c:forEach 반복 횟수 지정

items 속성 없이 begin과 end로 시작과 끝 값을 정해주면, 반복 횟수를 지정하여 반복문을 실행시킬 수 있습니다.

 

 

 

오늘은 Servlet에 JSP 관련하여 정리하고 공부를 진행하였습니다!! 즐거운 주말 마무리 잘하세요!! 그럼 20000!!

 

'Back-End > Servlet' 카테고리의 다른 글

Servlet ■ MVC 개요  (0) 2024.08.28
Servlet ■ 폴더 구조 관리하기  (0) 2024.08.26
Servlet ■ URL Mapping - GET,POST  (0) 2024.08.22
Servlet ■ Servlet 사용하기  (0) 2024.08.21
Servlet ■ Servlet 이란?  (0) 2024.08.19