728x90
JSP
- JSP 개념
- Java Server Pages
- 서버에 등록해 두었다가 웹 브라우저가 서버에 특정 데이터를 요청하면 이를 웹 브라우저로 전송해서 보여주는 기술중 하나임.
- HTML내부에 자바 코드를 삽입하는 형식이다.
- 서블릿은 java언어를 이용하여 문서를 작성하고 출력개체를 이용해서 HTML 코드 삽입.
- JSP는 이와 반대로 HTML코드에 JAVA언어를 삽입하여 동적 문서를 작성한다.
- 서블릿의 단점을 보완하고자 만든 서블릿 기반의 스크립트 기술이다.
- 기초적인 서블릿은 화면 인터페이스 구현에 너무 많은 코드를 필요로 했기 때문
- 이러한 서블릿 작성 없이도 간편하게 웹프로그래밍을 구현하게 만든 기술이 JSP이다.
- 기초적인 서블릿은 화면 인터페이스 구현에 너무 많은 코드를 필요로 했기 때문
- JSP의 특징
- 동적 웹 어플리케이션 컴포넌트이다.
- 클라이언트의 요청에 동적 작동하여 HTML페이지로 변환되어 응답됨.
- 서블릿으로 변환되어 실행된다.
- MVC패턴에서의 View로 이용된다.
- 동작 원리
- 클라이언트가 웹 서버에 요청 실행
- 웹 서버가 이 요청을 JSP컨테이너로 넘김.
- 해당하는 JSP페이지를 찾아 서블릿(java파일)으로 변환
- 이를 컴파일한다.
- 이렇게 나온 결과가 사용자의 웹 브라우저로 전송된다.
- 클라이언트는 결과를 수신함.
- JSP태그 개념 및 종류
- 지시자
- <%@ %>
- JSP페이지의 전체적인 속성을 지정할 때 사용한다.
- page, include, taglib가 있다.
- page
- 해당 페이지의 전체적인 속성 지정
- include
- 별도의 페이지를 현재 페이지에 삽입할 때
- 현재 문서에 다른 파일의 내용을 포함시켜 출력하는 것을 말한다.
- 이것도 page속성이 적용된다.
- 별도의 페이지를 현재 페이지에 삽입할 때
- taglib
- 태그라이브러리의 태그사용(jstl을 사용하기 위해 지정)
- 주석
- <%-- --%>
- 주석 처리시 사용.
- 스크립트릿
- <% %>
- Main 메소드의 공간이다.
- java코드를 넣는 공간.
- 선언문(declaration)
- <%! %>
- 선언문은 class블록 공간이다.
- JSP페이지 내에서 사용되는 전역번수 또는 메소드를 선언할 때 사용한다.
- 여기서 선언 변수 및 메소드는 전역의 의미로 사용된다.
- class블록 내에서 선언되는 변수는 전역의 의미로 사용 가능하다.
- main 메소드 내에서 메소드를 만들 수 없다.
- class블록 내에서 메소드를 만들 수 있다.
- 표현식(expression)
- <%= %>
- JSP 페이지 내에서 사용되는 변수의 값 또는 메소드 호출 등 결과값을 출력하기 위해서 사용된다.
- 결과는 String 타입이며, 세미콜론 사용 불가능.
- 표현식은 out.print(); 를 대체한다.
- 액션태그
- <jsp:action> </jsp:action>
- 페이지 삽입, 공유, 자바빈 사용 등 수행
- forward
- 하나의 JSP페이지에서 다른 JSP페이지로 요청처리를 전달할 때 사용한다.
- 웹 브라우저의 주소는 그대로 요청받은 JSP주소로 유지된다.
- 요청 흐름이 이동할 때 request, response 기본 객체가 전달된다.
- param
- 데이터를 전달할 때 param 태그 사용.
- redirect
- forward와의 차이점
- forward는 웹 컨테이너 차원의 페이지 이동
- 웹 브라우저는 다른 페이지로 이동했음을 알 수 없고, 브라우저에 최초 호출한 URL이 표시된다.
- 요청 정보 유지;
- 객체 재사용
- 시스템 변화가 생기지 않는 요청에 적합
- URL이 바뀌지가 않는다~
- 여디서 어떻게 로직 처리했는지 클라이언트는 알 수가 없다.
- redirect는 다른 웹 컨테이너에 있는 주소로 이동 가능
- 웹 브라우저는 URL을 지시된 주소로 바꾸고 그 주소로 이동
- 요청 정보 사라짐
- forward는 웹 컨테이너 차원의 페이지 이동
- forward와의 차이점
- 지시자
- JSP 내장 객체
- 개발자가 객체를 별도로 생성하지 않아도 JSP에서 바로 사용 가능한 객체.
- JSP를 Servlet으로 변환할 때 자동으로 객체가 생성됨.
- request
- 웹 브라우저의 요청 정보를 저장하고 있는 객체
- 웹 브라우저를 통해 서버에 어떤 정보를 요청하는 것.
- 간단히 말하자면, form에 입력한 요구 사항을 얻어낼 수 있도록 하는 메소드를 제공한다.
- getParameter
- 파라미터 변수 name에 저장된 값을 얻어내는 메소드
- 변수명 없으면 null리턴
- 단독값을 입력하는 text, select, radio등에 사용
- getParameterValues
- 파라미터 변수 name에 있는 모든 값을 얻어내는 메소드
- 변수명은 String배열로 리턴
- 다중값을 입력하는 checkbox등에 사용
- getParameterNames
- 요청에 의해 넘어오는 모든 파라미터 변수를 java.util.Enumeration타입으로 리턴
- getContextPath
- 해당 JSP페이지가 속한 웹 어플리케이션의 context path를 얻음.
- getMethod
- 요청에 사용된 요청 방식(GET, POST등…)을 얻음.
- getSession
- 세션 객체
- getProtocol
- 프로토콜 객체
- getRequestURL
- 요청 URL을 얻음.
- getRequestURI
- 요청 URL을 얻음
- 위의 getRequestURL 와 getRequestURI의 차이는?
- https://hello-backend.tistory.com/70에 대해
- getRequestURL의 경우
- 전체 경로를 가져온다
- getRequestURI의 경우
- 프로젝트 + 파일경로만 가져온다.
- /70
- 프로젝트 + 파일경로만 가져온다.
- getRequestURL의 경우
- https://hello-backend.tistory.com/70에 대해
- 위의 getRequestURL 와 getRequestURI의 차이는?
- 요청 URL을 얻음
- getQueryString
- 요청한 쿼리스트링을 얻는다.
- response
- JSP페이지의 실행결과를 웹 브라우저로 되돌려 줄 때 사용
- 서버에서 클라이언트에 대한 응답을 response를 통해 처리한다.
- getCharacterEncoding
- 응답 시 문자의 인코딩 형태를 구함.
- addCookie
- 쿠키 지정
- sendRedirect
- 뒤에 변수를 보내려고 하면 get을 사용해서 url뒤에 적어두면 된다.
- sendredirect는 method의 get방식과 같아서 jsp에서 request.getParameter()로 받을 수 있다.
- 다만 sendRedirect는 주로 데이터 없이 단순 이동일 때 사용한다.
- 보통 이거를 쓰는거는 ID랑 비밀번호를 가지고 로그인을 하는 경우 원래대로라면 DB에 있는 것을 꺼내와서 ID와 맞는지 확인하고, 이후 틀리면 데이터 없이 다시 로그인 화면으로 돌려보낼 때 사용하고는 한다.
'백엔드 공부 > JSP' 카테고리의 다른 글
JSP에서 include 두 가지 방식(지시자, 액션태그)의 차이 및 활용 (0) | 2021.11.20 |
---|---|
쿠키와 세션의 개념, 차이와 사용법 정리 + 어플리케이션 (2) | 2021.11.20 |
Servlet 기본 개념 (0) | 2021.11.14 |