GitHub

https://github.com/Backcoder-June

BackCoder 기록 그리고 숙달

Back to the JSP

[JSP] action 태그 forward / include / param

Backcoder 2022. 8. 10. 20:33

[[ action 태그 ]] 
url 이동시키는 것과 관련된 Java 코드를   
 간결하게 만들어 제공 
(  forward / include / param  )

 

1. [ include ]

 

<jsp:include page= " 포함할jsp명 "  /> 

- 여러개의 jsp파일에서,  공통적으로 필요한  jsp 파일이 있으면, include 해서 사용  
( ex. 광고페이지를 어느 페이지를 가던 붙여놓고 싶다거나 ) 

 

- include 해서 사용할  JSP에게 주도권을 빌려줘서 처리하고,

=> 합치면서 다시 원래 JSP로 주도권을 가져온다.   

=> 응답하는 주체 : 원래 JSP

 

=> include 는 두 개의 파일에서 만들어진 HTML 뷰단을 다 포함시킨다.

 

( <=> forward 방식은 forward 받은 파일의  HTML 뷰단만 표시한다. 

 

 

ex.)

1번문장
<div>
<jsp:include page="광고.jsp"/>
</div>
2번문장  

<순서>
=> 1번문장 out (buffer) 에 저장 
=> include 에 있는 a,b,c번문장 out 저장 
=> 마지막 shop 2번 문장 out 저장  
=> 1 - a - b - c - 2  ( 끠워넣기 ) 

 

< getParameter( ) >
요청으로 들어온 입력값 (parameter)을

include 될 jsp 에서도 직접 사용할 수 있다. ( 공유 )


<%if (request.getParameter("id")!=null){%>
<%=request.getParameter("id")%>님 을 초대합니다.
<%}%>

 

 



2.  [ forward ]

 

<jsp:forward page="이동할jsp명" /> 


- 주도권까지 넘기고 돌아오지 않음 

- 응답하는 주체 : forward 넘겨받은 JSP

 

- forward 방식은 forward 받은 파일의 HTML VIEW단 만 표시한다.  
: 즉, forward 전달받은 jsp의 HTML만 보여줌 / 이전의 HTML은 무시 

 

=> 왜? 

 

- HTML VIEW 단은 forward 받은 쪽에서 알아서 꾸밀꺼니까.

즉, forward 보내는 쪽은 HTML VIEW 단에는 관심이 없다. 

로직 처리만 하는 애다. 

 

로직 처리 => forward => 뷰단처리  

 

서블릿 => forward =>  JSP  

 

대표적으로 forward 방식 사용하는게 

서블릿 => JSP

requestDispatch 할 때다. 

( 사실상, 이 방식을 위해서 존재하는게 forward 라는 생각이 든다. ) 

 

- HTML VIEW 단 까지 합치고 싶으면 include 사용하면 된다. 

 

 



3. [ param ]

: 사용자 입력값(파라미터) name / value  추가하기 ( 데이터추가하기 )

 

<jsp:include page="/JSP_prac/includeTarget.jsp">
<jsp:param name="id2" value="Tom"/>
</jsp:include>

 

: 파라미터로 name=id2 인 태그에서 value입력값으로 "Tom" 이 들어온것으로 조작 

 

- include, forward 액션태그 사이에 사용
  
- 변수만 추가 가능 /  배열이나 객체 불가능 
=> 배열 객체는 setAttribute 로 전달해야함 

 

- <jsp:param > 으로 넘긴 value 값 한글일 경우 웹브라우저에서 ??? 로 인식할 수 있다. ( POST 방식 ) 

=> forward 나 include 를 보내는 쪽에서 

request.setCharacterEncoding("utf-8")

설정해줘야 한다. 

 

 

- jsp 파일에는 ?파라미터로 넘길 수 있다. 

- html 파일에는 ?파라미터로 못 넘긴다. =>  <jsp:param> 은 html 에는 사용할 수 없다.  

 



---------------------