
추가적인 라이브러리 설치 없이 진행을 위해 4.0 버전 사용
web.xml은 존재하지 않음. 내부적으로 있음

Java Build Path 에 gson 등 설정
커스텀 태그
GNB, LNB 처럼 안바뀌는 부분
페이지의 어떠한 부분이 한 덩어리로 존재하면 좋을 것 같을 때
다른 페이지에서도 재사용 될 때
하나의 태그 처럼 다루면 어떨까?
태그화, 모듈화, 컴포넌트 화, (과거에는 위젯)이라고 한다
NewFile.jsp 전체코드
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>커스텀 태그</title>
</head>
<body>
안녕하세요! :D
<hr>
예제 표
<table border="1" bgcolor="lightblue">
<tr>
<td>apple</td>
<td>사과</td>
</tr>
<tr>
<td>banana</td>
<td>바나나</td>
</tr>
</table>
</body>
</html>

설정 폴더 WEB-INT에 tags 폴더를 추가했다


파일명은 hello
hello.tag 전체코드
<%@ tag language="java" pageEncoding="UTF-8"%>
<!-- tag : 태그 지시어 -->
안녕하세요! :D
NewFile.jsp 전체코드 중
안녕하세요(GNNB 부분) 부분 수정
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib tagdir="/WEB-INF/tags" prefix="teemo" %>
<!-- 태그 라이브러리 지시어 : 나 태그 디렉토리 tags에 있는데 temmo라고 부를게
외부에 있는 자원을 가져올 때는 taglib가 필요하다-->
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>커스텀 태그</title>
</head>
<body>
<teemo:hello/>
<hr>
예제 표
<table border="1" bgcolor="lightblue">
<tr>
<td>apple</td>
<td>사과</td>
</tr>
<tr>
<td>banana</td>
<td>바나나</td>
</tr>
</table>
</body>
</html>
유지보수 용이를 위한
태그 파일을 사용하면 결합도가 낮아진다
: 묘둘화, 태그화, 컴포넌트화를 했기 때문에
응집도가 높아진다
: 관련코드들을 다 한곳에서 관리하기 때문
NewFile 안에 출력하는 테이블 부분도 여러 곳에서 마음에 들어 그 형식을 사용하고 싶을 때
print.tag 전체코드
<%@ tag language="java" pageEncoding="UTF-8"%>
<!-- 변수다~ 라고 알려주는 역할 -->
<%@ attribute name="border" %>
<%@ attribute name="bgcolor" %>
<h1><jsp:doBody/></h1>
<table border="${border}" bgcolor="${bgcolor}">
<tr>
<td>apple</td>
<td>사과</td>
</tr>
<tr>
<td>banana</td>
<td>바나나</td>
</tr>
</table>
jsp:doBody
외부에서 주는 값으로 (결정하는대로) 문장을 써주겠다
doBody : 태그 안에 있는 내용을 의미 ex) 예제코드
attribute name : 내부에서 변수화를 했다
NewFile.jsp 수정된 전체코드
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib tagdir="/WEB-INF/tags" prefix="teemo" %>
<!-- 태그 라이브러리 지시어 : 나 태그 디렉토리 tags에 있는데 temmo라고 부를게
외부에 있는 자원을 가져올 때는 taglib가 필요하다-->
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>커스텀 태그</title>
</head>
<body>
<teemo:hello/>
<hr>
<teemo:print border="10" bgcolor="lightpink">태그 바디</teemo:print>
</body>
</html>
값을 호출하는 쪽에서 준다.
보기 쉽고 코드가 간결해졌다

'JSP' 카테고리의 다른 글
| Servlet vs Action의 역할 (0) | 2025.12.02 |
|---|---|
| XML 설정과 어노테이션 (0) | 2025.12.01 |
| 🍓🍓 xml 파일 설정! | 디자인 패턴 4가지 (MVC, 싱글톤, 팩토리, 템플릿) (0) | 2025.11.27 |
| 프론트 컨트롤러 FrontController (0) | 2025.11.27 |
| 🍄 JQuery 아이디 중복 확인하기 (0) | 2025.11.25 |