[[ JSP 구성요소 ]]
1. HTML 태그
- html / css / JS / jquery 등 그대로 사용
2. Directive 태그
(1) <%@ page ... %>
: 페이지 지시자 태그 ( jsp 파일의 시작 )
페이지에 대한 정보 알려줌
-contentType 세팅 필수 ( resp.setContentType 자동 )
<%@ page contentType="text/html;charset=UTF-8" %>
-import 세팅은 자동으로 해줌
<%@ page import="java.time.LocalDateTime" %>
(2) <%@ include
- 포함해서 실행해야할 다른 파일 세팅
(3) <%@ taglib
- JSTL 태그모음 사용하는 세팅
=> 그 외에, 사용하는 객체에 따라서
session="true" (default) : 세션 사용하겠다.
buffer="8kb" autoFlush="true" (default) : out 내장객체 버퍼용량 8kb / 털어보내기 자동
isErrorPage="true" ( 설정필요 ) : 에러처리 페이지입니다. => 이거해줘야 exception 객체 사용가능
등의 세팅을 추가하는식으로 사용
3. 자바문장 ( 스크립트 태그 )
: <% 자바문장 그대로 %>
(1)주석문 : <%-- --%>
자바일땐 <% %>안에서 //주석 사용가능
html 일땐 <!-- --> 사용 가능
: 이렇게 주석처리하고 TomCat 형님한테 보내면, 주석까지 변환하고 컴파일해서 응답한다.
( 웹브라우저단 소스보기에서 주석으로 표시됨 )
( 자바 // 주석은 페이지소스보기에선 안보임 )
( 심지어 <% %> 이부분도 html 주석으로 해서 안보이게는 할 수 있음 )
=> 하지만 변환에 컴파일까지 하는 과정에 들어가므로 리소스 손해
=> <%-- --%> 이렇게 주석처리 해주면
아예 변환,컴파일 과정도 안거치고 무시해줌
=> 리소스 아낄 수 있다!
(2)표현문 : <%= 변수명 %>
: 변수값을 그대로 웹 브라우저에 표현해줌
<% String now = "2022.08.09"; %>
<h1> 오늘은 <%= now %> 입니다 </h1>
(3)선언문 : <%! 메소드 / 전역변수 %>
- 메소드 선언
<%!
int multiply(int a, int b){return a*b;}
%>
<h1>계산 결과는 <%= multiply(6,5) %> 입니다.</h1>
=> 이렇게 만들면, _jspService(){} 메소드 내부가 아니라
자체 메소드로 따로 선언된다.
=> 그 메소드 안에서는 request 등 내장객체를 사용할 수 없다.
( 메소드 매개변수로 받아서 사용해야 한다. )
- 전역변수
<%! String msg = "전역변수"; %>
=> 이렇게 선언하면 전역변수로 선언
- 지역변수
<% %> 에서 선언한 변수는
JSP Container 가 변환하고 컴파일하면서
기본적으로 해당 jspService( ) 메소드 안의 지역변수로 선언
- jspService
JSP 는 get 방식 post 방식 선택할 수 없다.
JSP container 가 모두 jspService()방식 으로 받는다. ( 통합 )
=> 따로 메소드 방식을 분리해서
if( request.getMethod().equals("Post") ){
request.setCharacterEncoding("utf-8"); }
특히나 이렇게 Post 일때 setCharacterEncoding 은 따로 해줘야 한다
( <jsp:param 으로 넘긴값 ??? 로 나오는데,
이때, <jsp.param 을 "사용"하는쪽,
즉, 값을 넘기는 쪽에 request.setCharacterEncoding 을 해줘야 한다. )
4. 표현 언어
request.getParameter("type")
== ${ param.type }
5. 내장객체
request / response / out / session / application / exception
=> 따로 생성할 필요 없이 편하게 바로 사용 가능
( out 은 servlet 라이브러리 설치 필요 )
6. action 태그 ( url 보내기 편하게 )
forward / include / param / useBean / setProperty / getProperty
<% RequestDispatcher rd = request.getRequestDispatcher( url );
rd.forward(req, resp); %>
==
< jsp:forward page="url" />
7. 커스텀 태그
: JSTL = JSP Standard Tag Libarary
=> libarary 받아서 사용
'Back to the JSP' 카테고리의 다른 글
[ 서블릿 + JSP ] 효율적으로 섞어쓰기 (0) | 2022.08.10 |
---|---|
[JSP] action 태그 forward / include / param (0) | 2022.08.10 |
[JSP] exception 처리 1. errorPage / 2. web.xml (0) | 2022.08.10 |
[JSP] Servlet / JSP 진행순서 (0) | 2022.08.09 |
[JSP] Servlet => JSP 차이 (0) | 2022.08.09 |