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 컨테이너)됨