반응형
250x250
Notice
Recent Posts
Recent Comments
Link
관리 메뉴

Yeonee's Story

JSP - JSP와 스크립틀릿, 내장객체 종류 본문

⋆ 。゜☁︎ 。⋆ 。゜☾゜。⋆⋆ 。゜☁︎ 。⋆ 。゜☾゜。⋆/JSP

JSP - JSP와 스크립틀릿, 내장객체 종류

yeonee 여니 2023. 7. 12. 23:17
728x90
반응형
SMALL

안녕하세요.
https://blog.naver.com/sysysy0302 여니입니다 :)

 

yeonee 블로그 : 네이버 블로그

예쁘고 맛있게 먹고 건강하게,강인하지만 온화하게 행하라. ※맛스타운스타일상 인스타 www.instagram.com/s2._.y25n ※맛집감성일상 유튜브https://youtube.com/channel/@S2_yeonee 티스토리https://yeoneeluv.tistory.co

blog.naver.com

 

 

[ JSP와 스크립틀릿 ]

JSP란 쉽게 말하자면 HTML에 Java코드를 섞어 놓은 것을 말합니다.
이렇게 작성된 JSP페이지는 컨테이너가 알아서 JSP를 서블릿 소스 코드로 변환한 다음,
컴파일하여 완전한 서블릿 클래스로 만들어줍니다.

그러므로 JSP를 이해하려면 Servlet을 어느 정도 알아야 이해가 가능합니다.

 

회원가입 페이지를 예로 들어봅니다.
ex)  MemberEnrollForm.jsp  JSP파일이 있습니다.
<html>
<body>
<%
       out.println(com.Members.getMember());
%>
</body>
</html>

만약 위 jsp 페이지를 서블릿으로 만든다면,
html코드들은 PrintWriter객체를 얻어온 뒤 out.println()의 인자값으로 넣어서 출력해야 했을 것입니다.

위의 예제에서 <% .. %> 가 JSP코드인데, 
<% .. %> 이 태그 안에 있는 Java코드스클립틀릿(scrittlet)이라고 합니다.

위의 예제에서 스클립틀릿 내에 out객체를 생성하지 않았는데 사용이 가능한데요, 왜그럴까요?
그 이유는 out이 JSP의 내장 객체인데, 이거 말고도 내장 객체의 종류가 여러가지입니다. (그 종류들은 하단에 적어둡니다.)

여기서 주의할 점은,
<% .. %> 태그 내에서 선언한 변수는 서블릿에서는 지역변수일뿐이라는 것입니다.
또, 스크립틀릿에 객체나 클래스를 쓰고 싶을 경우 package명까지 적어줘야 합니다.

 

[ JSP의 지시자 ]

JSP에서 지시자는 컨테이너가 페이지를 자바코드로 변환할 때 특별한 지시를 내릴 수 있도록 고안된 것들을 말합니다.
지시자에는 page, include, taglib가 있습니다.

지시자를 쓸 때는 <% 에 @를 붙여, <%@ .. %> 형태로 사용합니다. (이것이 일반 jsp코드와 다른 점입니다.)
여기서 page지시자는 Java코드의 import와 같습니다.

ex) 
<%@ page import="com.*" %>    ( .* 형태는 .앞의 폴더 아래 모든 파일을 import로 선택하는 것을 의미합니다.)
<%@ page import="com.*, java.util.*" %>   ( ,를 붙여서 import를 연이어 작성할 수 있습니다.)


그런데, 여기서 궁금한 점!!
out.println()을 사용하지 않고 그냥 출력할 수는 없을까?
바로 이 때 표현식을 사용하면 됩니다.

<%= .. %> 형태가 표현식입니다.
<%= com.Members.getMember() %>
이렇게 쓰면 컨테이너가 위 표현식 코드를 만나서 out.println(getMember());으로 자동으로 변환 시켜줍니다.

※ 주의할 점 1: 세미콜론(;)은 자동으로 붙으니 표현식 내에는 세미콜론을 적지 않아요! 
※ 주의할 점 2: 표현식 내에는 리턴 타입이 void인 메소드를 호출하지 않아요. (표현식에서는 출력할 것이 없으면 에러가 납니다.)

 

[ JSP 문법 ]
스클립틀릿 : <% %>
지시자 : <%@ %>
표현식 : <%= %>

 

[ 내장 객체 종류 ] 

 API 내장 객체 
JspWriter out
HttpServletRequest request
HttpServletResponse response
HttpSession session 
ServletContext application
ServletConfig config 
JspException exception
PageContext pageContext
Object page (==this)

 

+ 해당 포스팅은 아래의 링크를 참고하여 개인적으로 공부하기 위해 작성하였습니다.

728x90
반응형
LIST