처음부터 시작하는 Java
  • JSP 액션태그
    2021년 06월 01일 11시 33분 29초에 업로드 된 글입니다.
    작성자: 원2
    728x90
    반응형

    액션 태그

    • 서버나 클라이언트에게 어떤 행동을 하도록 명령하는 태그
    • JSP 페이지에서 페이지와 페이지 사이 제어
    • 다른 페이지의 실행 결과 내용을 현재 페이지에 포함
    • 자바 빈즈(JavaBeans) 등의 다양한 기능 제공
    • XML 형식 <jsp: … /> 사용

     

    forward 액션 태그

     

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

     

    page 속성 값

     

    • 현재 JSP 페이지에서 이동할 페이지의 외부 파일명
    • 외부 파일은 현재 JSP 페이지와 같은 디렉터리에 있으면 파일명만 설정하고,
      그렇지 않으면 전체 URL(또는 상대 경로)을 설정해야 함

    forward 액션 태그로 현재 날짜와 시각을 출력하는 페이지로 이동

    <%@ page language="java" contentType="text/html; charset=EUC-KR"
        pageEncoding="EUC-KR"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="EUC-KR">
    <title>Insert title here</title>
    </head>
    <body>
    	<h2>forward 액션 태그 </h2>
    	<jsp:forward page="forward_date.jsp" />
    		<p>------------------------------
    </body>
    </html>

    <%@ page language="java" contentType="text/html; charset=EUC-KR"
        pageEncoding="EUC-KR"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="EUC-KR">
    <title>Action Tag</title>
    </head>
    <body>
    	<p>오늘의 날짜 및 시간
    	<p><%= (new java.util.Date()).toLocaleString() %>
    </body>
    </html>


    include 액션 태그

    • include 디렉티브 태그처럼 현재 JSP 페이지의 특정 영역에 외부 파일의
      내용을 포함하는 태그 (A->B 로 값을 들고 간 것,)
    • 현재 JSP 페이지에 포함할 수 있는 외부 파일은 HTML, JSP, 서블릿 페이지 등

     

    page 속성 값

    • 현재 JSP 페이지 내에 포함할 내용을 가진 외부 파일명
    • 외부 파일은 현재 JSP 페이지와 같은 디렉터리에 있으면 파일명만 설정하고,
      그렇지 않으면 전체 URL(또는 상대 경로)을 설정해야 함

    flush 속성 값

    • 설정한 외부 파일로 제어가 이동할 때 현재 JSP 페이지가 지금까지 출력 버퍼에 저장한 결과를 처리, 기본 값은 false
    • true 로 설정하면 외부 파일로 제어가 이동할 때 현재 JSP 페이지가 지금까지 출력 버퍼에 저장된 내용을 웹 브라우저에 출력하고 출력 버퍼를 비움

    include 액션 태그에 현재 날짜와 시각을 출력하는 페이지 포함하기

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

    _date.jsp

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

    param 액션 태그

    • 현재 JSP 페이지에서 다른 페이지에 정보를 전달하는 태그
    • 이 태그는 단독으로 사용되지 못하며 <jsp:forward>나 <jsp:include> 태그의 내부에 사용
    • 다른 페이지에 여러 개의 정보를 전송해야 할 때는 다중의 param 액션 태그 사용

    forward 액션 태그와 param 액션 태그에 아이디와 이름 전달하기

    <%@ 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 value="admin" name="id"/>
    		<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)%>
    <!-- 	java.net.URLDecoder.decode(name) 한글을 디코딩하기 위해서 쓰는 메서드 -->
    </body>
    </html>

    include 액션 태그와 param 액션 태그에 제목과 현재날짜 전달하기

     

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

    <%@ page language="java" contentType="text/html; charset=EUC-KR"
        pageEncoding="EUC-KR"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="EUC-KR">
    <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 페이지에서 화면을 표현하기 위한 계산식이나 자료의 처리를 담당하는
      자바코드를 따로 분리하여 작성하는 것
    • JSP 페이지가 HTML과 같이 쉽고 간단한 코드만으로 구성

    자바빈즈를 작성할 때 규칙

    • 자바 클래스는 java.io.Serializable 인터페이스를 구현해야 함
    • 인수가 없는 기본 생성자가 있어야 함
    • 모든 멤버 변수인 프로퍼티는 private 접근 지정자로 설정해야 함
    • 모든 멤버 변수인 프로퍼티는 getter/setter( ) 메소드가 존재해야 함

     

    • getter( ) 메소드는 멤버 변수에 저장된 값을 가져올 수 있는 메소드이고,
    • setter( ) 메소드는 멤버 변수에 값을 저 장할 수 있는 메소드임

    useBean 액션 태그

    • JSP 페이지에서 자바빈즈를 사용하기 위해 실제 자바 클래스를 선언하고
      초기화하는 태그
    • id 속성과 scope 속성을 바탕으로 자바빈즈의 객체를 검색하고,
      객체가 발견되지 않으면 빈 객체를 생성
    • Id >> person p1 = new person(); 의 p1 개념


    useBean 액션 태그에 Date 클래스를 사용하여 현재 날짜와 시간 출력

    <%@ page language="java" contentType="text/html; charset=EUC-KR"
        pageEncoding="EUC-KR"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="EUC-KR">
    <title>Action Tag</title>
    </head>
    <body>
    	<jsp:useBean id="date" class="java.util.Date" />
    	<p><%
    			out.print("오늘의 날짜 및 시각");
    		%>
    		<p><%= date %>
    </body>
    </html>
    728x90
    반응형

    'Spring > JSTL' 카테고리의 다른 글

    JSTL SessionScope  (0) 2021.08.04
    JSP로 이메일 보내기 ㅇㅇ  (0) 2021.08.03
    JSTL fmtTags  (0) 2021.07.27
    JSLT coreTags  (0) 2021.07.26
    JSTL EL  (0) 2021.07.26
    JSP 디렉티브 태그  (0) 2021.06.01
    댓글