프로그래밍 기초 - Data Response
Data Response
프로그래밍 기초 - Data Response
서블릿에서 사용자에게 데이터를 응답하는 방식은 크게 두 가지로 나눌 수 있습니다:
- HTML 코드를 모두 작성하여 응답하는 방식
이 방식은 아주 오래된 방식으로, JSP가 나오기 이전에 주로 사용되었습니다. - 데이터(변수)를 응답하는 방식
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의 단점
- 서버로부터 값을 받아올 때, 여러 단계를 거쳐야 합니다.
- A. 스크립틀릿에서 getAttribute로 값을 받아와 변수에 할당
- B. 표현식을 사용하여 저장된 변수를 HTML에 삽입
- 분기 처리가 많아질수록 코드의 가독성이 떨어지고 개발이 불편해집니다.
JSP 단점 - 1 예시
하나의 객체를 받아와 사용하는데, 여러 번의 절차를 거쳐야 합니다. 예를 들어:
- Member 클래스 임포트
- 값을 전달받아 변수로 저장
- 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 |