2.3 Functions 태그
Functions 태그는 다음과 같은 태그를 제공한다.
Functions 태그의 종류
태그 | 설명 |
contains() | 검색 대상 문자열의 포함 여부를 확인한다. |
containslgnoreCase() | 대 소문자에 관계없이 검색 대상 문자열의 포함 여부를 확인한다. |
startsWith() | 특정 문자열로 시작하는지 여부를 확인한다. |
endsWith() | 특정 문자열로 끝나는지 여부를 확인한다. |
escapeXml() | 문자열에 포함된 특수문자를 특정 코드로 변환한다. |
indexOf() | 검색 대상 문자열의 첫 위치 값을 반환한다. |
split() | 문자열을 설정한 구분자로 분리하여 배열 형태로 반환한다. |
join() | 배열 형태의 문자열을 설정한 구분자로 연결하여 반환한다. |
length() | 문자열의 길이를 반환한다. |
substring() | 특정 위치의 문자열을 반환한다. |
substringAfter() | 설정한 문자열 이후의 부분에 있는 문자열을 반환한다. |
substringBefore() | 설정한 문자열 이전의 부분에 있는 문자열을 반환한다. |
replace() | 검색 대상 문자열을 설정한 문자열로 변경하여 반환한다. |
toLowerCase() | 모두 소문자로 변환한다. |
toUpperCase() | 모두 대문자로 변환한다. |
trim() | 문자열 앞뒤의 공백을 제거하여 반환한다. |
예제- <fn:contains> 와 <fn:containslgnoreCase> 태그로 문자열 검색하기
JSPBook/WebContent/ch17/functions01.jsp
<%@ page contentType="text/html; charset=utf-8"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<html>
<head>
<title>JSTL</title>
</head>
<body>
<p> java 문자열 검색
<p>Hello, Java Server Pages ! => ${fn:contains("Hello, Java Server Pages!", "java") }
<p>Hello, Java Server Pages ! => ${fn:containsIgnoreCase("Hello, Java Server Pages!", "java") }
</body>
</html>
예제- <fn:split> 와 <fn:join> 태그로 문자열 검색하기
JSPBook/WebContent/ch17/functions02.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>
<!--설정된 문자열 'Hello, Java Server Pages!'에서 공백문자를 기준으로 무자열을
분리하도록 <fn:split>태그를 작성.-->
<c:set var="texts" value="${fn:split('Hello, Java Servere Pages!', ' ') }"/>
<!--위 행에서 분리된 문자열의 길이만큼 반복하여 분리된 문자열을 출력하도록 작성. -->
<c:forEach var="i" begin="0" end="${fn:length(texts)-1 }">
<p>text[${i}] = ${texts[i]}
</c:forEach>
<!--10 행에서 분리된 문자열과 '-' 을 연결하도록 <fn:join> 태그를 작성. -->
<p><c:out value="${fn:join(texts,'-')}"/>
</body>
</html>
03 웹 쇼핑몰 회원가입, 수정, 탈퇴하기
웹 쇼핑몰의 데이터베이스에 회원 관리 테이블 만들기
WebMarket/WebContent/resources/sql/product.sql
create table member(
id varchar(10) not null,
password varchar(10) not null,
name varchar(10) not null,
gender varchar(4),
birth varchar(10),
mail varchar(30),
phone varchar(20),
address varchar(90),
regist_day varchar(50),
primary key(id)
) default CHARSET=utf8;
데이터베이스에 회원 정보 등록하기
메뉴페이지 수정하기
WebMarket/WebContent/menu.jsp
<%@ page contentType="text/html; charset=utf-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
String sessionId = (String) session.getAttribute("sessionId");
%>
<nav class ="navbar navbar-expand navbar-dark bg-dark">
<div class="container">
<div class="navbar-header">
<a class="navbar-brand" href="./welcome.jsp">
Home
</a>
</div>
<div>
<ul class="navbar-nav mr-auto">
<c:choose>
<c:when test="${empty sessionId}">
<li class="nav-item">
<a class="nav-link" href="<c:url value="/member/loginMember.jsp"/>">로그인</a>
</li>
<li class="nav-item">
<a class="nav-link" href="<c:url value="/member/addMember.jsp"/>">회원 가입</a>
</li>
</c:when>
<c:otherwise>
<li style="padding-top: 7px; color: white">[<%=sessionId %>님]</li>
<li class="nav-item">
<a class="nav-link" href="<c:url value="/member/logoutMember.jsp"/>">로그아웃</a>
</li>
<li class="nav-item">
<a class="nav-link" href="<c:url value="/member/updateMember.jsp"/>">회원 수정</a>
</li>
</c:otherwise>
</c:choose>
<li class="nav-item"> <a class="nav-link" href="/products.jsp">상품 목록</a></li>
<li class="nav-item"> <a class="nav-link" href="/addProduct.jsp">상품 등록</a></li>
<li class="nav-item"><a class="nav-link" href="/editProduct.jsp?edit=update"> 상품 수정</a>
<li class="nav-item"><a class="nav-link" href="/editProduct.jsp?edit=delete"> 상품 삭제</a>
</ul>
</div>
</div>
</nav>
회원 가입과 관련된 페이지를 작성합니다.
회원 가입 페이지
WebMarket/WebContent/member/addMember.jsp
<%@ page contentType="text/html; charset=utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<html>
<head>
<link rel="stylesheet" href="../resources/css/bootstrap.min.css" />
<script type="text/javascript">
function checkForm() {
if (!document.newMember.id.value) {
alert("아이디를 입력하세요.");
return false;
}
if (!document.newMember.password.value) {
alert("비밀번호를 입력하세요.");
return false;
}
if (document.newMember.password.value != document.newMember.password_confirm.value) {
alert("비밀번호를 동일하게 입력하세요.");
return false;
}
}
</script>
<title>회원 가입</title>
</head>
<body>
<jsp:include page="/menu.jsp" />
<div class="jumbotron">
<div class="container">
<h1 class="display-3">회원 가입</h1>
</div>
</div>
<div class="container">
<form name="newMember" class="form-horizontal" action="processAddMember.jsp" method="post" onsubmit="return checkForm()">
<div class="form-group row">
<label class="col-sm-2 ">아이디</label>
<div class="col-sm-3">
<input name="id" type="text" class="form-control" placeholder="id" >
</div>
</div>
<div class="form-group row">
<label class="col-sm-2">비밀번호</label>
<div class="col-sm-3">
<input name="password" type="text" class="form-control" placeholder="password" >
</div>
</div>
<div class="form-group row">
<label class="col-sm-2">비밀번호확인</label>
<div class="col-sm-3">
<input name="password_confirm" type="text" class="form-control" placeholder="password confirm" >
</div>
</div>
<div class="form-group row">
<label class="col-sm-2">성명</label>
<div class="col-sm-3">
<input name="name" type="text" class="form-control" placeholder="name" >
</div>
</div>
<div class="form-group row">
<label class="col-sm-2">성별</label>
<div class="col-sm-10">
<input name="gender" type="radio" value="남" /> 남
<input name="gender" type="radio" value="여" /> 여
</div>
</div>
<div class="form-group row">
<label class="col-sm-2">생일</label>
<div class="col-sm-4 ">
<input type="text" name="birthyy" maxlength="4" placeholder="년(4자)" size="6">
<select name="birthmm">
<option value="">월</option>
<option value="01">1</option>
<option value="02">2</option>
<option value="03">3</option>
<option value="04">4</option>
<option value="05">5</option>
<option value="06">6</option>
<option value="07">7</option>
<option value="08">8</option>
<option value="09">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
</select> <input type="text" name="birthdd" maxlength="2" placeholder="일" size="4">
</div>
</div>
<div class="form-group row ">
<label class="col-sm-2">이메일</label>
<div class="col-sm-10">
<input type="text" name="mail1" maxlength="50">@
<select name="mail2">
<option>naver.com</option>
<option>daum.net</option>
<option>gmail.com</option>
<option>nate.com</option>
</select>
</div>
</div>
<div class="form-group row">
<label class="col-sm-2">전화번호</label>
<div class="col-sm-3">
<input name="phone" type="text" class="form-control" placeholder="phone" >
</div>
</div>
<div class="form-group row">
<label class="col-sm-2 ">주소</label>
<div class="col-sm-5">
<input name="address" type="text" class="form-control" placeholder="address">
</div>
</div>
<div class="form-group row">
<div class="col-sm-offset-2 col-sm-10 ">
<input type="submit" class="btn btn-primary " value="등록 " >
<input type="reset" class="btn btn-primary " value="취소 " onclick="reset()" >
</div>
</div>
</form>
</div>
</body>
</html>
회원 가입 처리 페이지
WebMarket/WebContent/member/processAddMember.jsp
<%@ page contentType="text/html; charset=utf-8"%>
<%@ page import="java.util.*"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql"%>
<%
request.setCharacterEncoding("UTF-8");
String id = request.getParameter("id");
String password = request.getParameter("password");
String name = request.getParameter("name");
String gender = request.getParameter("gender");
String year = request.getParameter("birthyy");
String month = request.getParameterValues("birthmm")[0];
String day = request.getParameter("birthdd");
String birth = year + "/" + month + "/" + day;
String mail1 = request.getParameter("mail1");
String mail2 = request.getParameterValues("mail2")[0];
String mail = mail1 + "@" + mail2;
String phone = request.getParameter("phone");
String address = request.getParameter("address");
Date currentDatetime = new Date(System.currentTimeMillis());
java.sql.Date sqlDate = new java.sql.Date(currentDatetime.getTime());
java.sql.Timestamp timestamp = new java.sql.Timestamp(currentDatetime.getTime());
%>
<sql:setDataSource var="dataSource"
url="jdbc:mysql://localhost:3306/WebMarketDB"
driver="com.mysql.jdbc.Driver" user="root" password="177100" />
<sql:update dataSource="${dataSource}" var="resultSet">
INSERT INTO member VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
<sql:param value="<%=id%>" />
<sql:param value="<%=password%>" />
<sql:param value="<%=name%>" />
<sql:param value="<%=gender%>" />
<sql:param value="<%=birth%>" />
<sql:param value="<%=mail%>" />
<sql:param value="<%=phone%>" />
<sql:param value="<%=address%>" />
<sql:param value="<%=timestamp%>" />
</sql:update>
<c:if test="${resultSet>=1}">
<c:redirect url="resultMember.jsp?msg=1" />
</c:if>
회원 가입 완료 페이지
WebMarket/WebContent/member/resultMember.jsp
<%@ page contentType="text/html; charset=utf-8"%>
<html>
<head>
<link rel="stylesheet" href="../resources/css/bootstrap.min.css" />
<title>회원 정보</title>
</head>
<body>
<jsp:include page="/menu.jsp" />
<div class="jumbotron">
<div class="container">
<h1 class="display-3">회원정보</h1>
</div>
</div>
<div class="container" align="center">
<%
String msg = request.getParameter("msg");
if (msg != null) {
if (msg.equals("0"))
out.println(" <h2 class='alert alert-danger'>회원정보가 수정되었습니다.</h2>");
else if (msg.equals("1"))
out.println(" <h2 class='alert alert-danger'>회원가입을 축하드립니다.</h2>");
else if (msg.equals("2")) {
String loginId = (String) session.getAttribute("sessionId");
out.println(" <h2 class='alert alert-danger'>" + loginId + "님 환영합니다</h2>");
}
} else {
out.println("<h2 class='alert alert-danger'>회원정보가 삭제되었습니다.</h2>");
}
%>
</div>
</body>
</html>
회원 로그인, 로그아웃과 관련된 페이지를 작성합니다.
회원 로그인 페이지
WebMarket/WebContent/member/loginMember.jsp
<%@ page contentType="text/html; charset=utf-8"%>
<html>
<head>
<link rel="stylesheet" href="../resources/css/bootstrap.min.css" />
<title>Login</title>
</head>
<body>
<jsp:include page="/menu.jsp" />
<div class="jumbotron">
<div class="container">
<h1 class="display-3">로그인</h1>
</div>
</div>
<div class="container" align="center">
<div class="col-md-4 col-md-offset-4">
<h3 class="form-signin-heading">Please sign in</h3>
<%
String error = request.getParameter("error");
if (error != null) {
out.println("<div class='alert alert-danger'>");
out.println("아이디와 비밀번호를 확인해 주세요");
out.println("</div>");
}
%>
<form class="form-signin" action="processLoginMember.jsp" method="post">
<div class="form-group">
<label for="inputUserName" class="sr-only">User Name</label> <input
type="text" class="form-control" placeholder="ID" name='id'
required autofocus>
</div>
<div class="form-group">
<label for="inputPassword" class="sr-only">Password</label> <input
type="password" class="form-control" placeholder="Password"
name='password' required>
</div>
<button class="btn btn btn-lg btn-success btn-block" type="submit">로그인</button>
</form>
</div>
</div>
</body>
</html>
회원 로그인 처리 페이지
WebMarket/WebContent/member/processLoginMember.jsp
<%@ page contentType="text/html; charset=utf-8"%>
<%@ page import="java.util.*"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql"%>
<%
request.setCharacterEncoding("UTF-8");
String id = request.getParameter("id");
String password = request.getParameter("password");
%>
<sql:setDataSource var="dataSource"
url="jdbc:mysql://localhost:3306/WebMarketDB"
driver="com.mysql.jdbc.Driver" user="root" password="177100" />
<sql:query dataSource="${dataSource}" var="resultSet">
SELECT * FROM MEMBER WHERE ID=? and password=?
<sql:param value="<%=id%>" />
<sql:param value="<%=password%>" />
</sql:query>
<c:forEach var="row" items="${resultSet.rows}">
<%
session.setAttribute("sessionId", id);
%>
<c:redirect url="resultMember.jsp?msg=2" />
</c:forEach>
<c:redirect url="loginMember.jsp?error=1" />
회원 로그아웃 페이지
WebMarket/WebContent/member/logoutMember.jsp
<%@ page contentType="text/html; charset=utf-8"%>
<%
session.invalidate();
response.sendRedirect("loginMember.jsp");
%>
회원 정보 수정, 회원 탈퇴와 관련된 페이지를 작성합니다.
회원 정보 수정 페이지
WebMarket/WebContent/member/updateMember.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>
<link rel="stylesheet" href="../resources/css/bootstrap.min.css" />
<%
String sessionId = (String) session.getAttribute("sessionId");
%>
<sql:setDataSource var="dataSource"
url="jdbc:mysql://localhost:3306/WebMarketDB"
driver="com.mysql.jdbc.Driver" user="root" password="177100" />
<sql:query dataSource="${dataSource}" var="resultSet">
SELECT * FROM MEMBER WHERE ID=?
<sql:param value="<%=sessionId%>" />
</sql:query>
<title>회원 수정</title>
</head>
<body onload="init()">
<jsp:include page="/menu.jsp" />
<div class="jumbotron">
<div class="container">
<h1 class="display-3">회원 수정</h1>
</div>
</div>
<c:forEach var="row" items="${resultSet.rows}">
<c:set var="mail" value="${row.mail}" />
<c:set var="mail1" value="${mail.split('@')[0]}" />
<c:set var="mail2" value="${mail.split('@')[1]}" />
<c:set var="birth" value="${row.birth }" />
<c:set var="year" value="${birth.split('/')[0]}" />
<c:set var="month" value="${birth.split('/')[1]}" />
<c:set var="day" value="${birth.split('/')[2]}" />
<div class="container">
<form name="newMember" class="form-horizontal"
action="processUpdateMember.jsp" method="post"
onsubmit="return checkForm()">
<div class="form-group row">
<label class="col-sm-2 ">아이디</label>
<div class="col-sm-3">
<input name="id" type="text" class="form-control" placeholder="id"
value="<c:out value='${row.id }'/>" />
</div>
</div>
<div class="form-group row">
<label class="col-sm-2">비밀번호</label>
<div class="col-sm-3">
<input name="password" type="text" class="form-control"
placeholder="password" value="<c:out value='${row.password }'/>" >
</div>
</div>
<div class="form-group row">
<label class="col-sm-2">비밀번호확인</label>
<div class="col-sm-3">
<input name="password_confirm" type="text" class="form-control"
placeholder="password_confirm" >
</div>
</div>
<div class="form-group row">
<label class="col-sm-2">성명</label>
<div class="col-sm-3">
<input name="name" type="text" class="form-control"
placeholder="name" value="<c:out value='${row.name }'/>" >
</div>
</div>
<div class="form-group row">
<label class="col-sm-2">성별</label>
<div class="col-sm-10">
<c:set var="gender" value="${row.gender }" />
<input name="gender" type="radio" value="남" <c:if test="${gender.equals('남')}"> <c:out value="checked" /> </c:if> >남
<input name="gender" type="radio" value="여" <c:if test="${gender.equals('여')}"> <c:out value="checked" /> </c:if> >여
</div>
</div>
<div class="form-group row">
<label class="col-sm-2">생일</label>
<div class="col-sm-4 ">
<input type="text" name="birthyy" maxlength="4" placeholder="년(4자)" size="6" value="${year}">
<select name="birthmm" id="birthmm">
<option value="">월</option>
<option value="01">1</option>
<option value="02">2</option>
<option value="03">3</option>
<option value="04">4</option>
<option value="05">5</option>
<option value="06">6</option>
<option value="07">7</option>
<option value="08">8</option>
<option value="09">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
</select> <input type="text" name="birthdd" maxlength="2" placeholder="일" size="4" value="${day}">
</div>
</div>
<div class="form-group row ">
<label class="col-sm-2">이메일</label>
<div class="col-sm-10">
<input type="text" name="mail1" maxlength="50" value="${mail1}">@
<select name="mail2" id="mail2">
<option>naver.com</option>
<option>daum.net</option>
<option>gmail.com</option>
<option>nate.com</option>
</select>
</div>
</div>
<div class="form-group row">
<label class="col-sm-2">전화번호</label>
<div class="col-sm-3">
<input name="phone" type="text" class="form-control" placeholder="phone" value="<c:out value='${row.phone}'/>">
</div>
</div>
<div class="form-group row">
<label class="col-sm-2 ">주소</label>
<div class="col-sm-5">
<input name="address" type="text" class="form-control" placeholder="address" value="<c:out value='${row.address}'/>">
</div>
</div>
<div class="form-group row">
<div class="col-sm-offset-2 col-sm-10 ">
<input type="submit" class="btn btn-primary" value="회원수정 ">
<a href="deleteMember.jsp" class="btn btn-primary">회원탈퇴</a>
</div>
</div>
</form>
</div>
</c:forEach>
</body>
</html>
<script type="text/javascript">
function init() {
setComboMailValue("${mail2}");
setComboBirthValue("${month}");
}
function setComboMailValue(val) {
var selectMail = document.getElementById('mail2');
for (i = 0, j = selectMail.length; i < j; i++) {
if (selectMail.options[i].value == val) {
selectMail.options[i].selected = true;
break;
}
}
}
function setComboBirthValue(val) {
var selectBirth = document.getElementById('birthmm');
for (i = 0, j = selectBirth.length; i < j; i++){
if (selectBirth.options[i].value == val){
selectBirth.options[i].selected = true;
break;
}
}
}
function checkForm() {
if (!document.newMember.id.value) {
alert("아이디를 입력하세요.");
return false;
}
if (!document.newMember.password.value) {
alert("비밀번호를 입력하세요.");
return false;
}
if (document.newMember.password.value != document.newMember.password_confirm.value) {
alert("비밀번호를 동일하게 입력하세요.");
return false;
}
}
</script>
회원 정보 수정 처리 페이지
WebMarket/WebContent/member/processUpdateMember.jsp
<%@ page contentType="text/html; charset=utf-8"%>
<%@ page import="java.util.*"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql"%>
<%
request.setCharacterEncoding("UTF-8");
String id = request.getParameter("id");
String password = request.getParameter("password");
String name = request.getParameter("name");
String gender = request.getParameter("gender");
String year = request.getParameter("birthyy");
String month = request.getParameterValues("birthmm")[0];
String day = request.getParameter("birthdd");
String birth = year + "/" + month + "/" + day;
String mail1 = request.getParameter("mail1");
String mail2 = request.getParameterValues("mail2")[0];
String mail = mail1 + "@" + mail2;
String phone = request.getParameter("phone");
String address = request.getParameter("address");
Date currentDatetime = new Date(System.currentTimeMillis());
java.sql.Date sqlDate = new java.sql.Date(currentDatetime.getTime());
java.sql.Timestamp timestamp = new java.sql.Timestamp(currentDatetime.getTime());
%>
<sql:setDataSource var="dataSource"
url="jdbc:mysql://localhost:3306/WebMarketDB"
driver="com.mysql.jdbc.Driver" user="root" password="177100" />
<sql:update dataSource="${dataSource}" var="resultSet">
UPDATE MEMBER SET PASSWORD=?, NAME=?, GENDER=?, BIRTH=?, MAIL=?, PHONE=?, ADDRESS=? WHERE ID=?
<sql:param value="<%=password%>" />
<sql:param value="<%=name%>" />
<sql:param value="<%=gender%>" />
<sql:param value="<%=birth%>" />
<sql:param value="<%=mail%>" />
<sql:param value="<%=phone%>" />
<sql:param value="<%=address%>" />
<sql:param value="<%=id%>" />
</sql:update>
<c:if test="${resultSet>=1}">
<c:redirect url="resultMember.jsp?msg=0" />
</c:if>
회원 탈퇴 페이지
WebMarket/WebContent/member/deleteMember.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"%>
<%
String sessionId = (String) session.getAttribute("sessionId");
%>
<sql:setDataSource var="dataSource"
url="jdbc:mysql://localhost:3306/WebMarketDB"
driver="com.mysql.jdbc.Driver" user="root" password="177100" />
<sql:update dataSource="${dataSource}" var="resultSet">
DELETE FROM member WHERE id = ?
<sql:param value="<%=sessionId%>" />
</sql:update>
<c:if test="${resultSet>=1}">
<c:import var="url" url="logoutMember.jsp" />
<c:redirect url="resultMember.jsp" />
</c:if>
JSP 표준 태그 라이브러리 요약
01 JSTL 의 개요
- JSTL 은 JSP 페이지에서 스크립트 요소로 인한 코드의 복잡함을 해결하기 위한 일종의 사용자 정의 태그의 표준이다. JSP 페이지에 JSP 스크립트 요소와 HTML 코드를 혼용하면 편리하게 개발할 수 있으나 코드의 복잡성이 증가되는 것이 문제이다. 따라서 JSP 페이지의 로직을 담당하는 부분인 if, for, while, 데이터베이스 처리 등과 관련된 코드를 JSTL 로 대치하여 코드를 깔끔하게 하고 가독성을 좋게 하는 것이다.
02 JSTL이 제공하는 태그의 종류
태그 | 설명 |
Core 태그 | 변수 선언, 삭제 등 변수와 관련된 작업 및 if 문 , for 문과 같은 제어기능, URL 처리로 페이지 이동 기능을 제공한다. |
Formatting 태그 | 문자열이나 컬렉션을 처리하는 함수 태그로 숫자, 날짜, 시간등을 형식화 하는 기능, 국제화, 다국어 지원 기능을 제공한다. |
Sql 태그 | 데이터베이스와 상호 작용하기 위해 사용하는 태그로 데이터베이스의 데이터 삽입, 수정, 삭제, 조회 기능을 제공한다. |
Functions 태그 | 문자열을 처리하는 함수를 제공한다. |
'JSP, Servlet, MySQL > JSP - webmarket' 카테고리의 다른 글
JSP Servlet 웹 MVC : 게시판 만들기 2 (2) | 2024.03.13 |
---|---|
JSP Servlet 웹 MVC : 게시판 만들기 (1) | 2024.03.12 |
JSP Servlet JSP 표준 태그 라이브러리 : 회원가입, 수정, 탈퇴하기 (0) | 2024.03.11 |
JSP Servlet JDBC로 데이터베이스와 JSP 연동 : 상품 조회, 등록, 수정, 삭제하기 5 (0) | 2024.03.07 |
JSP Servlet JDBC로 데이터베이스와 JSP 연동 : 상품 조회, 등록, 수정, 삭제하기 4 (0) | 2024.03.07 |