이하 구디아카데미 김지훈 강사님의 수업자료와 강의 내용 정리, 실습한 내용을 정리함!
노트북에 TOMCAT 깔려다가 실패한 어젯밤... 기록에 뭐가 빠진 걸까.
프로젝트 팩츠 > JAVA > Version 11로 변경
Scriptlet 을 최소화시키려 하는 이유는 JAVA LOGIC 과 HTML 을 분리시키기 위해서 이다.
JAVA Bean 을 이용하면 JAVA CODE 의 일부를 분리할 수 있다.
우리는 이것을 MODEL I 이라고 지칭한다.(현재 사용하지 않음)
Bean 은 여러 JSP 에서 생성되는 데이터의 창고 역할을 수행한다.
Bean 에서 data 를 공통으로 저장하고 사용한다.
Bean 자체가 JAVA CODE 이므로 scriptlet 으로도 접근이 가능하다.
하지만 Action Tag 를 활용하는 방법도 있다.(추천)
FirstBean
index
1. com.beans.FirstBean 클래스를 firstBean 이라는 id가 이름이 됨, 저장 범위은 page 이다.
2. firstBean의 getName 함수 값 가져옴
3. exam/beanForm.jsp 로 이동하는 사용 예제 링크 생성
beanForm
1. beanProc.jsp 로 전달하는 form 생성
2. 이름 : 텍스트 타입의 인풋박스 생성/ 호출 이름은 userName
3. 전송 버튼
beanProc
1. com.beans.FirstBean 클래스를 firstBean id 호출하며 저장 범위는 session
2. firstBean 을 사용하여 멤버변수 name 에, 값은 userName을 넣어준다.
3. result.jsp 페이지로 전송
result
1. 스크립틀릿 사용 : firstBean의 getName 출력
2. 액션태그 사용 : firstBean의 멤버변수 property name 출력
index
1. session에 저장할 값 login 속성 은 admin
2. result.jsp로 전달하는 form
3. text 입력창, 호출 이름은 userName
4. 전송 버튼
5. operator.jsp로 보내는 el hag 예제 링크
result
1. ID : 세션에 있는 login 속성 값 가져와라(스크립틀릿 버전)/세션스코프(영역)에 있는 login 속성 값 가져와라(EL태그 버전)
2. NAME : userName 값 가져와라(스크립틀릿 버전) / 값.userName 가져와라(EL태그 버전)
operator
설치
https://tomcat.apache.org/taglibs/standard/
하단
- jsp 파일 최상단에 아래와 같은 내용을 추가해 준다.
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>- 위 세개의 파일을 압축 상태로 WEB-INF/lib 폴더에 복사한다.
Scriptlet 을 줄이기 위해 action tag 를 사용하였다.
개발자들은 이외에도 필요한 Custom Tag 를 제작할 수 있다.
이러한 Custom TAG 중 자주 사용되고 유용한 것만을 모아 만든 라이브러리가 바로 JSTL 이다.
EL 은 주로 간단한 표현에 사용된다면 JSTL 은 좀 더 다양하게 사용된다.
index
1. set.jsp 로 이동하는 c:set 이라고 쓰여진 링크
2. if.jsp 로 이동하는 c:if 라고 쓰여진 링크
3. choose.jsp 로 이동하는 text 입력폼/속성 이름 num
4. forEach.jsp 로 이동하는 c:forEach 라고 쓰여진 링크
5. url.jsp 로 이동하는 c:url 이라고 쓰여진 링크
6. forTokens.jsp 로 이동하는 c:forTokens 라고 쓰여진 링크
7. import.jsp 로 이동하는 c:import 라고 쓰여진 링크
8. redirect.jsp 로 이동하는 c:redirect 라고 쓰여진 링크
9. function.jsp 로 이동하는 c:function tag 라고 쓰여진 링크
1. 세션에 myID 속성에 admin 저장
2. 세션에 uId 속성에 105784 저장
value 속성 사용
3. 변수명은 name1로 선언, 값은 test, 영역은 page
4. 변수명은 name2로 선언, 값은 (세션영역의 myId) admin, duddurdms request
5. 변수명은 name3으로 선언, 값은 (세션영역의 myId_세션영역의 uId) admin_105784
태그 몸체 사용
6. 변수명 name4로 선언, 영역은 page, 값은 test2
7. 변수명은 name5로 선언, 영역은 request, 값은 (세션영역의 myId) admin
8. 변수명은 name6 으로 선언, 영역은 생략(page), 값은 (세션영역의 myId_세션영역의 uId) admin_105784
변수 삭제
<c:remove var="변수명"/>
1. num 의 값 가져옴
2. num 의 값 출력
3. num 의 값이 0과 같으면 파라메터의 값은 0 입니다. 출력
3. num 의 값이 1과 같으면 파라메터의 값은 1 입니다. 출력
3. num 의 값이 2과 같으면 파라메터의 값은 2 입니다. 출력
3. 그 외의 경우 0~2 사이의 값을 입력하세요. 출력
변수명 i, 1부터 시작, 10까지, 1씩 늘어남/i 출력
배열 변수 sports 선언, 안에 배열 값은 "축구","야구","농구","골프","수영","볼링"
HashMap 클래스를 map 이라고 가져옴
map에 "name" 속성에 "kim"을 넣음 / "age"에 "33"를 넣음/ "phone"에 "010-1234-1234"를 넣음
sports 라는 배열의 변수는 item 이라고 선언하고 추가 정보를 획득하자
index 스텟 : 각 아이템을 하나씩 꺼내기
map 배열에 item 변수 선언
아이템의 key 값 : value 값 하나씩 꺼내기
./url.jsp = 현재 위치로 이동
./sub/link.jsp = 현재 위치에서 sub 폴더 하위의 link.jsp로 이동
(앞에 . 하나를 찍음)
/11_JST/url.jsp 상위 경로까지 표시+ 앞에 / 들어가면 절대 경로
4. ../url.jsp 현재 위치에서 한 칸 올라가서 url.jsp (앞에 .. 점 두 개 찍음)
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
다음 주부터 스터디 달료🤣