오봉이와 함께하는 개발 블로그
JSP - 액션 태그(include, param&forward) 본문
728x90
액션 태그
- JSP 페이지 내에서 어떤 동작을 지시하는 태그
- 기능
- 어떤 동작 또는 액션이 일어나는 시점에 페이지와 페이지 사이에서의 제어 이동
- 다른 페이지의 실행 결과를 현재 페이지에 포함
- 종류
- include
- forward
- useBean
- setProperty
- getProperty
include 액션태그 : <jsp:include>
- 다른 페이지의 실행 결과를 현재 페이지에 포함시킬 때 사용
- 페이지를 모듈화 할 때 사용
- <jsp:include page="포함될 페이지" flush="ture" />
- page 속성 : 결과가 포함될 페이지명
- flust 속성 : 포함될 페이지로 이동될 때 현재 포함하는 페이지가 지금까지 출력 버퍼에 저장한 결과를 처리하는 방법을 결정
- true : 현재 페이지가 지금까지 버퍼에 저장한 내용 웹 브라우저에 출력하고 버퍼를 비움
- include 액션태그와 include 지시어의 차이
- 형식
- 액션태그 : <jsp:include page="포함될 페이지" />
- 지시어 : <%@ include file="포함될 페이지" %>
- 처리 시점
- 액션태그 : 실행 시
- 지시어 : 자바 소스로 변환 시
- 기능
- 액션태그 : 별도의 파일로 처리, 제어권이 이동했다가 다시 돌아옴
- 지시어 : 현재 파일에 삽ㅇ비(합쳐서 하나의 java 파일 생성)
- 데이터 구성
- 액션태그 : 동적 데이터로 구성
- 지시어 : 정적 데이터로 구성
- 용도
- 액션태그 : 화면 레이아웃 모듈화 할 때
- 지시어 : 여러 페이지에서 사용하는 변수를 지정하고 include 시킴
- 형식
include 액션 태그 예제 - includeAction1.jsp, includeAction2.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>includeAction1</title>
</head>
<body>
<h3>includeAction1.jsp 입니다</h3>
<hr>
<jsp:include page="includeAction2.jsp" flush="true"/>
</body>
</html>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>includeAction2</title>
</head>
<body>
<h3>includeAction2.jsp 입니다</h3>
</body>
</html>
forward 액션 태그 : <jsp:forward>
- 현재 페이지에서 다른 특정 페이지로 전환
- 웹 페이지 간의 제어를 이동시킬 때 사용
- <jsp:forward page=”포워딩할 JSP 페이지”>
forward 액션 태그 예제 - login.jsp, loginResult.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>login</title>
</head>
<body>
<%-- <%--%>
<%-- String user_id = request.getParameter("user_id");--%>
<%-- // 값이 null인경우 출력은 되지만 null로 무언가 하려고 하면 NullPointerException 출력--%>
<%-- %>--%>
<%-- <%= user_id %>--%>
<%
String user_id = request.getParameter("user_id");
if(user_id == null) {
%>
<h2 name="h2login">로그인</h2>
<%
} else {
%>
<h2>아이디를 입력하지 않았습니다. 아이디를 입력해 주세요.</h2>
<%
}
%>
<form name="frmLogin" method="post" action="loginResult.jsp" >
아이디 :<input type="text" name="user_id"><br>
비밀번호:<input type="password" name="user_pw" ><br>
<input type="submit" value="로그인"> <input type="reset" value="다시입력">
</form>
</body>
</html>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%
request.setCharacterEncoding("utf-8");
// 아이디를 입력하지 않았으면 login.jsp 페이지로 포워딩
String user_id = request.getParameter("user_id");
if(user_id.length() == 0) {
%>
<jsp:forward page="login.jsp"/>
<%
}
%>
<h2>환영합니다 <%= user_id%> 님!</h2>
</body>
</html>
param 액션 태그 : <jsp:param>
- 이동하는 페이지에 파라미터 값을 전달할 때 사용
- forward 및 include 액션 태그에서 데이터를 전달하기 위해 사용
- name과 value로 구성
- <jsp:param name="id" value="abcd" />
- 받을 때
- request.getParameter("id");
forward 액션 태그 예제 - paramLogin.jsp, paramLoginResult.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>paramLogin</title>
</head>
<body>
<%
request.setCharacterEncoding("utf-8");
String msg = request.getParameter("msg");
if(msg == null) {
%>
<h3>로그인</h3>
<%
} else {
%>
<h3><%= msg %></h3>
<%
}
%>
<form name="frmLogin" method="post" action="paramLoginResult.jsp" >
아이디 :<input type="text" name="user_id"><br>
비밀번호:<input type="password" name="user_pw" ><br>
<input type="submit" value="로그인"> <input type="reset" value="다시입력">
</form>
</body>
</html>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>paramLoginResult</title>
</head>
<body>
<%
request.setCharacterEncoding("utf-8");
String msg = "아이디를 입력하지 않았습니다. 아이디를 입력해 주세요.";
String user_id = request.getParameter("user_id");
// user_id 값이 비었으면 paramLogin.jsp로 포워딩 (msg 전송)
if(user_id.length() == 0) {
%>
<jsp:forward page="paramLogin.jsp">
<jsp:param name="msg" value="<%= msg %>"/>
</jsp:forward>
<%
}
%>
<h3>환영합니다. <%= user_id %> 님!</h3>
</body>
</html>
728x90
'BE > JSP' 카테고리의 다른 글
JSP - JSTL (0) | 2021.12.31 |
---|---|
JSP - EL (0) | 2021.12.31 |
JSP - 액션 태그(useBean, setProperty, getProperty) (0) | 2021.12.30 |
JSP - 페이지 구조, 태그, 페이지의 기본 구성 요소, 지시어, 내장 객체, 타입 변환, 제어문 (0) | 2021.12.30 |
JSP - JSP 개요(구조, 태그, 구성요소, 지시어) (0) | 2021.12.30 |
Comments