[쉽게 배우는 JSP 웹 프로그래밍] 17장 정리
JSTL은 Core, Formatting, Sql, Functions 태그를 제공한다. Core 태그는 변수와 제어 기능, URL 처리 등을 담당하며, Formatting 태그는 문자열이나 컬렉션 처리, 숫자와 날짜 형식화, 다국어 지원 등을 제공한다. Sql 태그는 데이터베이스와 상호작용을 위해 사용되며, Functions 태그는 문자열 처리 함수를 제공한다. 이러한 태그들의 사용법을 익히면 JSTL의 개념을 이해하는 데 도움이 된다.
Mar 05, 2024
JSTL이 제공하는 태그의 종류와 사용법
core01.jsp
<%@ page contentType="text/html; charset=utf-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <html> <head> <title>JSTL</title> </head> <body> browser 변수 값 설정 <c:set var="browser" value="${header['User-Agent']}" /> <br> <c:out value="${browser }" /> <p> browser 변수 값 제거 후 <c:remove var="browser" /> <c:out value="${browser }" /> </body> </html>
core02.jsp
<%@ page contentType="text/html; charset=utf-8"%> <html> <head> <title>JSTL</title> </head> <body> <form method="post" action="core02_process.jsp"> <p>숫자 : <input type="text" name="number"> <p><input type="submit" value="전송"> </form> </body> </html>
core02_process.jsp
<%@ page contentType="text/html; charset=utf-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <html> <head> <title>JSTL</title> </head> <body> <% String number = request.getParameter("number"); %> <c:set var="number" value="<%=number%>" /> <c:catch var="e"> <c:choose> <c:when test="${number%2==0 }"> <c:out value="${number }" />는 짝수입니다. </c:when> <c:when test="${number%2==1 }"> <c:out value="${number }" />는 홀수입니다. </c:when> </c:choose> </c:catch> <c:if test="${e!=null }"> <%=number%>는 숫자가 아닙니다. </c:if> </body> </html>
core03.jsp
<%@ page contentType="text/html; charset=utf-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <html> <head> <title>JSTL</title> </head> <body> <h3>구구단</h3> <table> <c:forEach var="i" begin="1" end="9"> <tr> <c:forEach var="j" begin="1" end="9"> <td width=100>${j }*${i }= ${i*j }</td> </c:forEach> </tr> </c:forEach> </table> </body> </html>
sql01.jsp
<%@ page contentType="text/html; charset=utf-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql"%> <html> <head> <title>JSTL</title> </head> <body> <sql:setDataSource var="dataSource" url="jdbc:mysql://localhost:3306/JSPBookDB" driver="com.mysql.jdbc.Driver" user="root" password="1234" /> <sql:query var="resultSet" dataSource="${dataSource }"> select * from member </sql:query> <table border="1"> <tr> <c:forEach var="columnName" items="${resultSet.columnNames }"> <th width="100"><c:out value="${columnName }" /></th> </c:forEach> </tr> <c:forEach var="row" items="${resultSet.rowsByIndex }"> <tr> <c:forEach var="column" items="${row }" varStatus="i"> <td><c:if test="${column!=null }"> <c:out value="${column }" /> </c:if> <c:if test="${column==null }"> </c:if></td> </c:forEach> </tr> </c:forEach> </table> </body> </html>
sql02.jsp
<%@ page contentType="text/html; charset=utf-8"%> <html> <head> <title>JSTL</title> </head> <body> <form method="post" action="sql02_process.jsp"> <p>아이디 : <input type="text" name="id"> <p>비밀번호 : <input type="text" name="passwd"> <p>이름 : <input type="text" name="name"> <p><input type="submit" value="전송"> </form> </body> </html>
sql02_process.jsp
<%@ page contentType="text/html; charset=utf-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql"%> <html> <head> <title>JSTL</title> </head> <body> <% request.setCharacterEncoding("utf-8"); String id = request.getParameter("id"); String passwd = request.getParameter("passwd"); String name = request.getParameter("name"); %> <sql:setDataSource var="dataSource" url="jdbc:mysql://localhost:3306/JSPBookDB" driver="com.mysql.jdbc.Driver" user="root" password="1234" /> <sql:update dataSource="${dataSource }" var="resultSet"> <%-- insert into member(id,name,passwd) values(?,?,?) <sql:param value="<%=id%>" /> <sql:param value="<%=name%>" /> <sql:param value="<%=passwd%>" /> --%> <%-- update member set name=? where id=? and passwd=? <sql:param value="<%=name%>" /> <sql:param value="<%=id%>" /> <sql:param value="<%=passwd%>" /> --%> delete from member where id=? and passwd=? <sql:param value="<%=id%>" /> <sql:param value="<%=passwd%>" /> </sql:update> <c:import url="sql01.jsp" var="url"/> ${url} </body> </html>
function02.jsp
<%@ page contentType="text/html; charset=utf-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> <html> <head> <title>JSTL</title> </head> <body> <c:set var="texts" value="${fn:split('Hello, Java Server Pages!', ' ')}" /> <c:forEach var="i" begin="0" end="${fn:length(texts)-1 }"> <p>text[${i }] = ${texts[i] } </c:forEach> <p> <c:out value="${fn:join(texts,'-') }" /> </body> </html>
핵심 키워드
- JSTL이 제공하는 태그는 Core태그, Formatting 태그, Sql 태그, Functions 태그가 있다.
- Core 태그는 변수 선언, 삭제 등 변수와 관련된 작업 및 if 문, for 문과 같은 제어 기능, URL 처리로 페이지 이동 기능을 제공한다.
- Formatting 태그는 문자열이나 컬렉션을 처리하는 함수 태그로 숫자, 날짜, 시간 등을 형식화하는 기능, 국제화, 다국어 지원 기능을 제공한다.
- Sql 태그는 데이터베이스와 상호 작용하기 위해 사용하는 태그로 데이터베이스의 데이터 상빕, 수정, 삭제, 조회 기능을 제공한다.
- Functions 태그는 문자열을 처리하는 함수를 제공한다.
결론
해당 코드를 작성하면서 JSTL의 개념, Core 태그의 기능과 사용법, Sql 태그의 기능과 사용법, Functions 태그의 기능과 사용법을 익힐 수 있었다.
Share article