일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 대덕인재개발원
- 컬렉션프레임워크
- 메소드오버로딩
- GRANT VIEW
- 사용자예외클래스생성
- 정수형타입
- 오라클
- 제네릭
- cursor문
- exception
- 생성자오버로드
- 자바
- 추상메서드
- 컬렉션 타입
- 어윈 사용법
- 참조형변수
- EnhancedFor
- 인터페이스
- 집합_SET
- 자동차수리시스템
- 다형성
- 한국건설관리시스템
- 환경설정
- 객체 비교
- oracle
- abstract
- NestedFor
- 예외처리
- Java
- 예외미루기
- Today
- Total
거니의 velog
(15) 표현 언어와 JSTL 6 본문
(6) <c:url> 태그를 이용한 실습
* <c:url> 태그는 JSP 페이지에서 URL 정보를 저장하는 역할을 하며, 사용 형식은 다음과 같다.
<c:url var="변수이름" value="URL경로" [scope="scope 속성 중 하나"]
[ <c:param name="매개변수이름" value="전달값" ]>
...
</c:url>
* 여기서 var는 생성된 URL이 저장될 변수를, value는 생성할 URL을, scope는 scope 속성의 값을 지정한다.
1. urlTest.jsp를 다음과 같이 작성한다. <c:url> 태그를 이용해 다른 페이지로 이동하면서 데이터를 전달한다. 따라서 이동할 페이지로 전달할 데이터가 많을 경우에 사용하면 편리하다.
<%@ page language="java" contentType="text/html; charset=UTF-8"
import="java.util.*"
pageEncoding="UTF-8"
isELIgnored="false" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<c:set var="contextPath" value="${pageContext.request.contextPath}" />
<!-- c:url태그로 이동할 페이지를 설정한다. -->
<!-- c:param으로 이동할 페이지로 전달할 데이터를 설정한다. -->
<c:url var="url1" value="/test01/member1.jsp">
<c:param name="id" value="hong" />
<c:param name="pwd" value="1234" />
<c:param name="name" value="홍길동" />
<c:param name="email" value="hong@test.com" />
</c:url>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title> c:url 태그 실습</title>
</head>
<body>
<%-- <a href='${contextPath }/test01/member1.jsp'>회원정보출력</a> --%>
<a href='${url1}'>회원정보출력</a> <!-- c:url 태그의 변수 이름을 간단하게 설정한다. -->
</body>
</html>
2. 다음의 주소로 요청한 후 회원정보출력을 클릭한다.
- http://localhost:8090/pro14/test03/urlTest.jsp
3. 매개변수로 전달된 회원 정보를 출력한다.
(7) <c:redirect> 태그를 이용한 실습
* <c:redirect> 태그는 지정된 JSP 페이지로 리다이렉트할 때 사용한다. response.sendRedirect() 기능과 동일하며, <c:redirect> 태그로 리다이렉트할 때 매개변수를 전달할 수 있다. 사용 형식은 다음과 같다.
<c:redirect url="redirect할 URL">
[ <c:param name="매개변수이름" value="전달값" ]
...
</c:redirect>
* 여기서 url은 리다이렉트 될 URL이 저장될 변수를 지정한다.
1. <c:redirect> 태그를 이용해 회원 정보 출력창으로 리다이렉트한다. 리다이렉트하면서 회원 정보를 매개변수로 전달한다.
[redirectTest.jsp]
<%@ page language="java" contentType="text/html; charset=UTF-8"
import="java.util.*"
pageEncoding="UTF-8"
isELIgnored="false" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
request.setCharacterEncoding("UTF-8");
%>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>리다이렉트 페이지</title>
</head>
<body>
<!-- 리다이렉트할 페이지를 설정한다. -->
<!-- 리다이렉트할 페이지로 전달할 매개변수를 설정한다. -->
<c:redirect url="/test01/member1.jsp">
<c:param name="id" value="${'hong'}" />
<c:param name="pwd" value="${'1234'}" />
<c:param name="name" value="${'홍길동'}" />
<c:param name="email" value="${'hong@test.com'}" />
</c:redirect>
</body>
</html>
2. 다음의 주소로 요청하면 test01/member1.jsp로 리다이렉트된다. 그러면서 매개변수로 전달한 회원 정보를 출력한다.
- http://localhost:8090/pro14/test03/redirectTest.jsp
(8) <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 lang="ko">
<head>
<meta charset="UTF-8">
<title>회원 등록창</title>
</head>
<body>
<form method="post" action="member9.jsp">
<h1 style="text-align:center">회원 등록창</h1>
<table align="center">
<tr>
<td width="200">
<p align="right">아이디</p>
</td>
<td width="400"><input type="text" name="id"></td>
</tr>
<tr>
<td width="200">
<p align="right">비밀번호</p>
</td>
<td width="400"><input type="password" name="pwd"></td>
</tr>
<tr>
<td width="200">
<p align="right">이름</p>
</td>
<td width="400">
<p><input type="text" name="name"></p>
</td>
</tr>
<tr>
<td width="200">
<p align="right">이메일</p>
</td>
<td width="400">
<p><input type="text" name="email"></p>
</td>
</tr>
<tr>
<td width="200">
<p> </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");
%>
<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:8090/pro14/test03/memberForm.jsp
4. 그러면 <c:out> 태그를 이용해 전송된 회원 정보를 출력한다.
* 프로그래밍을 하다 보면 > 또는 < 그리고 작은따옴표(')나 큰따옴표(") 같은 특수 문자를 출력해야 하는 경우가 있다. 그런데 이런 특수 문자들은 HTML 태그에도 사용되므로 각각의 특수 문자에 지정된 문자를 이용해서 브라우저에 출력해야 한다.
* 다음 표는 각 특수 문자가 어떤 문자로 변화되는지 보여준다.
<escapeXml이 false일 때 변환되는 문자>
특수 문자 | 변환된 문자 |
< | < |
> | > |
& | & |
' | ' |
" | " |
. . . | . . . |
* 간단히 특수 문자 사용 예를 실습해 보자.
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="<" escapeXml="true" /> <!-- escapeXml 속성이 true이므로 value의 <는 그대로 화면에 출력된다. -->
<c:out value="<" escapeXml="false" /> <!-- escapeXml 속성이 false이므로 value의 <에 해당하는 특수 문자로 변환되어 화면에 출력된다. -->
<c:out value=">" escapeXml="true" />
<c:out value=">" escapeXml="false" />
<c:out value="&" escapeXml="true" />
<c:out value="&" escapeXml="false" />
<c:out value="'" escapeXml="true" />
<c:out value="'" escapeXml="false" />
<c:out value=""" escapeXml="true" />
<c:out value=""" escapeXml="false" />
</pre>
</h2>
</body>
</html>
2. 다음의 주소로 요청하여 결과를 확인한다.
- http://localhost:8090/pro14/test03/escapeXml.jsp
* 지금까지 일반적으로 많이 사용하는 코어 라이브러리에 대해 알아봤다. 그 외 <c:import> 태그는 <jsp:include>와 같은 기능을 수행한다.
'Java > Java_JSP' 카테고리의 다른 글
(17) 표현 언어와 JSTL 8 (0) | 2023.09.20 |
---|---|
(16) 표현 언어와 JSTL 7 (0) | 2023.09.18 |
(14) 표현 언어와 JSTL 5 (0) | 2023.09.15 |
(13) 표현 언어와 JSTL 4 (0) | 2023.09.15 |
(12) 표현 언어와 JSTL 3 (0) | 2023.09.14 |