티스토리 뷰

개발언어/JSP

[JSP] 기본 문법

kr98gyeongim 2023. 12. 8. 21:58

JSP 구성 요소는 크게 템플릿 데이터와 JSP 전용 태그, JSP 내장 객체가 있다.

①템플릿 텍스트

- 클라이언트로 출력되는 콘텐츠. 템플릿 텍스트는 서블릿 코드를 생성할 때 출력문(tomcat이면 out.println으로 변환)

즉, HTML, 자바스크립트, 스타일 시트, JSON, XML, 일반 텍스트 등이 해당된다.

 

②JSP 전용태그

- 서블릿 생성 시 특정 JAVA 코드로 바뀌는 태그.

Directives(<%@ ・・・ $>), 

스크립트릿(<% ・・・ %>),

표현식(<%= ・・・ %>),  ※이 안에는 세미콜론(;)을 사용하지 않음

선언(<%! ・・・ %>),

JSP Action()<jsp: ・・・ >이 있다.

 

JSP 전용 태그

①지시어

<%@ 지시어 속성1 ="값1" 속성2 ="값2" ・・・%>

page, taglib, include가 있다.

 

1)page - page 지시어는 JSP 페이지와 관련된 속성을 정의할 때 사용ex)

<%@ page contentType ="text/html"; charset="UTF-8"%>

 

- contentType : jsp 페이지로부터 생성되는 응답 문서의 MIME 타입과 인코딩 문자를 설정

- autoFlush : 자동으로 버퍼를 비워 내용을 클라이언트에 보낼 것인지에 대한 설정

- import : JDK에서 제공하는 클래스를 사용할 때 사용할 클래스를 명시 default : 8dk

- buffer : JSP 페이지의 출력 버퍼 크기를 설정 ※버퍼를 사용하지 않으면 <jsp:forward> 기능은 사용 불가능.

 

+) <jsp:forward> : 페이지의 실행이 종료되고 새로운 페이지로의 이동이 일어난다.

 

2) taglib - 태그 라이브러리를 선언할 때 사용

<%@ taglib uri="http://java.sum.com/jsp/jstl/core" prefix="c" %>

 

 

③JSP 내장 객체

- JSP 기술 사양서에 정의된 필수적인 9개의 객체

request, response, pageContext, session, application, config, out, page, exception

→ JSP에서 별도의 선언 없이도 사용이 가능하다.

 

 

<jsp:include> 액션태그와 include 지시어의 차이점

①<jsp:include> 액션 태그 // 해당 페이지에서만 변수값을 유지한 후 불러들인 페이지의 값은 반영하지 않음

ex) 아래의 결과는

including.jsp : 20

included.jsp : 1000

including : 20이 된다. // 불러들인 페이지에서 included.jsp 파일의 변수값은 including.jsp파일에 반영안됨

 

-including.jsp 파일

<%@page contentType = "text/html; charset=euc-kr" %>
<HTML>
	<BODY>
    	<% int data = 20; %>
        including.jsp : <%= data %><br>
        <jsp:include page = "included.jsp"/>
        including.jsp : <%= data %>
    </BODY>
</HTML>

-included.jsp 파일

<% data = 1000; %>
included.jsp : <%= data %>

 

②<%@ include file = "test.jsp" %> // 불러들인 페이지의 변수값을 반영시킴

ex) 아래의 결과는 

including.jsp : 20

included.jsp : 1000

including.jsp : 1000이 된다.

 

-including.jsp 파일

<%@page contentType = "text/html; charset=euc-kr" %>
<HTML>
	<BODY>
    	<% int data = 20; %>
        including.jsp : <%= data %><br>
        <%@ include file = "included.jsp" %>
        including.jsp : <%= data %>
    </BODY>
</HTML>

 

-included.jsp 파일

<% data = 1000; %>
included.jsp : <%= data %>

 

요청과 응답

 

 

쿠키

- 쿠키의 유효시간 : 클라리언트 컴퓨터에서 쿠키가 유지되는 시간. 유효시간이 지나면 자동 삭제.

- 쿠키 생성 후 Cookie 클래스의 SetMaxAge()를 사용하여 지정. default = -1 : 브라우저 종료시 삭제. 0 : 기존 쿠키 삭제

-서버측 JSP페이지에서 쿠키를 만들어 응답 메시지의 헤더에 추가하는 코드

<% Cookie cookie = new Cookin("name", "value");

response.addCookie(cookie)%>

 

세션

- 세션의 유효시간 : 클라이언트가 서버에 추가요청을 하지 않고도 세션을 유지시킬 수 있는 최대시간

- 설정방법1) web.xml 파일에서 <session-config>의 <session-time-out>으로 설정 가능 (분 단위)

- 설정방법2) setMaxInactioveInterval(int interval)을 사용(ㅊㅎ 던유ㅏ)

 

RequestDispatcher

: 서버의 리소스(서블릿이나 JSP페이지)를 포장하고 있는 유형으로

클라이언트의 요청을 해당 리소스로 포워딩 시키거나 해당 리소스의 실행 결과를 인클루드할 때 사용되는 유형.

 

표현언어

- 스크립트 요소(스크립트릿, 표현식, 선언부) 밖에서 사용.

- 기본 사용 형식은 {$ 수식}이다.

- 표현 언어를 사용하면 JSP 페이지에서 스크립의 사용을 줄일 수 잇다.

 

 

getParameter()와 getAttribute()차이점

- getParameter() : String타입을 리턴.  사용자가 보낸 파라미터를 읽음.

- getAttribute() : 서블릿에서 저장했던 속성을 읽음. Object 타입을 리턴하기 때문에 주로 빈 객체나 다른 클래스를 받아올때 사용된다.

 

MVC브라우저 -> Controller : 서블릿 -> Model: 자바빈 -> DB ->View: JSP -> 브라우저

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함