JSP
Servlet(.java, not POJO), JSP(내장객체, <jsp:>액션태그)
(POJO는 Plain Old Java Object의 약자로 번역하면 평범한 옛날 자바 객체를 의미
Servlet 클래스는 우리 마음대로 만들 수 없으며, 반드시 요구되는 규칙에 맞게 클래스를 만들어야됨 )
뷰에서 자바를 줄이기 위함
EL(${}) 선언을 줄여줌 / JSTL 제어문 대신 씀
JSTL(JavaServer Pages Standard Tag Library)은 JSP에서 사용되는 표준 라이브러리임 JSP에서 자바 코드를 줄이고 가독성을 높이기 위해 사용함 주요 목적은 "View를 View답게" 만들어서 디자이너들이 자바 코드 없이도 작업할 수 있게 하는
자바 아카이브 파일과 라이브러리
- .jar 파일은 자바 아카이브 파일로, 라이브러리나 애플리케이션을 배포할 때 사용됨
- 예를 들어, jsoup은 웹 크롤링을 위한 라이브러리이고, ojdbc6는 Oracle DBMS와 연결하기 위한 JDBC 드라이버
JSP에서 사용되는 주요 요소
- Servlet은 자바 코드로 작성된 서버 측 프로그램, .java 파일 형태로 존재
- JSP는 HTML 안에 자바 코드를 넣을 수 있지만, 이를 줄이기 위해 **EL(Expression Language)**과 JSTL을 사용
- EL은 ${}로 표현하며, 변수 값이나 표현식을 쉽게 사용할 수 있게 해줌
- JSTL은 제어문 대신 사용되며, JSP 페이지에서 자바 코드를 최소화하려는 목적
JSTL 예제
- c:forEach: for문을 대신해 사용
<c:forEach var="data" items="${datas}"></c:forEach>
자바 코드로 작성하면
for(ProductDTO data : (ArrayList<ProductDTO>)request.getAttribute("datas"))
- c:choose: if-else 문을 대체하는 태그
<c:choose>
<c:when test="조건식1"></c:when>
<c:when test="조건식2"></c:when>
<c:otherwise></c:otherwise>
</c:choose>
지시어와 태그
- <%@ page %>: 페이지 지시어, prefix는 태그의 앞머리
- <%@ taglib %>: 태그 라이브러리를 선언하는 지시어
View의 역할
- JSP의 목적은 View를 작성하는 것이므로, 가독성을 위해 자바 로직을 최소화해야 함
- 로직이나 제어문이 많으면 디자이너들이 작업하기 어려워짐
- EL, JSTL, 커스텀 태그는 View에서 자바 코드를 줄여 가독성을 높이는 역할
application 객체는 서버 측에서 브라우저가 종료되어도 유지됨, 이는 서버 전체에서 공유되는 정보를 담을 때 유용
커스텀 태그는 JSTL로 해결할 수 없는 복잡한 로직을 단순화하기 위해 사용함 커스텀 태그를 사용하면 JSP 페이지에서 자바 코드를 거의 작성하지 않고도 복잡한 기능을 구현할 수 있음 예를 들어, 반복적인 UI 컴포넌트나 공통적인 로직을 태그로 만들어서 재사용 가능하게 함
커스텀 태그는 기본적으로 자바 클래스로 작성되고 태그 라이브러리 디스크립터(TLD) 파일에서 정의됨 JSP에서 사용하기 위해 taglib 지시어로 선언한 후 태그를 사용할 수 있음
장점은 코드의 재사용성과 가독성 향상 특히 팀 단위 작업에서 디자이너와 개발자가 역할을 명확히 분리할 수 있음 디자이너는 복잡한 자바 코드를 이해할 필요 없이 커스텀 태그만 사용해서 작업할 수 있고 개발자는 복잡한 비즈니스 로직을 커스텀 태그로 캡슐화해서 유지보수를 쉽게 할 수 있음
커스텀 태그는 태그 핸들러 클래스를 작성한 후 TLD 파일을 통해 JSP에 등록하는 방식으로 구현됨 Java EE 표준에 따라 구현하면 여러 프로젝트에서 재사용 가능함
결론적으로, 커스텀 태그는 복잡한 자바 로직을 단순화하고 View의 가독성을 높이기 위해 JSP에서 매우 유용하게 사용됨 팀 프로젝트에서 특히 강력한 도구가 될 수 있음
정리하자면, JSP에서 EL과 JSTL, 커스텀 태그를 활용해 View의 가독성을 높이고 자바 코드를 최소화하자는 것.
'javaboiii의 Web > JSP' 카테고리의 다른 글
Web - JSP 페이지 처리 (0) | 2024.08.12 |
---|---|
Web - JSP 페이지 이동 및 데이터 전송 방법 (0) | 2024.08.09 |
Web - JSP 예제2 (0) | 2024.08.08 |
Web - JSP) 내장 객체 (0) | 2024.08.07 |
Web - JSP 예제1 (0) | 2024.08.07 |