프로그래밍 언어/자바 웹

<c:out> 태그를 이용한 실습

· 코딩마이데이

<c:out> 태그는 화면에 지정한 값을 출력해 주는 태그입니다. 표현 언어와 기능은 거의 동일하지만 기본값 설정 기능 등을 제공하므로 더 편리하게 사용할 수 있습니다. 사용 형식은 다음과 같습니다.

 

<c:out value="출력값" default="기본값" [escapeXml="boolean값"] />

 

여기서 value는 출력된 값을, default는 value 속성에 지정된 값이 없을 때 출력할 기본값을, escapeXml은 escape 문자를 반환하는 역할을 합니다(생략할 수 있으며 true).

 

1. 다음은 회원 가입창에서 입력한 회원 정보를 전달받아 <c:out> 태그를 이용해 화면에 출력하는 예제입니다. 다음과 같이 memberForm.jsp를 작성하여 회원 가입창에서 회원 정보를 입력한 후 member9.jsp를 전달합니다.

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
   <meta charset="UTF-8">
   <title>회원 등록창</title>
<body>
	<form method="post"   action="member9.jsp">
		<h1  style="text-align:center">회원 등록창</h1>
		<table  align="center">
		    <tr>
		       <td width="200"><p align="right">아이디</td>
		       <td width="400"><input type="text" name="id"></td>
		    </tr>
		    <tr>
		        <td width="200"><p align="right">비밀번호</td>
		        <td width="400"><input type="password"  name="pwd"></td>
		    </tr>
		    <tr>
		        <td width="200"><p align="right">이름</td>
		        <td width="400"><p><input type="text"  name="name"></td>
		    </tr>
		    <tr>
		        <td width="200"><p align="right">이메일</td>
		        <td width="400"><p><input type="text"  name="email"></td>
		    </tr>
		    <tr>
		        <td width="200"><p>&nbsp;</p></td>
		        <td width="400">
					<input type="submit" value="가입하기">
					<input type="reset" value="다시입력">
				</td>
		    </tr>
		</table>
	</form>
</body>
</html>

 

2. member9.jsp를 다음과 같이 작성합니다. <c:out> 태그를 이용해 전송된 매개변수 값들을 출력합니다.

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"
    isELIgnored="false" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
  request.setCharacterEncoding("UTF-8");
%>  
<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>회원 정보 출력창 </title>
</head>
<body>
	<table align="center" border="1" >
	    <tr align="center" bgcolor="lightgreen">
	      <td width="7%" ><b>아이디</b></td>
	      <td width="7%" ><b>비밀번호</b></td>
	      <td width="7%" ><b>이름</b></td>
	      <td width="7%"><b>이메일</b></td>
		</tr>
		<c:choose>
			<c:when test="${empty param.id}">
				<tr align="center">
					<td colspan=5>아이디를 입력하세요!!</td>
				</tr>
			</c:when>
			<c:otherwise>
				<tr align="center">
					<td><c:out value="${param.id}" /></td>
			      	<td><c:out value="${param.pwd}"  /></td>
			      	<td><c:out value="${param.name}" /></td>
			      	<td><c:out value="${param.email}" /></td>
				</tr>
			</c:otherwise>
		</c:choose>
	</table>
</body>
</html>

 

3. http:localhost:8080/pro14/test03/memberForm.jsp로 요청하여 회원 가입창에서 회원 정보를 입력한 후 가입하기를 클릭합니다.

회원 가입창에서 회원 정보 입력 후 가입하기 클릭

 

 

4. 그러면 <c:out> 태그를 이용해 전송된 회원 정보를 출력합니다.

회원 정보 출력

 

프로그래밍을 하다 보면 > 또는 < 그리고 작음따옴표(')나 큰따옴표(") 같은 특수 문자를 출력해야 하는 경우가 있습니다. 그런데 이런 특수 문자들은 HTML 태그에도 사용되므로 각각의 특수 문자에 지정된 문자를 이용해서 브라우저에 출력해야 합니다.

다음 표는 각 특수 문자가 어떤 문자로 변환되는지 보여줍니다.

특수 문자 변환된 문자
< &lt;
> &gt;
& &amp;
' &#039;
" &#034;
... ...

 

간단히 특수 문자 사용 예를 실습해 보겠습니다.

1. escapeXml.jsp를 다음과 같이 작성합니다. <c:out> 태그의 escapeXml 속성을 이용해 변환된 문자를 특수 문자로 변환합니다.

<%@ page language="java" contentType="text/html; charset=UTF-8"
     import="java.io.*"
    pageEncoding="UTF-8"
    isELIgnored="false" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
  request.setCharacterEncoding("UTF-8");
%>
<!DOCTYPE html>
<html>
<head>
	<meta charset=”UTF-8">
	<title>escapeXml 실습하기</title>
</head>
<body>
	<h2>escapeXml 변환하기</h2>
	<h2>
		<pre>
			<c:out  value="&lt;" escapeXml="true" />
			<c:out  value="&lt;" escapeXml="false" />
			
			<c:out  value="&gt;" escapeXml="true" />
			<c:out  value="&gt;" escapeXml="false" />
			
			<c:out  value="&amp;" escapeXml="true" />
			<c:out  value="&amp;" escapeXml="false" />
		
			<c:out  value="&#039;" escapeXml="true" />
		  	<c:out  value="&#039;" escapeXml="false" />
		 
		  	<c:out  value="&#034;" escapeXml="true" />
		  	<c:out  value="&#034;" escapeXml="false" />
		</pre>
	</h2>
</body>
</html>

 

2. http:localhost:8080/pro14/test03/escapeXml.jsp로 요청하여 결과를 확인합니다.

실행 결과

 

지금까지 일반적으로 많이 사용하는 코어 라이브러리에 대해 알아봤습니다. 그 외 <c:import> 태그는 <jsp:include>와 같은 기능을 수행합니다.