쉽게 배우는 JSP 웹 프로그래밍 - 1 - 태그
포스트
취소

쉽게 배우는 JSP 웹 프로그래밍 - 1 - 태그

jsp는 서블릿의 확장판이라고 볼 수 있다

자바 기반의 동적 웹 프로그래밍 언어다

JSP 컨테이너가 서블릿 파일 생성과 컴파일을 책임진다.

?JSP는 다시 컴파일하고 프로젝트를 배포할 필요가 없다.

“웹 서버는 정적 웹페이지처럼 *.class의 실행 결과를
웹 브라우저에 응답으로 전달하므로
웹 브라우저는 새로 가공된 HTML 페이지를
동적으로 처리한 결과를 보여줍니다”

웹서버에서 클라이언트의 요청 중 웹 서버
자체적으로 처리할 수 없는 것은
컨테이너처럼 처리할 수 있는 곳으로 넘기기도 함
웹서버만으로 구축된 서버는 정적 페이지만을 생성한다.

톰캣은 웹 컨테이너가 포함된 웹 애플리케이션 서버(WAS)이다. (웹 서버와 웹 컨테이너를 결합한 서버)

        • JSP LifeSycle - - - -
  1. 번역 - TL 참조 태그의 정확성 검증
  2. 컴파일 - 자바 코드의 구문 검사(번역된)
  3. init - 클래스 로드, 초기화
  4. service - request, response
    컨테이너가 추가하기 때문에 service는 override 불가
  5. destroy

jsp 요청 시 jsp 수정 여부를 판단하고 번역 단계를 거침

JSP 태그의 종류

1.스크립트 - 자바 코드를 넣음
2.디렉티브 - 페이지 처리 방식
3.액션 - XML 형태의 태그. 제어와 관련됨

        • 스크립트 태그 - - - -

선언문 <%! . . . %> : 변수 메소드 정의
클래스의 멤버로 들어감
사실상 필드에 속하기에 전역에 해당함

스크립틀릿 <% . . . %> : 로직
service 메소드에 포함됨
‘out.println( . . . )로 표현문처럼 사용할 수도 있음
문자열 형태로 HTML 태그를 적용할 수 있음
print 결과가 HTML로 이루어진 정적 웹페이지를 형성’

표현문 <%= . . .%> : 호출 결과를 문자열 형태로 출력
service 메소드에 포함되어 print 메소드에 인수로 전달
인수로 전달되기에 작성할 때 세미콜론을 생략한다
out.print( . . . )에 그냥 들어감

      • 주석 - - - JSP <%-- . . . --%>
        HTML <!-- . . . -->
        서블릿으로 변환될 때
        html 주석의 경우 name 변수가 없으면 오류 메시지 표시
        JSP 주석은 잘 무시함
        • 디렉티브 태그 - - - - >페이지 관련 정보를 컨테이너에 지시

개별 HTML 응답에 특별한 영향을 미치지 않는다.

1
<%@ { page, include, taglib }  %> 
    • page - - > 페이지 정보

“현재 JSP 페이지가 ~”

language = java 사용할 프로그래밍 언어

contentType = text/html 생성할 문서의 콘텐츠 유형

pageEncoding = ISO-8859-1 문자 인코딩

import = 사용할 자바 클래스

session = true 세션 사용 여부

buffer = 8KB 출력 버퍼 크기

autoFlush = true 출력 버퍼의 동작 제어

isThreadSafe = true 멀티스레드 허용 여부

info = 페이지에 대한 설명

errorPage = 오류가 발생했을 때 보여줄 오류 페이지

isErrorPage = false 오류 페이지인지 여부

isELignored = false 표현 언어 지원 여부 ${ . . . }

isScriptingEnabled 스크립트 태그 사용 여부

    • include - - > 특정 영역에 외부 파일의 내용을 포함함

참조를 적용해 재사용성과 유지보수에 도움

1
<%@ include file=" . . . " %>
    • taglib - - > 표현 언어, JSTL, custom tag 등 TL 설정

    <%@ taglib uri=”path” prefix=”tag identifier” %>

?아직 필요를 못느끼겠다

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

    • 자바빈즈 - - > 로직용 클래스 데이터를 담는 멤버 변수인 프로퍼티와 데이터 처리를 위한 메소드로 구성 Serializable 구현(직렬화), 기본 생성자, private + get-set
        • 액션 태그 - - - - > 서/클 특정 행동을 명령

페이지 간의 제어, 자바빈즈 등 XML 형식 <jsp: . . . />

forward : 페이지 이동(흐름 제어) 호출 시 현재 페이지에서의 출력 버퍼를 지우므로 주의

include : 외부 페이지 내용을 포함하거나 페이지 모듈화 *디렉티브는 단순 소스 내용이 텍스트로 포함 주로 조각 코드를 삽입할 때

  • 액션은 페이지의 처리 결과를 포함시킴 페이지를 모듈화할 때

useBean : 자바빈즈 설정

1
2
<jsp:useBean id="member" class="com.dto.MemberBean"
 	scope="page" />

와 같이 작성함 범위에는 page, request, session, application 중 하나의 값 id는 변수명이라 생각해도 됨

setProperty : 자바빈즈의 property set

1
<jsp:setProperty name="bean.id" property="field type" value=""/>

요청 파라미터의 name 일치 여부에따라 value를 생략할 수 있음

getProperty : 자바빈즈의 property get

param : forward, include, plugin에 인자 추가 forward나 include처럼 페이지 제어 관련한 태그와 함께 사용됨 현재 페이지의 데이터를 전달할 수 있음

plugin : 브라우저에서 자바 애플릿 실행, 브라우저별 코드 생성 element : XML 요소 설정 attribute : XML 요소 속성 설정 body : XML 요소 몸체 설정 text : 페이지 및 문서에서 템플릿 텍스트 작성

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.