반응형

서블릿에서 다른 서블릿으로 포워딩 할 때 RequestDispatcher를 이용하는 방법이 있지만,

포워드 액션 태그를 사용하면 자바코드 없이도 포워딩이 가능합니다.

또한 포워딩 시 다른 서블릿이나 JSP로 값을 전달할 수 도 있습니다.

 

 

 

˙ 포워드 액션 태그 형식

 

1
2
3
<jsp:forward page="포워딩할 JSP 페이지">
        ...
</jsp:forward>
cs

 

 

 

① login.jsp

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%request.setCharacterEncoding("utf-8"); %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>로그인창</title>
</head>
<body>
<%
    String msg = request.getParameter("msg");
    if(msg != null){
%>
        <h1><%=msg %></h1>
<%
    }
%>
    <form action="result.jsp" method="post">
    아이디 : <input type="text" name="userID"><br>
    비밀번호 : <input type="password" name="userPw"><br>
    <input type="submit" value="로그인">
    <input type="reset" value="다시 입력">
    </form>
</body>
</html>
cs

 

form 태그를 통해 로그인 버튼을 클릭하면 result.jsp로 파라미터가 전송됩니다.

 

 

 

② result.jsp

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
    request.setCharacterEncoding("utf-8");
%>
<%!
    String msg = "아이디와 비밀번호 모두 입력해 주세요.";
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>결과창</title>
</head>
<body>
<%
String userID = request.getParameter("userID");
String userPw = request.getParameter("userPw");
 
if(userID.length()==0 || userPw.length() == 0){
%>
    <jsp:forward page="login.jsp">
    <jsp:param name="msg" value="<%=msg %>"/>
    </jsp:forward>
<%    
}else{
%>
    <script type="text/javascript">
    alert("로그인 되었습니다.");
    location.href="login.jsp";
    </script>
<%     
}
 
%>
 
</body>
</html>
cs

 

파라미터인 userID의 길이가 0일 때 또는 userPW 길이가 0일때,

즉 아이디와 비밀번호 둘 중 하나라도 입력되지 않았을 때는 forward 태그를 통해 파라미터인 msg가 전달됩니다. 

파라미터를 전달받은 login.jsp 에서는 해당 파라미터인 msg를 출력합니다.

 

 

 

 

아이디와 비밀번호를 모두 입력한 후 로그인 버튼을누르면 alert창이 뜨고 다시 처음 화면으로 돌아옵니다.

 

 

반응형

+ Recent posts