1. JSTL URL 태그
1) 요청 URL의 질의 문자열에 포함된 요청 파라미터 값을 찾는 방법.
2) 파라미터값에 특수문자가 들어가도 따로 인코딩을 해주지 않아도 되서 편리하다.






2. JSTL 조건문
1) choose/when/otherwise
(1) when의 test 속성값이 true이면 컨텐트를 실행하고 choose태그 종료
(2) 만족하는(test 속성값이 true인) when이 없으면 otherwise 태그의 컨텐트를 실행하고 choose 태그 종료

2) if


3. WEB-INF 폴더 접근
1) WEB-INF 폴더는 서버 외부에서는 접근할 수 없다.(서버 내부에서는 접근 가능)
* WEB-INF 폴더는 WAS에서 사용하는 특별한 폴더임.
2) 컨텍스트 패스(Context Path)의 역할 : 어떤 웹서비스 밑에서 webapp이라는 폴더를 찾을지 알려주는 것.
* (예시) localhost:8080/jsp1/ --> jsp1의 webapp 폴더
3) 요청을 servlet으로 보내고 forward 방식을 이용해서 서블릿에서 들어온 요청을 다른 파일로 보내면 WEB-INF 폴더에 접근 가능.









4) WEB-INF 밑에 파일을 숨기는 이유
- view를 만드는 jsp를 외부에 노출시키지 않고,
- controller가 수행해야할 작업들을 모두 마친 다음에 view를 생성하기 위해.
- jsp를 직접 호출하면 서블릿에서 처리해야할 작업들을 수행하지 못하고 불완전한 페이지가 만들어져서 응답될 수 있다.
- 대부분 webapp 폴더 밑에는 index 같은 기본적인 폴더들만 노출 시켜놓는다.
4. 쿠키(Cookie)
1) 웹 브라우저가 저장하는 데이터
2) 동작 방식
| - 웹 브라우저의 최초 요청 시 웹 서버는 쿠키를 생성해서 브라우저로 전송 - 웹 브라우저는 쿠키를 저장 - 웹 브라우저가 같은 서버에 접속할 때는 저장된 쿠키를 요청(request)에 실어서 보냄 |
* Tomcat 에서는 localhost:8080으로 접속하면 JSESSIONID 라는 쿠키를 만들어서 보낸다.
(Tomcat에서 디폴트로 주고받는 쿠키)
3) 구성 요소
(1) name : 쿠키를 구별하는데 사용되는 이름
(2) value : 쿠키의 이름에 저장할 값
(3) max age : 지속시간, 브라우저에 쿠키를 저장하는 시간
(4) domain : 쿠키를 전송할 주소(서버 주소)
(5) path : 쿠키를 전송할 요청 경로
4) 쿠키가 저장된 폴더 이름을 알고 쿠키이름을 안다면 원하는 쿠키 쉽게 접근할 수 있다.
* 보안상 취약하기 때문에 비밀번호 같은 민감한 정보는 쿠키에 저장하면 안 됨.
5) 온라인 쇼핑몰에서 장바구니 기능이 쿠키를 사용하는 대표적인 예 중 하나이다.
6) 쿠키 활용 예제 : 사이트 방문횟수 저장




※ HTTP(HyperText Transfer Protocol)
- 비연결(non-connection) 지향성 프로토콜, 무상태(stateless) 프로토콜
- 클라이언트의 요청에 대한 응답을 하고 나면, 서버는 해당 클라이언트와의 연결을 지속하지 않고 끊어버림
- 연결 상태를 유지하기 위해 사용하는 방법: (1) 쿠키 (2) 세션
- 쿠키(Cookie) : 필요한 정보를 클라이언트(웹브라우저)에서 저장
- 세션(Session) : 필요한 정보를 웹 서버에서 저장
-------------------
JSP 구성요소 : 주석, 지시문, 선언문, 스크립트릿, 표현식
comment, directive, declaration, scriptlet, expression
JSP 문법에서 자체적으로 갖고 있는 태그 : JSP Action Tag
EL에서 기억해야할 것은 EL은 데이터를 저장된 값들을 먼저 pageScope에서 찾고, 거기에 없으면 requestScope에서 찾고, 거기에도 없으면 sessionScope에서 찾고, 거기에도 없으면 applicationScope에서 찾아본다는 것.
따라서 클래스명을 입력하지 않고 메서드 이름만 입력하는 것도 가능함.
JSTL이 나오게된 배경..JSP 태그만 사용해서 표현하는 방법에도 한계가 있었음.HTML태그들은 스크립트릿 안에 들어갈 수 없다는 것. 작성하기에 불편하고, 가독성도 떨어지는 이런 한계를 극복하기 위해 만들어진 것이 JSTL.
JSTL을 사용하려면 먼저 pom.xml에 dependencies를 추가해줘야함.
groupId : 패키지 이름이라고 생각하면됨
artifactId : 프로젝트 또는 라이브러리의 이름
api : 문서 라이브러리(api에 대한 정의들을 가지고 있음)
implementation : 구현 라이브러리(api를 구현한 메서드들을 가지고 있음)
오류코드 404 : 요청을 처리하는 서블릿이나 jsp가 없음
오류코드 405 : 요청을 처리하는 서블릿은 있지만 요청받은 연결 방식을 지원하지 않음
서블릿에서 DB 작업(java 문법 사용 가능하기 때문에 작업하기 더 편함)
이후 jsp로 forward/redirect 시켜서 HTML을 작성하는 식임..
'Servlet&JSP' 카테고리의 다른 글
| 241220 Servlet & JSP 07 - 간단한 웹 페이지 만들기(1), Log4j, 단위 테스트, DBCP (1) | 2024.12.20 |
|---|---|
| 241219 Servlet & JSP 06 - Session, Filter, Listener (1) | 2024.12.19 |
| 241217 Servlet & JSP 04 - 내장 객체, Action Tag, EL, JSTL (0) | 2024.12.17 |
| 241216 Servlet & JSP 03 - JSP의 구성 요소(문법, 태그) (1) | 2024.12.16 |
| 241213 Servlet & JSP 02 - Maven Central, Welcom File, 서블릿 파일 생성, 서블릿 매핑설정, forward/redirect 방식 (1) | 2024.12.13 |