액션 태그

전영덕·2023년 3월 26일
0

JSP

목록 보기
5/16

1. 액션 태그란?

  • jap페이지에서 동일한 내용이라도 자바코드를 기술하기 보다는 태그를 기술하는 것이 지저분하지 않고, 깔끔하게 코딩할수 있어 가독성 높은 소스코드를 작성할 수 있다.
  • 코드 양을 대폭 줄일 수 있다.
  • 페이지와 페이지 사이를 제어하거나 다른 페이지의 실행 결과 내용을 현재 페이지에 포함하거나 자바빈즈(객체)등의 다양한 기능을 제공한다.
  • 액션 태그는 XML문법을 따른다. 즉, 시작 태그와 함께 반드시 종료 태그를 포함해야한다.
  • 액션 태그의 기본 형식
    <jsp: ... 속성 : 값>내용</jsp: ...>
  • 내용이 없는 액션 태그의 형식
    <jsp: ... 속성 : 값/>

2. 액션 태그

  • forward(<jsp:forward/>
    -> 다른 페이지로의 이동, 페이지 흐름 제어
  • include(<jsp:include/>)
    -> 외부 페이지의 내용을 포함하거나 페이지 모듈화
  • param(<jsp:param/>)
    -> 현재 페이지에서 다른 페이지에 대한 정보를 전달할 때 사용
  • useBean(<jsp:useBean/>)
    -> 빈(bean)을 생성하고 사용하기 위한 환경을 정의하는 액션 태그
  • setProperty(<jsp:setProperty/>)
    -> 빈에서 속성 값을 할당
  • getProperty(<jsp:getProperty/>)
    -> 빈에서 속성 값을 얻어올 때 사용

- <jsp:forward/>예시

  • 구조

forward_test.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>
	<form action="controller.jsp">
		<select name="site">
			<option value="naver">네이버</option>
			<option value="google">구글</option>
			<option value="daum">다음</option>
		</select>
		<input type="submit">
	</form>
</body>
</html>
  • controller.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>
<%
	String site = request.getParameter("site");
	String resultURI = "";
	
	if(site.equals("naver")){
		resultURI = "forward_naver.jsp";
	} else if(site.equals("google")){
		resultURI = "forward_google.jsp";
	} else if(site.equals("daum")){
		resultURI = "forward_daum.jsp";
	}
%>

<jsp:forward page="<%= resultURI %>"/>

</body>
</html>
  • forward_google.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>
<script >
	window.open("https://www.google.com","_self");
</script>
</body>
</html>

2. 페이지 이동 2가지 경우

  • 쇼핑몰에서 결제하는 부분을 생각해보자.
    별로 중요하지않은 정보는 정보가 유지되도 괜찮으니까 forward방식을 쓰지만, 비밀번호로 정보가 이동하는 결제정보 같은 것들은 유지가되면 안되니까 redirect방식을 이용해야한다.

2-1. forward

  • request에 담긴 값이 유효하다.(response, request가 유지된다.)
  • 이동된 url이 화면에(주소창에) 안 보인다.(사용자는 이동했는지 알 수 없다.)
  • forward 방식 2가지
    1) 자바에서 사용 즉<% %> 안에서 유효
    pageContext.forward("이동할페이지");
    2) HTML에서 사용
    <jsp:forward page="이동할페이지"/>

2-2. redirect

  • 클라이언트가 새로 페이지를 요청한 것과 같은 방식으로 페이지가 이동됨.
  • request, response가 유지되지 않는다.(새로 만들어진다.)
  • 이동된 url이 화면에 보인다.
  • redirect 방식
    1)자바에서 사용
    response.sendRedirect("이동할페이지");

day04프로젝트의 배운 순서

  • 폴더명을 기준으로 form -> param ->object

  • object.jsp(강사님 풀이),object2.jsp(jQuery 를 이용한 내 풀이)-> object_ok.jsp -> object_result.jsp

0개의 댓글