Scroll indicator done
728x90

# 주석

HTML 주석 : <!-- 주석입니다. -->

JSP 주석 : <%-- 주석입니다. --%>

 

# 지시어

1) page 지시어

현재 JSP 페이지를 컨테이너에서 처리하는 데 필요한 각종 속성을 기술하는 부분

- JSP 페이지 맨 앞에 위치

<%@ page 속성1="속성값1" 속성2="속성값2“ … %>

- 여러 줄에 나뉘어 작성할 수도 있음

<%@ page contentType="text/html;charset=UTF-8"
import="javax.sql.*, java.util.*" errorPage="error.jsp"%>
<%@ page import="java.util.*" %>

 

page 지시어 속성 >

language - 스크립트 언어의 유형 결정 (default : java)

import - JSP 내에 외부 자바 패키지나 클래스를 정함 

ssesion - 세선의 사용 유무 결정 (default : true)

buffer - 버퍼의 크기 결정 (default : 8KB)

isThreadSafe - 단일 스레드 모델을 사용해 동시성 제어 여부 정함 (default : true)

errorPage - 현재 페이지에서 오류가 발생할 경우 호출될 페이지 지정

 

htttp 특징인 비연결성을 보완 >> 1. Cookie  2. Session

Cookie 쿠키 허용, local에서 가지고 있음

Session 세션 아이디 발급, 서버에 저장되어 있음

 

Page 지시어와 JSP 한글 처리 >

1. server.xml 파일에서 정의 - Connector 설정에 URI 요청에 대한 캐릭터셋 지정 가능 (but 소스만 다른 서버에서 실행 시, 한글이 깨질 우려)

2. 각 JSP 파일, Page 지시어의 pageEncoding 속성에서 정의함

3. 각 JSP 파일, Page 지시어의 contentType 속성에서 정의함

 

import >

<%@ page import="java.sql.*,java.util.*" %>

<%@ page import="java.sql.*" %>
<%@ page import="java.util.*" %>

 

session >

- 웹 브라우저와 웹 서버가 지속적인 클라이언트 인식을 위해 필요한 정보를 임시로 저장해두는 방법

- 주로 로그인이나, 장바구니 등을 구현할 때사용

<%@ page session="true" %>

 

errorPage, isErrorPage >

- jsp 파일의 오류 처리

 

[실습1] 에러 페이지 

- error_test.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" errorPage="error.jsp"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type"  content="text/html; charset=UTF-8">
<title>ch05: Error Test </title>
</head>
<body>
<H2>Error 테스트 페이지</H2>
<%
String str = "test"; 
int i = Integer.parseInt(str); 
%>
</body>
</html>

- error.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isErrorPage="true"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type"  content="text/html; charset=UTF-8">
<title>ch05: 에러페이지</title>
</head>
<body>
<center>
<H2>처리중 문제가 발생했습니다</H2>
<HR>
<table>
<tr bgcolor="pink"><td>
관리자에게 문의해 주세요..<BR>
빠른시일내 복구하겠습니다.
<HR>
<%= exception%>
<HR>

</td>
</tr>
</table>
</center>
</body>
</html>

ch05: 에러페이지

 

contentType >

- jsp 페이지를 클라이언트에서 처리하기 위한 콘텐츠의 유형을 지정하는 부분

<%@ page contentType=“application/msword” %> -> msword로 인식해 실행
TEST

 

2) include 지시어

- 현재 jsp 파일에 다른 html이나 jsp 문서를 포함하기 위한 기능을 제공

<%@ include file=“포함할 파일_이름” %>

 

[실습2] 배너 화면 구성

- include_test.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" errorPage="error.jsp"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type"  content="text/html; charset=UTF-8">
<title>ch05: include 지시어 테스트 </title>
</head>
<body>

<div align="CENTER">
<H2> include 지시어 테스트 </H2>
<HR>

<%@ include file="menu.jsp"  %>
<P>
<table border=0 cellpadding=5 cellspacing=1>
	<tr>
		<td><font size=-1><%@include file="news.jsp" %></font></td>
		<td width="20">&nbsp; </td>
		<td><font size=-1><%@include file="shopping.jsp" %></font></td>
	</tr>
</table>
</div>

</body>
</html>

- menu.jsp / news.jsp / shopping.jsp

<!-- menu.jsp -->
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" errorPage="error.jsp"%>
[게임] [쇼핑] [뉴스]

<!-- news.jsp -->
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" errorPage="error.jsp"%>
[최신 뉴스]<HR>
2013.00.00 : 자바 웹 프로그래밍 전면 개정판 출간 !!! <BR>
2013.00.00 : 스프링프레임워크 적용 확산.<BR>


<!-- shopping.jsp -->
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" errorPage="error.jsp"%>
[쇼핑정보] 최신 인기 상품 정보 입니다.<HR>
1. 최신 스마트폰  <BR>
2. 10.1인치 최신 태블릿  PC <BR>

ch05: include 지시어 테스트

 

3) taglib 지시어

- jsp 기능을 확장하기 위해 만들어진 커스텀 태그 라이브러리

<%@ taglib uri=“/META-INF/mytag.tld” prefix=“mytag” %>

 <mytag:GetInfo name=“user1” />

 

# URI와 URL 차이점

URI - Uniform Resource Identifier. 필요로 하는 자원의 위치 정보를 기술하는데 사용

 > URL과의 차이점은 프로토콜, 주소, 포트 번호를 제외한 경로만을 표시한다는 것

 

# action 액션

1. JSP 액션 종류

<jsp:action_name attribute=“value” />

주로, useBean, include 액션, get/setProperty등 자바 클래스와의 연동을 위해 사용

 

Action의 기능 >

- JSP 페이지 간 흐름 제어

- 자바 애플릿 지원

- 자바 빈즈 컴포넌트와 JSP 상호작용 지원

 

Action 종류 >

include - <jsp:include page="xx.jsp" /> 다른 페이지를 현재 페이지에 포함시킴

forward - <jsp:forward page="xx.jsp" /> 이 페이지의 제어를 다른 페이지로 전달

useBean - <jsp:useBean scope="page" id="cls" class="xx.MyBean" /> xx패키지의 MyBean 클래스를 cls 이름으로 page 범위에서 사용할 것을 선언

setProprty

 

2. include 액션

- 다른 파일을 불러온다는 측면에서 include 지시어와 유사

- include 지시어해당 파일을 포함 시킨 후 컴파일, include 액션은 실행 시점에서 해당 파일을 호출하여 결과를 포함

- include 액션은 동적인 페이지를 포함시킬 경우, include 지시어는 잘 바뀌지 않는 정적인 페이지를 포함할 때

 

ex. 

<jsp:include page=“footer.jsp”>
<jsp:param name=“email” value=“test@test.net” />
<jsp:param name=“tel” value=“000-000-0000” />
</jsp:include>

 

[실습3] include 액션 사용하기

- request : 내장 객체의 한 종류, 파라미터 값을 다룰 때 사용

- 소스 보기>> 모두 html 형태

- inlcude_action.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type"  content="text/html; charset=UTF-8">
<title>ch05: include action test</title>
</head>
<body>

<H2>include_action.jsp 에서footer.jsp 호출</H2>
<HR>
include_action.jsp 에서 출력한 메시지 입니다.<BR>

<jsp:include page="footer.jsp">
	<jsp:param name="email" value="test@test.net" />
	<jsp:param name="tel" value="000-000-0000" />
</jsp:include>

</body>
</html>

- footer.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type"  content="text/html; charset=UTF-8">
<title>ch05 :footer.jsp</title>
</head>
<body>
footer.jsp 에서 출력한  메시지 입니다.
<HR>
<%= request.getParameter("email") %>,
<%= request.getParameter("tel") %>

<%
	out.println(request.getParameter("tel"));
%>
</body>
</html>

ch05: include action test

 

3. forward 액션

- include 액션과 유사

- 요청 페이지를 다른 페이지로 전환할 때 사용

- response 내장 객체의 sendRedirect() 와 유사하지만 포워드된 페이지에 파라미터를 전달할 수 있단느 점에 차이가 있음

- 브라우저 URL 창에 최초 요청 페이지가 표시되기 때문에 처리 페이지 정보를 숨기거나 MVC 패턴의 컨트롤러와 같이 특정 기능을 수행 후 다른 페이지로 이동해야 하는 경우 유용하게 사용할 수 있음

ex.

<jsp:forward page=“footer.jsp” />
<jsp:param name=“email” value=“test@test.net” />
<jsp:param name=“tel” value=“000-000-0000” />
</jsp:forward>

 

[실습4] forward 액션 사용하기

- forward_action.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type"  content="text/html; charset=UTF-8">
<TITLE>ch05 : forward action 테스트</TITLE></HEAD>
<BODY>
<H2>forward_action.jsp 에서 footer.jsp 호출</H2>
<HR>
forward_action.jsp 의 모든 내용은 출력되지 않습니다.
<%!
	int a = 10;
%>
<jsp:forward page="footer.jsp">
	<jsp:param name="email" value="test@test.net" />
	<jsp:param name="tel" value="000-000-0000" />
</jsp:forward>
</BODY>
</html>

a 선언 보이지 않음, 소스 보기해도 없음 >> 정보 은닉 시 forward action 을 사용할 수 있음

 

# 선언과 표현식

1. 선언

- JSP가 서블릿으로 변환된 자바 코드에서는 모든 내용이 jspService() 메서드에 들어가기 때문에 JSP 에서 선언한 변수는 로컬 변수가 되고 메서드 안에서 다른 메서드를 선언하는 자바 문법 상 잘못된 것이므로 컴파일 에러 발생

- <%! %> 은 JSP 페이지에서 이러한 제약 사항 없이 멤버 변수와 메서드 선언을 가능케 함

 

2. 표현식

- <%= %> 을 사용해 간단한 데이터 출력이나 메서드 호출에 이용

- ;(세미콜론)을 사용하지 않음

메서드 호출 : <%= calculator() %>
변수 출력 : <%= result %>
사칙 연산과 문자열 결합 : <%= “i+2=“+(i+2)+”입니다” %>

 

# 스크립트릿(Sciptlet)

- JSP 문서 내에 순수 자바 코드를 기술할 수 있는 부분으로 JSP 가장 큰 특징 중 하나

<%
// 로컬 변수 선언이나 프로그램 로직이 올 수 있다. String str = "test";
for (int i=0; i < 10; i++) {
out.println(i);
}
%>

 

[실습5] 데이터 출력 프로그램

- scriptlet1.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" errorPage="error.jsp"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>ch05 : 스크립트릿 테스트</title>
</head>
<body>
<div align="center">
<H2>스크립트릿 테스트1</H2>
<HR>

<%
	for(int i=1;i<10;i++) {
		out.println(i+"<BR>");
	}
%>

</div>
</body>
</html>

- scriptlet2.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" errorPage="error.jsp"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>ch05 : 스크립트릿 테스트</title>
</head>
<body>
<div align="center">
<H2>스크립트릿 테스트1</H2>
<HR>

<%
	for(int i=1;i<10;i++) {
%>
		<%=i %> <BR>
<%
	}
%>
</div>
</body>
</html>

ch05 : 스크립트릿 테스트

 

728x90