본문 바로가기
JSP

JSP(액션태그)_2024-08-22

by 앵보몬 2024. 8. 22.
728x90
반응형

<jsp:forward> 액션 태그

① 요청 위임 : 요청과 응답을 다른 JSP 페이지, 서블릿, 또는 자원으로 전달합니다. 이 과정에서 브라우저의 주소창 URL은 변경되지 않습니다.

② 처리 연속성: 요청이 전달되면 원래의 JSP 페이지에서 처리 중이던 상태가 유지되며, 새로운 페이지에서 계속해서 처리됩니다. 즉, 요청과 응답의 객체가 그대로 전달됩니다.

③ 서버 사이드 전환: 포워딩은 서버 사이드에서 일어나며 클라이언트가 직접적으로 인식하지 못합니다. 클라이언트는 여전히 원래의 요청 URL을 보고하게 됩니다.

④ 컨트롤러 역할: 포워딩은 JSP 페이지가 비즈니스 로직을 처리하고, 결과를 다른 JSP 페이지로 전달할 때 유용합니다. 이는 모델-뷰-컨트롤러(MVC) 패턴을 구현할 때 자주 사용됩니다.

 

<jsp:forward page="targetPage.jsp" />

위의 코드에서는 현재 JSP 페이지에서 targetPage.jsp로 요청을 포워딩합니다. 이 때, 클라이언트의 URL은 여전히 현재 페이지의 URL로 유지되며, targetPage.jsp에서 응답을 생성하게 됩니다.

추가로, <jsp:forward> 태그는 page 속성 외에도 param 속성을 통해 포워딩된 페이지로 추가 파라미터를 전달할 수도 있습니다.

<jsp:forward page="targetPage.jsp">
    <jsp:param name="param1" value="value1" />
</jsp:forward>
 

이 코드는 targetPage.jsp로 param1=value1이라는 파라미터를 전달합니다.

 

log.jsp
0.00MB

pass.jsp
0.00MB
main.jsp
0.00MB

 

log.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>
    <h1>로그인</h1>
    <form action= "pass.jsp" method= "post">
        아이디: <input type= "text" name= "userId"/><br>
        비밀번호: <input type= "password" name= "userpw"/><br>
        <input type="submit" value="로그인"/>
    </form>
</body>
</html>

 

pass.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 userId = request.getParameter("userId");
    String userpw = request.getParameter("userpw");
   
    // DB에서 사용자 정보 조회 및 비교 로직 대신 고정값으로 비교
    if (userId.equals("test") && userpw.equals("123")){
            request.setAttribute("loginId", userId);
%>
            <jsp:forward page="main.jsp"/>
<%
    } else { // 유효하지 않는 사용자인 경우
%>
    <p>아이디 또는 비밀번호가 일치하지 않습니다.</p>
<%
    }
%>  
   
</body>
</html>

 

main.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 loginId = (String) request.getAttribute("loginId");
%>

    <h2>환영합니다. <%= loginId %>!</h2>
</body>
</html>


728x90
반응형

'JSP' 카테고리의 다른 글

JSP(Oracle_table)_2024-08-27  (0) 2024.08.27
JSP(쿠키)_2024-08-26  (0) 2024.08.26
JSP(주요 포인트, 동작원리)_2024-08-23  (0) 2024.08.26
JSP(연습문제)_2024-08-21  (0) 2024.08.22
JSP(필수명령어)_2024-08-21  (0) 2024.08.21