New World

[JSP 공부 #1] JSP 액션 태그 본문

Programming/Languages

[JSP 공부 #1] JSP 액션 태그

hyeovi 2020. 6. 29. 22:30
728x90
반응형

JSP 액션 태그


웹 어플리케이션 순서


1. 브라우저에서 HTTP를 요청
2. 웹 서버에서 html 파일, 이미지 파일 등에 연결
3. 웹 서버에서 브라우저가 요청한 것을 확인하여 웹 앱 서버로 가져감
4. 웹 앱 서버를 통해 내장 객체를 생성하여 JSP 객체로 전달
5. 웹 서버에서 요청한 HTTP에 대한 응답


JSP 파일의 변천
작성 -(.jsp)-> 번역 -(.java)-> 컴파일 -(.class)-> 로드 되고 초기화 (_jsp(servlet))


JSP 처리 (=> import 실수를 조심하자)

jsp 파일 내 코드

<% out.println(Counter.getCount()) %>

 

java 내 코드

<% out.println(패키지명.Counter.getCount());%>


page 지시자로 import 하기

단일 import

<%@ page import="패키지명.*" %>

 

다중 import

<%@ page import="패키지명.*, java.import할 것" %>


print()함수와 Expression 함수 차이

Expression는 더 짧은 문장으로 처리가 가능하다 (Expression > print())

 

ex) getCount()
Scriptlet의 print() 함수 내 코드
<% out.println(Counter.getCount()); %>

 

Expression 코드
<%= Counter.getCount(); %>


선언(Declaration)
jsp 내에서 => <%! int count = 0; %>
servlet 내에서 => int count =0;

jsp 내에서

<%! int doubleCount(){

          count = count*2;
          return count;
     } %>
servlet 내에서

int doubleCount(){
          count = count*2;
          return count;
        }

 

선언은 jsp 내의 <%! 선언문 %>이 servlet에서는 선언문만 쓰인다고 생각하면 쉽다

 


액션 태그의 유형

XML 스타일의 태그로 기술: 특정한 동작 기능을 수행
<jsp:태그 키워드 태그 속성 = "태그값" />

ex) <jsp:include page="sub.jsp">

 

액션 태그에서 매개변수 지정
시작 태그와 종료 태그 사이에 <jsp:param .../>과 같은 param 태그를 기술

 

<jsp:태그 키워드 태그 속성="태그값">

            매개 변수 지정과  같은 다른 내용
</jsp:태그 키워드>

 

ex)
<jsp:include page="includesub.jsp">

            <jsp:param name = "weeks" value ="52"/>
</jsp:include>


액션 태그 종류
include <jsp:include page="포함할 페이지 파일명"/>
현재 jsp 페이지에서 다른 페이지를 포함

include 진행 순서 ex) <jsp:include page="sub.jsp"/>

1. main.jsp 프로그램에서 태그 include를 요청

2. include에서 호출된 sub.jsp 프로그램이 응답(결과 삽입)

 

변수의 선언이 중복될 경우, 오류가 발생(선언은 include 또는 main 둘 중 하나에서만 할 것)
결과의 삽입: 결과값은 지역변수 중복 선언이 아니기 때문에 문제 발생 없음
액션 태그 <jsp:include.../>와 내장 객체 pageContext의 메소드 include()와 같은 기능
ex) <jsp:include page = "includesub.jsp"/>

<% pageContext.include("includesub.jsp")/>

 

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

현재 JSP 페이지의 제어를 다른 페이지에 전달
- 속성 page에서 지정한 jsp 페이지 또는 파일을 호출
- forward 태그가 있는 현재 페이지의 작업은 모두 중지되고 이전에 출력한 버퍼링 내용도 모두 사라지게 되어 출력이 되지 않으며 모든 제어가 page에 지정한 파일로 이동

- 실제 jsp 서블릿 소스에서 내장 객체 pageContext의 메소드 forward()로 대체
- pageContex.forward()와 같은 기능을 수행
ex)
<% pageContex.forward("send.jsp"); %>

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

 

forward 순서도

1. main.jsp 프로그램에서 태그 forward를 요청

2. forward의 page 파일에서 호출한 sub.jsp 프로그램이 응답(결과만)

 


Param
[include 태그 버전]param
<jsp:include page="includesub.jsp">

<jsp:param name = "weeks" value ="52"/>
</jsp:include>
현재 jsp 페이지에서 다른 페이지를 포함

[forward 태그 버전]
<jsp:forward page = "test.jsp">

<jsp:param name="id" value="hong"/>
</jsp:forward>
현재 jsp 페이지의 제어를 다른 페이지에 전달

page로 지정된 페이지로 필요한 패리미터의 이름(name)과 값(value)을 전송하는 역할을 수행

plugin
<jsp:plugin type="applet" code="test" />
자바 애플릿 등을 플러그인
- 웹브라우저에서 자바 빈즈 또는 애플릿을 플러그인하여 실행하는 태그
- 각기 다른 웹 브라우저에서 인식할 수 있도록 마이크로소프트사의 IE 경우일 때는 OBJECT 태그로 만들어주며 넷스케이프 사의 경우, EMBED 형태의 태그로 만들어준다

useBean
<jsp:useBean id = "login" class="LoginBean"/>
자바 빈지를 사용

setProperty
<jsp:setproperty name = "login" property="pass"/>
자바 빈지의 속성을 지정하는 메소드를 호출

getProperty
<jsp:getproperty name = "login" property="pass"/>
자바 빈지의 속성을 반환하는 메소드를 호출


forward와 include 차이
include: page 속성에 지정된 페이지의 처리가 끝나면 다시 현재 페이지로 돌아와 처리를 진행
forward: page 속성에 지정된 페이지로 제어가 넘어가면 다시 현재 페이지로 다시 돌아오지 않고 이동된 페이지에서 실행을 종료

반응형
Comments