JSP + Servlet | 액션 태그 1/2

파과·2022년 7월 13일
0

JSP + Servlet

목록 보기
8/33
post-custom-banner

액션 태그

자바 코드 기술보다 태그 기술이 지저분하지 않고 깔끔하게 코딩할 수 있어 가독성 높은 소스코드를 작성할 수 있다. 또한 코드 양을 대폭 줄일 수 있음.

  • 액션 태그는 XML 문법을 따른다 - 시작 태그와 함께 반드시 종료 태그를 포함해야 한다.

  • 기본 형식

<jsp: ... 속성="">내용</jsp: ... >

<jsp:forward> 액션 태그

현재 JSP페이지에서 URL로 지정한 특정 페이지로 넘어갈 때 사용하는 태그.
포워딩 방식.

예제

red.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 bgcolor="red">
이 파일은 red.jsp입니다. <br>
브라우저에 배경색이 빨간색으로 나타날까요?<br>
노란색으로 나타날까요?<hr>
forward 액션 태그가 실행되면 이 페이지의 내용은 출력되지 않습니다. <br>
<jsp:forward page="215_yellow.jsp" />
</body>
</html>

yellow.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 bgcolor="yellow">
<h3> [forward 액션 태그에 대한 예제] </h3>
<hr>
이 파일은 yellow.jsp입니다.
<br>
<hr>
브라우저에 나타나는 URL과 전혀 상관없는 파일입니다.

</body>
</html>

<jsp:param> 액션 태그

<jsp:forward> 액션 태그로 이동하는 페이지에 정보를 추가할 때 사용. <jsp:include>나 <jsp:forward>태그의 내부에 기술하여 사용한다.

예제

actionTagForm.jsp : 사용자/관리자 로그인을 선택하는 페이지(라디오 버튼)
actionTagTest.jsp : 조건에 따라 이동할 페이지를 달리한다.
userMain.jsp : 사용자 페이지
managerMain.jsp : 관리자 페이지

//actionTagForm

<%@ 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="220_actionTagTest.jsp">
아이디: <input type="text" name="userID"><br>&nbsp;: <input type="password" name="userPw"><br>
<input type="radio" name="loginCheck" value="user" checked="checked"> 사용자
<input type="radio" name="loginCheck" value="user"> 관리자<br>
<input type="submit" value="로그인">
</body>
</html>

//actionTagTest
<%@ page import="java.net.URLEncoder" %>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
String userID = request.getParameter("userID");
String userPw = request.getParameter("userPw");
String loginCheck = request.getParameter("loginCheck");


if(loginCheck.equals("user")){
%>
	<jsp:forward page="220_userMain.jsp">
		<jsp:param value='<%=URLEncoder.encode("고객", "UTF-8") %>' name="userName"/>
	</jsp:forward>
<%}else{ %>
	<jsp:forward page="220_managerMain.jsp">
		<jsp:param value='<%=URLEncoder.encode("관리자", "UTF-8") %>' name="userName"/>
	</jsp:forward>
<%}%>

//userMain
<%@ page import="java.net.URLDecoder" %>
<%@ 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 bgcolor="pink">
<h3>사용자로 로그인 성공</h3>
<%=URLDecoder.decode(request.getParameter("userName"), "UTF-8") %>
(<%=request.getParameter("userID") %>)님 환영합니다.

</body>
</html>

//managerMain
<%@ page import="java.net.URLDecoder" %>
<%@ 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 bgcolor="yellow">
<h3>관리자로 로그인 성공</h3>
<%=URLDecoder.decode(request.getParameter("userName"), "UTF-8") %>
(<%=request.getParameter("userID") %>)님 환영합니다.
	
</form>
</body>
</html>
post-custom-banner

0개의 댓글