forward와 redirect
페이지를 이동하는 방식에는 2가지 방식이 있당...
redirect방식과 forward방식이 있음
forward가 디폴트임\
둘다 이동하는 의미는 같으나
redirect는 단순히 이동만 한다.
forward는 클라이언트의 정보를 가지고 이동한다.
form.jsp
<%
//페이지 디라이렉트 이동
//response.sendRedirect("formPro.jsp");
//단순히 이동만 한다. 파라미터 넘어가지 않음
//URL이 form.jsp 로나옴
//RequestDispatcher rd = request.getRequestDispatcher("formPro.jsp");
//rd.forward(request, response);
//포워드는 URL경로가 포워딩된 곳으로 바뀐다.
//formPro.jsp로 나옴
//포워드가 디폴트이기때문에 포워드는 잘 나오지 않음
//따라서 리다이렉트가 자주 나온다. 프레임워크에서
%>
jsp의 액션태그
html과 다름
이전의 INCLUDE 디렉티브의 경우는 인코딩방식등 이 같아야 사용할 수 있었다.
<jsp:include page="" />
하지만 jsp 액션태그는 실행결과를 합치는 것임!!!! 따라서 <@ page 의 내용이 달라도 합칠수 있다.
<jsp:include page="test.jsp">
이런 태그들은 xml파일 기반으로 만들어 졌다.
액션태그를 자주 사용하는 것은 jsp페이지의 모듈화를 시킬때 자주 사용한다.
페이지의 구역을 정하고 해당을 include하면 관리도 편하고 개발도 쉽고 상황에 맞는 것으로 include시키면 운영하기도 쉬움
>>이런것을 모듈화라고 한다.
예를들어
a.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<h1>AAAAAAAAAAAAAAAAAAAAAAA</h1>
<jsp:include page="b.jsp" />
b.jsp
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="EUC-KR"%>
<h1>BBBBBBBBBBBBBBBBBBBBBB</h1>
>> 결과를 가져 옴 따라서 charset이 다른데도 합치기가 가능
jsp:include는 값을 넘겨 줄수도 있다.
a.jsp
<h1>AAAAAAAAAAAAAAAAAAAAAAA</h1>
<jsp:include page="b.jsp" >
<jsp:param name="message" value="Hello" />
</jsp:include>
<% //<jsp:param>에서 실행후 결과를 복사 한다는 의미!!%>
b.jsp
<h1>BBBBBBBBBBBBBBBBBBBBBB</h1>
<%
String message = request.getParameter("message");
%>
<font size="6" color="blue">
<%= message %>
</font>
포워드는 단순히 페이지 이동
<h1>AAAAAAAAAAAAAAAAAAAAAAA</h1>
<jsp:forward page="b.jsp" />
<h1>AAAAAAAAAAAAAAAAAAAAAAA</h1>
<jsp:forward page="b.jsp" >
<jsp:param value="hello" name="message"/>
</jsp:forward>
이렇게 하면 값을 전달할 수 있다.
<jsp:include flush="false">
flush는 정보를 계속 업데이트 받겠느냐? 는 의미?
true로 하면 정보가 계속 누적됨....