본문 바로가기

JSP, Servlet/JSP, Servlet 기초

[JSP/Servlet] 액션태그 기초(feat. jsp:param), 사용자별 로그인 페이지 다르게하기

<jsp:param> 액션 태그

<jsp:forward>나 <jsp:include> 태그의 내부에서 사용하며 정보를 추가하고 싶은 경우에 사용.

<jsp:param name = “파라미터” value=“파라미터 값” />

더보기

예)
<jsp:forward page=“이동할 페이지 경로”> 
<jsp:param name=“파라미터” value=“파라미터 값” /> 
</jsp:forward>

<08_firstPage.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 method="POST" action="08_testPage.jsp">
		<table>
			<tr>
				<td>아이디</td>
				<td><input type="text" id="id" name="id"></td>
			</tr>
			<tr>
				<td>비밀번호 </td>
				<td><input type="password" id="pwd" name="pwd"></td>
			</tr>
			<tr>
			<td colspan="2">
			<input type="radio" id="user" name="userType" value="user">사용자
			<input type="radio" id="adimin" name="userType" value="admin">관리자</td>
			</tr>
			<tr>
				<td><input type="submit" value="로그인"></td>
				<td><input type="reset" value="취소"></td>
			</tr>
		</table>
	</form>
</body>
</html>

로그인기능이므로 post형식으로 데이터를 전달한다.

 

<08_testPage.jsp>

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.net.URLEncoder"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%
		request.setCharacterEncoding("UTF-8");
	String id = request.getParameter("id");
	String pwd = request.getParameter("pwd");
	String userType = request.getParameter("userType");

	if (userType.equals("user")) {
	%>
	<jsp:forward page="08_userMain.jsp">
		<jsp:param name="userName" value='<%=URLEncoder.encode("전고객", "UTF-8")%>' />
	</jsp:forward>
	<%
		} else {
	%>

	<jsp:forward page="08_managerMain.jsp">
		<jsp:param name="userName" value='<%=URLEncoder.encode("김관리", "UTF-8")%>' />
	</jsp:forward>

	<%
		}
	%>
</body>
</html>

로그인페이지에서 지정한 action페이지이다.

여기서 로그인 기능을 처리한다.

 

<08_userMain.jsp>

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
   	<%@ page import="java.net.URLDecoder" %>
<!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("id") %>)님 환영합니다.
</body>
</html>

사용자로 로그인했을경우 열리는 페이지이다.

 

 

 

<08_managerMain.jsp>

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <%@ page import="java.net.URLDecoder" %>
<!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("id") %>)님 환영합니다.
</body>
</html>

관리자로 로그인했을경우 열리는 페이지이다.

728x90
반응형