액션 태그

기혁·2023년 3월 17일

JSP 학습

목록 보기
11/19

day04

📌 액션태그

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

📌 액션태그 종류

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

📢 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_naver.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.naver.com","_self");
</script>
</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>

forward_daum.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.daum.net","_self");
</script>
</body>
</html>

결과값
localhost:8081/form/forward_test.jsp
-> form 폴더 안에 forward_test.jsp가 있기때문에 /form를 붙여준다
네이버 구글 다음 선택지가 생김

제출 버튼 클릭시 네이버 출력

📢 param

param_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>
	<jsp:forward page="param_result.jsp">
		<jsp:param value="apple" name="userid" />
		<jsp:param value="김사과" name="username" />
		
	</jsp:forward>
</body>
</html>

param_result.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>
	아이디 : <%=request.getParameter("userid") %> <br/>
	<%=request.getParameter("username") %> 님 어서오세요
</body>
</html>

결과값
프로젝트 파일에 CharacterEncodingFilter 삽입 안할시 김사과가 깨져서 나온다.

profile
⭐️내가만든쿠키⭐️

0개의 댓글