Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags more
Archives
Today
Total
관리 메뉴

기분좋음

국비 54 일차 본문

IT 포트폴리오/국비지원교육 Diary

국비 54 일차

기분좋음:) 2022. 3. 8. 17:51
반응형

JSP5

 

  JSP 내장 객체

• JSP가 서블릿으로 변환 될 때 자동으로 생성해 주기 때문에 별도의 객체 생성이 필요없다.

 ex) <% out.print("hello"); %>  out객체

 

•자동으로 생성되는 내장객체 종류

내장객체의 분류 내장객체 형태
입출력 관련 객체 request HttpServletRequest request
response HttpServletResponse response
out JspWriter out (실행결과 출력)
서블릿 관련 객체 page Object page
config ServletConfig config
외부 환경 정보 제공하는 객체 session HttpSession session
application ServletContext application
예외 처리 관련 객체 exception 에러 페이지로 지정시 생성

request , page, session, application -(session유지 -다른page로 넘어가도 유지되는 범위 설정)

 

request내장객체 (클라이언트와 웹서버사이의 요청 정보는 request객체에 저장되어 관리)

메소드 설명
getContextpath() JSP페이지가 속한 웹 애플리케이션의 컨텍스트 패스를 가져온다.
getMethod() 요청방식 가져온다(GET , POST)
getRequestURL() 요청 URL 가져온다
getRequestURI() URL에서 QueryString 부분 제외한 나머지 부분 가져온다. 
getQueryString() URL 다음에 오는 QueryString부분 가져온다 (?이후 문장)
getSession(flag) 요청에 관련된 세션 객체를 가져온다
getRequestDispatcher(path) 지정 로컬 URL에 대한 RequestDispatcher객체를 가져온다.

 

 

request 내장객체

(요청 파라미터 관련 메소드) 多 사용

메소드 설명
getParameter(String name) 지정한 이름의 parameter를 구한다.
getParameterNames() 모든 parameter의 이름을 구한다.
getParameterValues(String name) 지정한 이름값의 parameter값이 여러개인 경우 사용
parameter의 값을 배열로 구한다. 

ex)

<input type="text" name="id"> 
→ id의 값을 가져온다.
request.getParameter("id");

 

 

 

 response 내장 객체

• 실행 결과를 브라우저로 되돌려 줄 때 사용하는 내장 객체

redirect -웹 서버가 브라우저에게 지정된 페이지로 이동하도록 지시

<%
response.sendRedirect("http://www.naver.com");
%>

 

웹 페이지 이동 방식

1) redirect 방식

  • response객체의 sendRedirect 방식
  • 브라우저의 URL을 변경해 페이지를 이동 (request, response객체가 유지되지 않는다)

 -다른페이지에 데이터를 전송시 쿼리스트링 이용

(response.sendRedirect("login.jsp?name="+name)

 

2) foward 방식

  • 서버상으로 페이지가 이동 (브라우저에서는 페이지 이동을 알수 없다)
  • URL변경 없고, 기존 request, response객체가 유지된다.
  • RequestDispatcher객체를 통해 호출 가능

-다른페이지에 데이터를 전송시 request객체 유지되므로 객체에 데이터를 담아서 보낼 수 있다request.setAttribute("name",name);

 

 

내장객체의 영역

• 내장 객체의 영역은 객체가 유효한 영역

영역 설명
page 하나의 JSP 페이지를 처리시 사용되는 영역
request 하나의 요청 처리시 사용되는 영역
session 하나의 브라우저와 관련된 영역
application 하나의 웹 어플리케이션과 관련된 영역

page<request<session<application  (영역 크기)

 

page

• 요청을 처리하는 JSP페이지 하나당 새로운 page영역을 가지며 pageContext객체 하나가 생성

• pageContext 객체에 정보가 저장되면 해당 page내에서만 사용 가능

 

request

• 클라이언트가 페이지 요청시 요청한 페이지와 요청 받은 페이지 사이의 request 내장 객체에 정보저장 가능하다.

• 브라우저가 응답 페이지를 받으면 request객체는 사라진다. -(하나의 요청이 끝나기까지에 모든 JSP페이지가 포함)

 

session

• 웹 브라우저를 닫기 전까지 페이지를 이동해도 정보를 저장할 수 있는 객체 

• 사용자 정보를 담아서 사용하는 session객체는 로그인 인증처리를 통해 회원 전용 페이지를 사용가능하게 해준다.

• 하나의 브라우저와 관련된 영역

 

application

• 하나의 웹 애플리케이션과 관련된 전체 영역을 포함 (ex - 크롬과 엣지 둘다 켜서 확인해도 유효)

• 웹 애플리케이션에 속한 모든 페이지, 페이지에 대한 요청, 세션 전부 application 영역에 속한다.

 

 

JSP 내장 객체 메소드

메소드 종류 설명
setAttribute("속성 이름",속성 값) 영역 객체에 정보를 저장 
getAttribute("속성 이름") 영역 객체에 정보를 꺼낸다
getAttributeNames() 영역 객체에 모든 속성이름을 가져온다
removeAttribute("속성 이름") 영역 객체에 지정된 속성을 삭제

 

 

JSP 액션 태그

• 내장 객체를 통해서 태그로 동적 행동 표현 가능하게 한다. 

• 클라이언트 혹은 서버에게 어떠한 행동을 하도록 명령하는 태그 (깔끔하고 가독성이 좋다)

• 액션태그는 기본 XML 문법을 따른다 (HTML과 유사, 닫기 / 반드시 표기)

태그 종류 설명
<jsp:forward> 다른 사이트로 이동시 사용, 페이지 흐름을 제어시 사용
<jsp:include> 정적 혹은 동적인 자원을 페이지에 포함시킨다. 페이지 모듈화에 사용(ex-header,footer)
<jsp:param> <jsp:forward>,<jsp:include>과 함께 사용되어 파라미터 추가시에 사용
<jsp:useBean> 빈(Bean)을 생성, 사용하기 위한 환경 정의하는 태그
<jsp:setProperty> 빈에서 속성값을 할당
<jsp:getProperty> 빈에서 속성 값을 가져올 때 사용

 

 

<jsp:forward>-현재 페이지에서 URL로 지정된 특정 페이지로 넘어갈 때 사용

 

<jsp:forward page="이동하려는 페이지 주소">
서블릿 변환 → 
RequestDispatcher dispatcher = getServletContext().getRequestDispatcher(“url”);
dispatcher.forward(request,response);

가독성 up

 

<jsp:param>

• <jsp:forward>액션 태그로 이동하는 페이지로 정보 추가할 때 사용하는 태그

• 단독 사용 하지 않고, forward, include 내부에 포함되어 사용

<jsp:forward page="이동할 페이지">
          <jsp:param name="속성" value="속성 값"/>
</jsp:forward>

 

<jsp:include>

모든 페이지에 공통으로 사용되는 내용이 있을시 사용(ex-공통 header, footer)

<jsp:include page="포함하고자 하는 페이지 주소" flush="true또는 false"/>

flush-출력 내용 쌓인 버퍼 처리(기본값-false)

 

 

유의사항

<%@include file='url'%>

-지정된 페이지가 현재페이지에 합쳐진 후 하나가 된 후 컴파일됨

-독립적 형태가 아닌 현재 페이지의 일부분으로 구성→전체 페이지의 변수가 공유 

<jsp:include>

-합쳐지는게 아닌 제어권이 지정한 페이지를 넘어 갔다가 돌아오는 독립적 형태

-컴파일이 되는 두 페이지간의 연락을 교환해 하나의 페이지인것 처럼 취급

→전체 페이지의 변수가 공유 되지 않는다

 

 

36

반응형

'IT 포트폴리오 > 국비지원교육 Diary' 카테고리의 다른 글

국비 56 일차  (0) 2022.03.11
국비 55 일차  (0) 2022.03.10
국비 53 일차  (0) 2022.03.07
국비 52 일차  (0) 2022.03.03
국비 51 일차  (0) 2022.03.01