JSP
JSP_01
매린!
2024. 5. 8. 15:22
JSP 태그의 개념 이해
- JSP는 Servlet과 반대로 HTML 코드에 java 언어를 삽입하여 동적 문서를 만들 수 있음
- HTML코드 안에 java코드를 삽입하기 위해서 태그 이용
- Servlet은 java언어를 이용하여 문서를 작성하고, 출력 객체(ex. PrintWriter)를 이용하여 HTML 코드를 삽입함
[JSP태그 종류]
구분 | 표현방법 | 설명 |
지시자(directive) | <%@ %> | 페이지 속성 - JSP가 JSP컨테이너에 어떠한 메시지를 보내기 위한 것 - 전역적인 값 설정(ex> 클래스 선언, 구현 메서드, 출력 내용 형식 등) - page 지시자, include 지시자, taglib 지시자 |
주석 | <%-- --%> | 주석처리 |
선언 | <%! %> | 변수, 메서드 선언 |
표현식 | <%= %> | 결과 값 출력 |
스크립트릿 | <% %> | JAVA 코드 작성 |
액션태그 | <jsp:action> </jsp:action> | JAVA Bean 연결 |
JSP 동작원리
- 클라이언트가 웹브라우저로 helloWorld.jsp를 요청하게 되면 JSP컨테이너가 JSP파일을 Servlet파일(.java)로 변환함
- 이후 Servlet파일(.java)은 컴파일 된 후 클래스 파일(.class)로 변환되고, 요청한 클라이언트한테 html파일 형태로 응답됨
JSP 내부 객체
개발자가 객체를 생성하지 않고 바로 사용할 수 있는 객체가 내부 객체임
구분 | 내부객체 |
입출력 객체 | request, response, out |
서블릿 객체 | page, config |
세션 객체 | session |
예외 객체 | exception |
out.println()을 사용하면 콘솔 출력이 아닌 브라우저로 출력
request(요청) 객체
- getContextPath(): 웹어플리케이션의 Context Path를 얻음
- getMethod(): get 방식과 post 방식을 구분할 수 있음
- getSession(): 세션 객체를 얻음
- getProtocol(): 해당 프로토콜을 얻음
- getRequestURL(): 요청 URL을 얻음
- getRequestURI(): 요청 URI를 얻음
- getQueryString(): 쿼리스트링을 얻음 -> get 방식에서만 사용됨
Response(응답) 객체
- getCharacterEncoding(): 응답할 때 문자의 인코딩 형태를 구함
- addCookie(Cookie): 쿠키를 지정 -> 쿠키는 서버에서 만들고 클라이언트에서 사용을 함. 이때 클라이언트에 담아서 보낼 때 사용하는 메서드
- sendRedirect(URL): 지정한 URL로 이동 -> URL 변경됨
액션태그
- forward: 현재 페이지에서 다른 지정한 페이지로 전환할 때 사용. 페이지가 이동되지만 실제로 URL 변경이 일어나지 않음. -> <jsp:forward>
- include: 현재 페이지에 다른 페이지 삽입할 때 사용 -> <jsp:include>
- param: forward 및 include 태그에서 데이터 전달을 목적으로 사용되는 태그 -> <jsp:param>
쿠키
쿠키란?
- 연결이 끊겼을 때 어떤 정보를 지속적으로 유지하기 위한 수단으로 쿠키하는 방식 사용
- 쿠키는 서버에서 생성하여, 서버가 아닌 클라이언트 측에 특정 정보를 저장
* 쿠키는 삭제 메서드가 없음 ->서버에서 만들고 클라이언트에서 사용하기 때문에 다시 서버로 넘어가 삭제하는 것은 불가능 => setMaxAge를 사용하여 유효기간을 설정하여 삭제 처리를 함
세션
- 세션은 쿠키와 달리 클라이언트의 특정 위치에 저장되는 것이 아니라 서버 상에 객체로 존재함
- 따라서 세션은 서버에서만 접근이 가능하여 보안이 좋고, 저장할 수 있는 데이터에 한계가 없음
- 세션은 클라이언트의 요청이 발생하면 자동 생성(jsp 컨테이너)됨