15주차 - jsp(13) Action Tag - 3

2022. 10. 14. 21:39jsp/jsp

이번의 목표

01. <jsp:forward>, <jsp:param>을 사용해보자


01. <jsp:forward>, <jsp:param>을 사용해보자.

지금까지 <jsp:useBean>, <jsp:setProperty>, <jsp:getProperty>에 대해 공부했습니다.

이번에는 <jsp:forward>, <jsp:param>을 이용하여 페이지를 이동하고 파라미터를 저장하는 방법에 대해 공부해보겠습니다.

 

<jsp:forward>는 페이지를 이동하는데에 사용됩니다. 사용 예시는 아래와 같습니다.

<jsp:forward page="파일.jsp"/>

이때 바로 닫지 않고 닫는 태그를 사용한다면 그 사이에 파라미터를 전달해줄 수도 있습니다.

 

<jsp:param>은 파라미터를 만드는 변수입니다. 사용 예시는 아래와 같습니다.

<jsp:param value="값" name="이름"/> 

 

위에서 설명한대로 <jsp:forward>의 여는 태그와 닫는 태그 사이에 <jsp:param>을 사용한다면 파라미터를 전달할 수도 있습니다. 사용 예시는 아래와 같습니다.

<jsp:forward page="파일.jsp">
   <jsp:param value="값" name="이름"/>
</jsp:forward>

 

<jsp:forward>를 기존에 사용하던 방법으로 표현을 하자면

request.getRequestDispatcher("페이지.jsp").forward(request, response);

가 되는데 상대적으로 코드의 길이가 길기 때문에 가독성을 위해서라면 <jsp:forward>를 쓰는것이 보다 합리적입니다.

 

예제로 로그인.jsp와 서비스.jsp를 만들어 사용자가 선택한 값을 파라미터로 넘긴 후 검증하여,

사용자인지 관리자인지에 따라 다른 페이지를 출력하는 코드를 작성해보겠습니다.

 

01. login.jsp 코드
02. loginService.jsp 코드
03. userPage.jsp 코드
04. adminPage.jsp 코드
05. 실행 화면 - 사용자 로그인
06. 실행 화면 - 관리자 로그인

 

01. login.jsp 코드

<form action="loginService.jsp">
	<input type="text" name="id" placeholder="아이디"><br>
	<input type="password" name="pw" placeholder="비밀번호"><br>
	<input type="radio"  name="user" value="user">사용자
	<input type="radio"  name="user" value="admin">관리자<br>
	<input type="submit" value="로그인">
</form>

02. loginService.jsp 코드

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
	String id = request.getParameter("id");
	String pw = request.getParameter("pw");
	String user = request.getParameter("user");
	
	if(user.equals("admin")){
		request.setAttribute("param", "param_admin");
		request.getRequestDispatcher("adminPage.jsp").forward(request, response);
	}else{%>
		<jsp:forward page="userPage.jsp">
			<jsp:param value="param_user" name="param"/>
		</jsp:forward>
		<!-- 
		위의 request.getRequetstDispatcher().forward와
		기능은 같지만 jsp:forward를 사용하면 코드가 보다 짧고 간결해진다.
		 -->
	<%
	}
	%>

03. userPage.jsp 코드

<h3>사용자로 로그인 성공</h3>

	아이디 : <%=request.getParameter("id") %><br>
	비밀번호 : <%=request.getParameter("pw") %><br>
	사용자 : <%=request.getParameter("user") %><br>
	매개변수 : <%=request.getParameter("param") %><br>
	<a href="login.jsp">이전</a>

04. adminPage.jsp 코드

<h3>관리자로 로그인 성공</h3>
	아이디 : <%=request.getParameter("id") %><br>
	비밀번호 : <%=request.getParameter("pw") %><br>
	사용자 : <%=request.getParameter("user") %><br>
	매개변수 : <%=request.getAttribute("param") %><br>
	<a href="login.jsp">이전</a>

05. 실행 화면 -  사용자 로그인


06. 실행 화면 -  관리자 로그인