forwardTest
<%@ 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 = "forwardSet.jsp" method="get">
<!-- <form action = "includeSet.jsp" method="get"> -->
id : <input type ="text" name ="id">
<input type = "submit" value ="전송">
</form>
</body>
</html>
forwardSet
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%-- <%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %> --%>
<%@ taglib prefix="c" uri ="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
request.setAttribute("id", request.getParameter("id"));
// request 영역에 id라는 attribute를 등록한다.
%>
<%-- <c:set var="id" value="${ param.id }" scope ="request"/> --%>
<%-- 위와 같은 표현이다. set 라이브러리를 활용하여 쉽게 등록 가능 --%>
<%--
<%
String id = request.getParameter("id");
%>
<h2>결과화면</h2>
<%
if(id.equals("admin")) {
%>
관리자님 환영합니다<br>
<%
} else {
%>
<%= id %>님 환영합니다<br>
<%
}
%>
--%>
<h2>결과 화면</h2>
<c:if test="${ param.id eq 'admin'}">
<jsp:forward page="admin.jsp"/>
</c:if>
<c:if test="${ param.id ne 'admin'}">
<%-- <jsp:forward page="user.jsp"/> --%>
<jsp:forward page="user.jsp">
<jsp:param name="id" value="${ param.id }"/>
</jsp:forward>
</c:if>
</body>
</html>
user
<%@ 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>
${ param.id } 님 환영합니다.
<%--
클라이언트에서 날라온 request가 그대로 forward 되어 날라오기 때문에
reqeust.getParameter("id")와 같은 표현인 위의 EL로도 값을 나타낼 수 있다.
--%>
${ id } 님 환영합니다.
<%--
공유영역에 id라는 attribute를 등록해야 위의 EL을 사용할 수 있다.
--%>
</body>
</html>
admin
<%@ 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>
<h2>관리자님 환영합니다.</h2>
</body>
</html>
'?' 뒤가 파라미터다.
request 영역이라고 부르는 것은
사실상 서블릿 파일 내에 있는
request 객체를 말하는 것이다. (그냥 javax.servlet.http.HttpServletRequest 타입의 변수 아닌가?)
==> request.getDispatcherType() 등으로 메소드를 호출하는 것 보니 객체가 맞는 것 같다.
==> 그런데, new 하지 않았는데 언제 생성된 것인가?
==> 매개변수로 받는 것을 보니, 클라이언트에서 생성하여 보내는 것임.
'웹 프로그래밍 > JSP' 카테고리의 다른 글
[JSP] 표현식과 EL의 차이점 (null과 empty) (0) | 2020.07.22 |
---|---|
[JSP] 개발자 모드에서 네트워크 상태 보는 방법(parameter 정보, request 방식 등) (0) | 2020.07.22 |
[JSP] 세션 (0) | 2020.07.22 |
[JSP] forward, sendRedirect / 쿠키 복습 (0) | 2020.07.22 |
[JSP] 스크립트릿, JS 는 순서대로 실행된다. (절차지향적으로) (0) | 2020.07.21 |