스크립팅 원소:
1) 선언문(declaration) <%! 자바코드 %>
2) 스트립틀릿(scriptlet) <% 자바코드 %>
3) 출력식, 표현식(expression) <%= 자바코드 %>
스크립팅 원소를 더 편하게 쓸수있는 라이브러리->JSTL
Servlet / JSP에는 기본적으로 내장되어있는 객체가 존재함.
총 4종류가 존재하며 각각 영향을 미칠 수 있는 범위가 다름.
1. page scope 현재 페이지(현재 Servlet 또는 현재 JSP 에서만 사용 가능)
2. request scope
-> 요청 받은 Servlet/JSP + 요청 위임한 Servlet/ JSP
-> (2페이지 이상)
3. session scope
-> 사이트에 접속한 브라우저당 1개씩 생성됨
같은 브라우저끼리 공유가 됨
브라우저 종료 또는 세션 만료시 소멸
브라우저가 종료되지 않거나 세션이 만료되지 않으면 계속 유지
클라이언트가 서버에 접속하면 세션을 1개 생성해서 저장하는 것임
4. application scope
-> 하나의 웹 애플리케이션 당 1개 생성.
-> 서버 종료 전까지 웹 애플리케이션 어디서든 사용 가능
JSTL/EL
EL(Expression Language) : JSP의 표현식을 조금 더 효율적이고 간단하게 작성하는 언어
JSTL
JSP에서 사용하는 태그 라이브러리로
JSP에서 자주 사용하거나 공통적으로 사용되는 코드를 쉽게 사용하기 위해
태그화하여 표준으로 제공함.
https://tomcat.apache.org/download-taglibs.cgi 접속
jar files -> impl, EL, Spec 다운로드
WEB-INF/lib 폴더에 추가
JSTL 사용을 위한 선언 방법
JSTL을 사용하고자 하는 JSP가 있을 경우
해당 JSP 최상단에 JSTL 라이브러리를 추가하는 지시자 taglib를 작성해야 한다.
EX) /<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>/
prefix : 접두사. 다른 태그와 구별할 수 있는 namespace;
uri (unifomr resource identifier): 네트워크 상에서 자원을 구변하는 식별자
자원을 구분하는 유일한 주소
(url: uniform resource locator -> 인터넷에서 특정 자원 위치 지정 )
->uri에 작성하는 주소는 네트워크 상의 주소가 아닌 다운로드 받은 라이브러리 상의 주소가 아닌
다운로드 받은 라이브러리 내부 구분 주소
[ 변수 선언 c: set 태그 ]
-변수를 선언하고 초기화를 진행하는 태그(초기화 무조건 수행)
-c:set 태그로 선언한 변수는 EL을 이용해서 출력할 수 있다.
특징 1: 별도의 변수 타입 지정을 하지 않는다.
특징 2: 변수의 범위(scope)를 지정할 수 있다.
(page request session application)
var : 변수명
value : 저장할 값
scope : 변수 범위
ex) /<c:set var="num1" value="100" scope="session/>/
[ 변수 삭제 (c:remove) ]
지정한 변수를 특정 scope 또는 모든 scope에서 제거
ex)
게시글 작성 -> 오류 발생 -> 다시 작성페이지 돌아옴 -> 이전 내용이 모두 삭제
이를 해결하기 위해 작성 완료 시 session에 글 내용을 임시 저장
->정상적으로 글 등록이 완료되면 임시 저장된 내용을 삭제
<c:remove var="num1" scope="session"/>
[ 조건문 - if문 (c:if 태그) ]
if문을 태그 형식으로 작성한 것.
별도의 else 구문이 존재하지 않음
test 속성 : 조건을 작성하는 속성 EL 형식으로만 작성 가능.
1. if(조건식) == <c:if test="조건식">
2. if else if else == c:choose -> c:when -> c:otherwise
3. for문 + 추가기능 == c:forEach
/<c:if test="${test1>test2}">
test1이 더 큽니다.
</c:if>/
별도의 else 구문이 없으므로 필요 시 반대 조건의 c:if를 작성해야 함
[ 조건문 - if~ else if~ else(c:choose , c:when, c:otherwise) ]
c:choose 태그 내부에
c:when 태그를 이용하여 조건 작성(if, else if )
c:otherwise 태그를 이용해 조건을 만족하지 않는 경우 작성(else)
<%--choose문 안에 주석쓰면 오류남 --%>
/ <c:choose>
<c:when test="${param.aaa>10}">
10보다 큼
</c:when>
<c:when test="${param.aaa ==10}">
10과 같다
</c:when>
<c:otherwise>
10보다 작다
</c:otherwise>
</c:choose>/
[ c:forEach 태그 ]
- java의 for문 + 추가 기능을 가지고 있는 태그
- 속성
var: 현재 반복 횟수에 해당하는 변수 (==int i )
begin: 반복 시작 값
end: 반복 종료 값
step: 반복 시 마다 증가할 값 (--- 여기까지 쓰면 일반 for문), 미작성 시 기본값 1
items: 반복 접근할 객체 명(Collection 객체)(-- items 추가시 향상된 for문)
varStatus: 현재 반복에 해당되는 상태 정보
- 제공되는 값
1) current : 현재 반복 횟수 또는 현재 접근중인 객체
2) index : 현재 객체가 몇번째 인덱스인지 반환 (0부터 시작)
3) count : 현재 반복문이 몇바퀴 반복 중인지 반환 (1부터 시작)
4) first : 첫 번째 반복일 경우 true 반환
5) last : 마지막 반복일 경우 true 반환
[ 일반 for문 형식 사용 ]
/<c:forEach var="i" begin="1" end="6" step="1" >
<h${i}>안녕하세요 forEach 작성 테스트 중입니다 ${i}번째 시도</h${i}>
</c:forEach>/
[ 향상된 for문처럼 사용 ]
/<c:forEach var="item" items="${paramValues.lang}" varStatus="vs">
~~내용~~
</c:forEach> /
'개발자로 업그레이드 되자 > Servlet, JSP' 카테고리의 다른 글
서블릿, JSP 정리 (6) 에러페이지로 연결하기 (0) | 2021.12.06 |
---|---|
서블릿, JSP 정리 (5) 로그인/ 로그아웃 / 암호화 (0) | 2021.12.03 |
서블릿, JSP 정리 (4) DB커넥션풀 세팅 (0) | 2021.12.03 |
서블릿, JSP 정리 (2) (0) | 2021.11.30 |
서블릿, JSP 정리 (1) (0) | 2021.11.26 |