티스토리 뷰

정리 노트/JSP

8주차-4일

eyoadgkn 2023. 11. 30. 10:38

액션 태그
액션태그

서버나 클라이언트에게 어떤 행동을 하도록 명령하는 태그로 스크립트 태그, 주석, 디렉티브 태그와 함께 JSP 페이지를 구성하는 태그입니다. 여기서 액션 태그는 JSP의 페이지에서 페이지와 페이지 사이를 제어하거나 다른 페이지의 실행 결과 내용을 현재 페이지에 포함하거나, 자바빈즈 등의 다양한 기능을 제공합니다.

forward 액션 태그의 기능 및 사용법

forward 액션 태그는 현재 JSP 페이지에서 다른 페이지로 이동하는 태그로 JSP 컨테이너는 현재 JSP 페이지에서 forward 액션 태그를 만나면 그 전까지 출력 버퍼에 저장이 되어 있던 내용을 모두 삭제를 합니다. 그 후에 액션 태그에 설정된 페이지로 프로그램의 제어가 이동을 합니다.

<jsp:forward page: "파일명"/> 

여기서 반드시 태그는 닫아주어야 하며, page는 이동할 외부의 페이지를 일컫습니다.

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h2>forward 액션 태그</h2>
	<jsp:forward page="forward_date.jsp"/>
	<p>--------------------
</body>
</html>
<!-- forward_date -->
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<p>오늘의 날짜 및 시간
	<p><%=(new java.util.Date()).toLocaleString()%>
</body>
</html>

 

 

include 액션 태그

Include 액션 태그는 include 디렉티브 태그처럼 현재 JSP 페이지의 특정 영역에 외부파일의 내용을 포함하는 태그입니다.

<jsp:include page=”파일명” flush=”false”/>

Page의 속성 값은 현재 JSP 페이지 내에 포함할 내용을 가진 외부 파일명을 이야기합니다. Forward 액션 태그는 해당 페이지로 이동을 하지만 include 액션 태그는 해당 페이지를 외부에서 특정 선택 영역에 포함을 시킵니다.

Flush 속성 값은 설정한 외부 파일로 제어가 이동을 할 때 현재 JSP 페이지가 지금까지 출력 버퍼에 저장한 결과를 처리합니다. True일 경우 외부 파일로 제어가 이동을 할 때 현재 JSP 페이지가 지금까지 출력 버퍼에 저장된 내용을 웹 브라우저에 출력하고 출력 버퍼를 비웁니다.(다른말로 비우면서 HTML페이지로 밀어낸다.)

*외부 파일은 현재 JSP 페이지와 같은 디렉터리에 있으면 파일명만 설정, 그게 아니라면 전체 URL or 상대 경로 설정을 해줘야 합니다.

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

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h2>include 액션 태그</h2>
	<jsp:include page = "include_date.jsp" flush="true"/>
	<p>--------------------
</body>
</html>

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<p>오늘의 날짜 및 시각
	<p><%=(new java.util.Date()).toLocaleString() %>
</body>
</html>

 

param 액션 태그

Param 액션 태그는 현재 JSP 페이지에서 다른 페이지에 정보를 전달하는 태그를 의미합니다.
이 태그는 단독으로 사용이 불가하며, forward include 태그의 내부에 사용이 됩니다. 또한, 다른 페이지에 여러 개의 정보를 전송해야 할 때는 다중의 param 액션 태그를 사용할 수가 있습니다.

<jsp:forward page=”파일명”>

            <jsp:param name=”매개변수명1” value=”매개변수값1” />

           <jsp:param name=”매개변수명2” value=”매개변수값2” />

</jsp:forward>

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h3>param 액션 태그</h3>
	<jsp:forward page = "param01_data.jsp">
		<jsp:param name="id" value="admin"/>
		<jsp:param name="name" value ='<%=java.net.URLEncoder .encode("관리자") %>' />
	</jsp:forward>
	<p>Java Server Page
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<p> 아이디 :<%=request.getParameter("id") %>
		<%
			String name = request.getParameter("name");
		%>
	<p> 이 름 : <%=java.net.URLDecoder.decode(name)%>
	
</body>
</html>

외부 파일 param01_data 내용을 출려하기 위해 forward 액션태그의 page 속성을 작성합니다.
후에 매개변수 id와 값을 전송하기 위해 param 액션 태그를 작성합니다.
매개변수 name과 값을 전송하기 위해 param 액션 태그를 작성하는데, 한글이 꺠지지 않도록 인코딩을 해줍니다.

전송된 id값과 name값을 받도록 request 내장 객체의 getParameter() 메서드를 작성합니다.
name
값이 출력이 되도록 표현문 태그를 작성. 디코드메서드를 사용합니다.

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h3>param 액션 태그</h3>
	<jsp:include page ="param02_data.jsp">
		<jsp:param name="title" value='<%= java.
		net.URLEncoder.encode("오늘의 날짜와 시각")%>' />
		<jsp:param name="date" value="<%=java.util.Calendar.getInstance().
		getTime()%>" />
	</jsp:include>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%
		String title = request.getParameter("title");
	%>
	<h3><%=java.net.URLDecoder.decode(title) %></h3>
	Today is :<%=request.getParameter("date") %>
		
	
</body>
</html>

자바빈즈 액션 태그

자바빈즈는 동적 콘텐츠 개발을 위해 자바 코드를 사용해 자바 클래스로 로직을 작성하는 방법을 말합니다. JSP 페이지에서 화면을 표현하기 위한 계산식이나 자료의 처리를 담당하는 자바코드를 따로 분리하여 작성하는 것이 자바빈즈입니다. 데이터 표현을 목적으로 하는 자바 클래스이므로 기존의 자바 클래스와 동일하게 작성을 하는데, 자바빈즈는 데이터를 담는 멤버 변수인 property와 데이터를 가져오거나 저장하는 메서드로 구성이 됩니다.

자바빈즈의 작성할 때에는 해당 클래스는 java.io.Serializable 인터페이스를 구현해야 하고, 인수가 없는 기본 생성자가 있어야 합니다. 또한 모든 멤버 변수인 propertyprivate로 설정해야하며, getter/setter() 메서드가 존재해야합니다.

 

useBean 액션태그

JSP 페이지에서 자바빈즈를 사용하기 위해 실제 자바 클래스를 선언하고, 초기화를 하는 태그를 의미합니다. 설정된 id 속성과 scope 속성을 바탕으로 자바빈즈의 객체를 검색하며, 발견이 되지 않는다면 빈 객체를 생성합니다.

<jsp:useBean id=”자바빈즈 식별이름  class =”자바빈즈 이름” scope=”범위” />

Id는 자바빈즈를 식별하기 위한 이름입니다.
class
는 패키지 이름을 포함한 자바빈즈의 이름입니다.
scope
는 자바빈즈가 저장되는 영역을 설정합니다. Page(기본 값), request, sesstion, application 중 하나의 값을 사용합니다.

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<jsp:useBean id="date" class="java.util.Date"/>
	<p>
	<%
		out.print("오늘의 날짜 및 시각");
	%>
	<p><%=date%>
</body>
</html>

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<jsp:useBean id="bean" class="jspbook2.calculator" />
	<%
		int m = bean.process(5);
		out.print("5의 3제곱 : "+m);
	%>
</body>
</html>
package jspbook2;

public class calculator {
	public int process(int n)
	{
		return n*n*n;
	}
}

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<jsp:useBean id="person" class="jspbook2.Person" scope="request" />
	<p> 아이디 : <%=person.getId() %>
	<p> 이 름 : <%=person.getName() %>
</body>
</html>
package jspbook2;


public class Person {
	private int id = 20181004;
	private String name = "홍길순";
	
	public Person()
	{
		
	}

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
	
}

 

'정리 노트 > JSP' 카테고리의 다른 글

9주차-2일  (0) 2023.12.05
9주차-1일  (0) 2023.12.04
8주차-5일  (0) 2023.12.01
8주차-3일 스크립트 태그,디렉티브 태그  (0) 2023.11.29
8주차-2일  (0) 2023.11.28
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/07   »
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 31
글 보관함