본문 바로가기

안녕하세요!

프로그래밍 언어/JSP

JSP_22-10-28(2)

[ 액션 태그 ]

○ 서버나 클라이언트에게 어던 행동을 하도록 명령하는 태그

○ JSP 페이지에서 페이지와 페이지 사이 제어

○ 다른 페이지의 실행 결과 내용을 현재 페이지에 포함

○ 자버 빈즈(JavaBeans) 등의 다양한 기능 제공

○ XML 형식 <jsp: .../> 사용

forward 다른 페이지로의 이동과 같은 페이지 흐름을 제어
include 외부 페이지의 내용을 포함하거나 페이지를 모듈화
useBean JSP 페이지에 자바빈즈 설정
setProperty 자바빈즈의 프로퍼티 값 설정
getProperty 자바빈즈의 프로퍼티 값 얻어옴
param <jsp:forward>, <jsp:include>, <jsp:plugin> 추가
plugin 웹 브라우저에 자바 애플릿을 실행, 자바 플러그인에 대한 OBJECT 또는 EMBED 태그를 만드는 브라우저별 코드 생성
element 동적 XML 요소 설정
attribute 동적으로 정의된 XML 요소 속성 설정
body 동적으로 정의된 XML 요소 몸체 설정
text JSP 페이지 및 문서에서 템플릿 텍스트를 작성

 

[ forward ]

○ 현재 JSP 페이지에서 다른 페이지로 이동하는 태그

○ JSP 컨테이너는 현재 JSP 페이지에서 forward 액션 태그를 만날 시

    - 그 전까지 출력 버퍼에 저자오디어 있던 내용을 모두 삭제

    - forward 액션 태그에 설정된 페이지로 프로그램의 제어가 이동

○ page 속성값

    - 현재 JSP 페이지에서 이동할 페이지의 외부 파일명

    - 외부 파일은 현재 JSP 페이지와 같은 디렉터리에 있으면 파일명만 설정

    - 그렇지 않을 시, 전체 URL(또는 상대 경로) 설정

○ flush 속성값

    - 설정한 외부 파일로 제어가 이동할 때 현재 JSP 페이지가 지금가지 출력 버퍼에 저장한 결과 처리

    - 기본 값 = false

    - true로 설정 시, 외부 파일로 제어가 이동할 때 현재 JSP 페이지가 지금가지 출력 버퍼에 저장된 내용을 웹 브라우저에        출력하고 버퍼를 비움

 

[ include ]

구분 include 액션 태그 include 디렉티브 태그
처리 시간 요청 시 자원을 포함 번역 시 자원을 포함
기능 별도의 파일로 요청 처리 흐름을 이동 현재 페이지에 삽입
데이터 전달 방법 request 기본 내장 객체나 param 액션 태그를 이용해 파라미터 전달 페이지 내의 변수를 선언한 후 변수에 값을 저장
용도 화면 레이아웃의 일부분을 모듈화할 대 주로 사용 다수의 JSP 웹 페이지에서 공통으로 사용되는 코드나 저작권 같은 문장을 포함하는 경우에 사용
기타 동적 페이지에 사용 정적 페이지에 사용

 

[ param ]

○ 현재 JSP 페이지에서 다른 페이지에 정보를 전달하는 태그

○ 단독으로 사용되지 못하며 <jsp:forward> 혹은 <jsp:include> 태그 내부에 사용

○ 다른 페이지에 여러 개의 정보를 전송해야할 때는 다중의 param 액션 태그 사용

<jsp:forward page="파일명">
    <jsp:param name="매개변수명1" value="매개변수값1" />
    [ <jsp:param name="매개변수명1" value="매개변수값1" /> ... ]
</jsp:forward>

 

[ 자바 빈즈 ]

○ 동적 콘텐츠 개발 위해 자바 코드를 사용해 자바 클래스로 로직을 작성

○ JSP 페이지에서 화면을 표현하기 위한 계산식이나 자료의 처리를 담당하는 자바코드를 다로 분리해 작성하는 것

○ JSP 페이지가 HTML과 같이 쉽고 간단한 코드만으로 구성

○ 작성 규칙

    - 자바 클래스는 java.io.Serializable 인터페이스를 구현해야함

    - 인수가 없는 기본 생성자가 있어야 함

    - 모든 멤버 변수인 프로퍼티는 private 접근 지정자로 설정해야 함

    - 모든 멤버 변수인 프로퍼티는 getter/setter() 메소드가 존재해야 함

      1) getter() : 멤버 변수에 저장된 값을 가져올 수 있는 메소드

      2) setter() : 멤버 변수에 값을 저장할 수 있는 메소드

○ useBean 액션 태그

    - JSP 페이지에서 자바빈즈를 사용하기 위해 실제 자바 클래스를 선언하고 초기화하는 태그

    - id 속성과 scope 속성을 바탕으로 자바빈즈의 객체를 검색하고 객체가 발견되지 않으면 빈 객체 생성

속성 설명
id 자바빈즈를 식별하기 위한 이름
class 패키지 이름을 포함한 자바빈즈 이름, 자바빈즈는 인수가 없는 기존 생성자가 있어야 하며 추상 클래스를 사용할 수 없음
scope 자바빈즈가 저장되는 영역을 설정, page(기본값), request, session, application 중 하나의 값 사용
<jsp:useBean id="member" class="com.dto.MemberBean" scope="page" />

○ setProperty 액션 태그

    - useBean 액션 태그와 함께 자바빈즈의 setter() 메소드에 접근해 자바빈즈의 멤버변수인 프로퍼티 값 저장하는 태그

    - 폼 페이지로부터 전달되는 요청 파라미터의 값을 직접 저장하거나 자바빈즈의 프로퍼티로 변경해 값 저장 가능

    - 모든 자바빈즈 프로퍼티 이름과 동일하게 요청 파라미터 설정 가능

name useBean 태그에 id 속석값으로 설정된 자바빈즈를 식별하기 위한 이름
property 자바빈즈의 프로퍼티 이름, 만약 프로퍼티 이름에 '*'를 사용하면 모든 요청 파라미터가 자바빈즈 프로퍼티의 setter() 메소드에 전달됨을 의미
value 변경할 자바빈즈의 프로퍼티 값, 만약 프로퍼티 값이 null이거나 존재하지 않는 요청 파라미터인 경우에는 setProperty 액션 태그가 무시됨
param 자바빈즈의 프로퍼티 값을 전달하는 요청 파라미터 이름, param과 value 동시에 모두 사용할 수 없으며 하나를 선택해 사용 가능
<jsp:setProperty name="member" property="id" value="admin" />

    - 요청 파라미터 이름과 자바빈즈의 프로퍼티 이름 일치하는 경우

// 폼 페이지
<form action="memberProcess.jsp" method="post">
    <input name="id" value="admin" />
</form>

// jsp 페이지
<jsp:setProperty name="member" property="id" param="id" />

    - 요청 파라미터 이름과 자바빈즈의 프로퍼티 이름 일치하지 않는 경우

// 폼 페이지
<form action="memberProcess.jsp" method="post">
    <input name="userId" value="admin" />
</form>

// jsp 페이지
<jsp:setProperty name="member" property="id" param="userId" />

    - 요청 파라미터 이름과 자바진즈의 프로퍼티 이름이 모두 일치하는 경우

// 폼 페이지
<form action="memberProcess.jsp" method="post">
    <input name="id" value="admin" />
    <input name="name" value="관리자" />
</form>

// jsp 페이지
<jsp:setProperty name="member" property="*"/>

○ getProperty 액션 태그

    - useBean 액션 태그와 함께 자바빈즈의 getter() 메소드에 접근해 자바빈즈의 멤버 변수인 프로퍼티 값 가져오는 태그

    - getProperty 액션 태그 사용

<jsp:getProperty name="member" property="name" />

    - 자바빈즈 프로퍼티 값 출력

<% out.println(member.getName()); %>

 

[ menu.jsp ]

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.util.Date" %>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html" charset="UTF-8">
<title>Welcome</title>
<style>
.main {
	width: 100%;
}

.main .banner {
	width: 100%;
	height: 300px;
	background-color: #d1d1d1;
	text-align: conter;
	line-height: 300px;
}

. main .banner h1 {
	font-size: 5vw;
	font-weight: 400;
}

.main .content {
	width: 100%;
	margin: 0 auto;
	padding: 10px;
	text-align: center;
}

.main .content h3 {
	margin: 0 auto;
	padding: 20px 0;
	font-weight: 100;
}

.main .content p {
	margin-bottom: 30px;
}
</style>
<%!String greenting = "웹 쇼핑몰에 오신 것을 환영합니다";
	String tagLine = "Welcome to Web Market";%>
</head>
<body>
<jsp:include page="header.jsp" />

	<div class="main">

		<div class="banner">
			<div class="container">
				<h1><%=greenting%></h1>
			</div>
		</div>

		<div class="content">
			<div class="container">
				<h3><%=tagLine%></h3>
				<p>
					<%
						Date day = new Date();
						String am_pm;
						int hour = day.getHours();
						int minute = day.getMinutes();
						int second = day.getSeconds();
						if (hour / 12 == 0)
							am_pm = "AM";
						else {
							am_pm = "PM";
							hour = hour - 12;
						}
						String CT = hour + ":" + minute + ":" + second + " " + am_pm;
						out.println("현재 접속 시각 : " + CT + "\n");
					%>
				
				<p>
				<hr>
			</div>
		</div>
	</div>

	<jsp:include page="footer.jsp" />
</body>
</html>

 

[ header.jsp ]

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>header</title>
<style>
* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}

a {
	color: #000;
	text-decoration: none;
}

header {
	background-color: #000;
	width: 100%;
	padding: 10px 20px;
}

header a {
	color: #fff;
	font-weight: 700;
}

.container {
	width: 90%;
	margin: 0 auto;
}
</style>
</head>
<body>
	<header>
		<div class="container">
			<a href="index.jsp">Home</a>
		</div>
	</header>


</body>
</html>
728x90
반응형

'프로그래밍 언어 > JSP' 카테고리의 다른 글

JSP_22-11-01  (0) 2022.11.01
JSP_22.10.31  (0) 2022.10.31
JSP_22-10-28(1)  (0) 2022.10.28
쇼핑몰 연습(1)  (0) 2022.10.28

loading