[JSP] JSP 내장객체
JSP 내장객체란?
▪ JSP 내장객체란 ‘JSP 내에서 선언하지 않고 사용할 수 있는 객체’라는 의미에서 붙여진 이름.
▪ 구조적으로는 JSP가 서블릿 형태로 자동 변환된 코드 내에 포함되어 있는 멤버변수, 메서드 매개변수 등의 각종 참조 변수(객체)를 말함.
◼ request 내장객체
▪ request는 사용자 요청과 관련된 기능을 제공하는 내장객체로 javax.servlet.http.HttpServletRequest 클래스에 대한 참조 변수임
▪ 주로 클라이언트에서 서버로 전달되는 정보를 처리하기 위해 사용한다.
▪ 대표적으로 HTML 폼을 통해 입력된 값을 JSP에서 가져올 때 사용함.
◼ response 내장객체
▪ response는 request와 반대되는 개념으로, 사용자 응답과 관련된 기능을 제공.
▪ 사용자 요청(request)을 처리하고 응답을 다른 페이지로 전달하는 등의 기능을 제공한다.
▪ javax.servlet.http.HttpServletResponse 객체에 대한 참조 변수로, request에 만큼 많이 사용되지는 않으나 setContentType, sendRedirect와 같은 메서드는 잘 알아두어야 한다.
※ forward 액션과 response.sendRedirect() 의 차이점
- forward 액션은 최종적으로 전달되는 페이지에 파라미터(HTML 폼 입력값 등)를 함께 전달함.
- sendRedirect() 는 단순히 지정된 페이지로 최종 화면이 이동됨.
◼ out 내장객체
▪ out은 출력 스트림으로써, 사용자 웹 브라우저로 출력하기 위한 내장 객체임.
▪ 여러 예제에서 살펴본 것처럼 스크립트릿에서 브라우저로 텍스트를 출력하는데 사용.
▪ out은 javax.servlet.jsp.JspWriter 객체의 참조 변수로, 버퍼 관련 메서드와 출력 관련 메서드로 구성되며 out을 이용해서 출력한 내용은 서버의 콘솔이 아닌 사용자에 전달된다.
◼ session 내장객체
▪ HTTP 프로토콜이 비연결형 프로토콜이기 때문에 한 페이지가 출력된 다음에는 클라이언트와 서버의 연결이 끊어진다. 따라서 한번 로그인한 사용자가 로그아웃할 때까지 페이지를 이동해도 보관해야 할 정보가 있다면 이에 대한 처리가 매우 곤란해진다.
▪ 이러한 HTTP 프로토콜 문제점을 해결하려고 나온 것이 쿠키와 세션이다.
▪ session 은 javax.servlet.http.HttpSession인터페이스의 참조 변수 이다.
▪ session 은 접속하는 사용자 별로 따로 생성되며 일정시간 유지되고 소멸된다.
▪ 이러한 세션의 특징을 이용해 setAttribute() 메서드를 이용해 임의의 값을 저장해 놓고 활용할 수 있음.
▪ 세션이 주로 사용되는 경우는 다음과 같다.
➊ 사용자 로그인 후 세션을 설정하고 일정 시간이 지난 경우 다시 사용자 인증을 요구 할 때.
➋ 쇼핑몰에서 장바구니 기능을 구현할 때.
➌사용자의 페이지 이동 동선 등 웹 페이지 트래킹 분석 기능 등을 구현할 때.
JSP 내장객체와 속성 관리