반응형

내장객체

1. out : 페이지 내용을 담고 있는 출력 스트림 객체

2. request : 파라미터를 포함한 요청정보를 담고 있는 객체

3. response : 요청에 대한 응답을 담고있는 객체

4. session : 세션 정보를 담고 있는 객체

5. application : 어플리케이션 Context의 모든 페이지가 공유할 데이터를 담고 있는 객체

6. pageContext : 페이지 실행에 필요한 Context정보를 담고있는 객체

7. page : JSP페이지의 서블릿 객체

8. config : JSP페이지의 서블릿 설정 데이터 초기화 정보객체

9. exception : JSP페이지의 서블릿 실행시 처리하지 못한(에러발생) 예외 객체

 

★★★ request, session, application, pageContext 내부객체는 임의의 속성값(attribute)을 저장하고 읽을 수 있는 메서드를 제공한다.

 

setAttribute(String key, Object value) : 주어진 key에 속성값을 연결한다.
getAttribute(String key) : 주어진 key에 대한 속성값을 얻는다.
removeAttribute(String key) : 주어진 key에 연결된 속성값을 제거한다.
getAttributeNames() : 모든 속성의 이름을 얻어낸다.

. JSP페이지에 관련된 객체 : page, config
. 페이지 입출력 관련된 객체 : request, response, out
. 컨텍스트에 관련된 객체 : session, application, pageContext
. 에러에 관련된 객체 : exception

 

〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓
★ out 내장 객체 Method
1. isAutoFlush() : 출력 버퍼가 가득찼을 때 자동으로 밀어낼 것인지 여부 지정 (true/fasle)
2. getBufferSize() : 출력 버퍼 전체 size를 구함
3. getRemaining() : 출력 버퍼중 남아있는 size를 구함
4. clearBuffer() : 출력 버퍼를 비운다.
5. println() : String을 출력한다.
6. flush() : 출력 버퍼 내용을 밀어낸다.
7. close() : 출력 버퍼 내용을 밀어 내고, 출력 버퍼를 닫는다.

 

〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓
★ request 내장 객체 메서드
1. getMethod() : 요청 방식 알아내기 (get, post)
2. getRequestRUI() : 요청 파일 경로 알아내기 (예: jsp2/RequestTest.jsp)
3. getRequsetURL() : 요청 경로 알아내기 (예: http://localhost:9000/jsp2/Request.jsp)

4. getRemoteHost() : 클라이언트 호스트 이름 알아내기
5. getRemoteAddr() : 클라이언트 주소 알아내기
6. getRemoteUser() : (인증을 이용한 경우) 이용자 ID 알아내기

7. getProtocol() : 사용중인 프로토콜 알아내기(HTTP1.1)
8. getServerName() : 서버 도메인 이름 알아 내기
9. getServerPort() : 서버 Port 알아내기

10. getHeader(name) : name에 해당하는 요청 헤더 항목 값을 알아내기

11. getParameter(name) : name에 해당하는 파라미터값 얻는다.
12. getParameterValues(name) : name에 해당하는 파라미터값을 모두 얻는다.
13. getParameterNames() : form에 있는 모든 파라미터 이름을 얻는다.

 

〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓
★ response 내장 객체 메서드
1. setContentType(type) : 출력 문서의 contentType 설정
2. getCharacterEncoding() : 문자 인코딩 설정 내용 알아내기
3. setHeader(name, value) : 응당 헤더 설정
   예: response.setHeader("Refresh", "3;URL=http://www.daum.net");//3초후 URL로 이동
4. sendRedirect("url") : 지정 url로 요청을 재전송한다.
   예: response.sendRedirect("로컬URL");
       response.sendRedirect("외부URL");

 

※ response.sendRedirect와 forward 액션태그 차이점
  - sendRedirect()는 웨브라우저가 다른 페이지로 이동하는덷 이때 다른 페이지로 가기의해 웹 브라우저는 웹서버에 새로운 Http요청을 보낸다. 즉, TCP네트워크 연결이 다시 만들어 지는 것이다.

 - 이제 비해 forward액션은 JSP엔진에서 Http요청을 다른 페이지로 보내는 것이다. 즉, Http요청 처음 만들어진 것 하나만 있는 것이다. 이것은 중요한 의미를 갖는다.
    cf) <jsp:forward page="로컬URL"/>
         <jsp:forward page="외부URL"/> --안됨!! 

 - sendRedirect()는 사용하면 웹브라우저에서 처음에 전송한 Http요청과 이 요청에 포함된 데이터들은 새로 이동된 페이지에서 사용할 수 없게 된다. 반면에 forward액션을 사용하면 Http요청은 하나만 사용하기 때문에 새로 이동된 페이지에서도 클라이언트에서 전송된 데이터를 사용할 수 있다.

 

※ forward액션 태그
   방법1 <jsp:forward page="로컬URL"/> = <jsp:forward page="로컬URL"></jsp:forward>
   방법2 <jsp:forward page="로컬URL">
               <jsp:param name="id" value="kim"/>
               <jsp:param name="pwd" value="123"/>
            </jsp:forward>


※ include지시자(디텍티브)

   <%@ include file ="파일명.확장자" %>
                              name.txt
                              aa.html
                              bb.jsp <- 현재 JSP페이지에 포함할 문서
        *include지시자는 단순히 문서를 포함시킨다. 포함시킬 문서는 헤더부분 넣지 말아야한다.

※ include액션
   *include앤셕 실행될 결과물을 현재페이지에 포함시킨다.
   <방법1>
      <jsp:include page="로컬URL" flush="true"/>
   <방법2>
      <jsp:include page="로컬URL" flush="true"/>
          <jsp:param name=" " value=" "/>
          <jsp:param name=" " value=" "/>
          .....

      </jsp:include>

 

〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓
★ application 내장 객체 메서드
 application 내장 객체는 서블릿 또는 어플리케이션 외부환경정보(context)의 내부객체입니다.
 application은 javax.servlet.ServletContext의 객체이다.

<Method>
1. String getServletInfo() : 서버 정보를 구한다.(웹 컨테이너이름과 버전, 즉 JSP컨테이너에 대한 정보)
2. String getMimeType(fileName) : fileName대한 MIME타입을 리턴한다.
  예) String str = request.getParameter("filename");
      String contentType = application.getMimeType(str);
3. String getMajorVersion() : 서버가 지원하는 서블릿규약의 Major version을 리턴한다.(정수부분)
4. String getMinorVersion() : 서버가 지원하는 서블릿규약의 Minor version을 리턴한다.(소수부분)

5. String getRealPath(url) : 지정 URL의 실제 경로를 리턴한다.
6. void log("message") : message내용을 file에 기록한다.

〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓
--myroot\WEB-INF\web.xml--
<context-param>
 <description>로깅여부</description>
 <param-name>logEnabled</param-name> <!-- 이름이 logEnabled이고 값이 true인 초기화 파라미터 추가 -->
 <param-value>true</param-value>
</context-param>
 
<context-param>
 <description>로깅레벨</description>
 <param-name>debugLevel</param-name> <!-- 이름이 debugLevel이고 값이 5인 초기화 파라미터 추가-->
 <param-value>5</param-value>
</context-param>

 

〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓
★ Cookie 내장 객체 생성자 &메서드
생성자
- Cookie(name, value) 이름이 name이고, 값이 value인 쿠키를 생성

메서드
 setter method or setXXX()
- setValue() : 쿠키값 설정
  setDomain() : 쿠키에 전달되는 도메인 설정
  setPath() : 쿠키에 전달되는 경로 설정
  setMaxAge() : 쿠키 나이 설정(쿠키 유효기간 설정<-초>)
  setSecure() : 보안 프로토콜(HTTPS)에서만 쿠키를 전달되도록 설정한다.
  
 getter method or getXXX()
- getName() : 쿠키이름 얻기
  getValue() : 쿠키값 얻기
  getDomain() : 쿠키가 전달되는 도메인 알아내기
  getPath() : 쿠키가 전달되는 경로 알아내기
  getMaxAge() : 쿠기 유효기간 알아내기
  getSecure() : 보안 프로토콜(HTTPS)에서만 쿠키가 전달되는지 알아내기

 <<쿠키를 생성해서 클라이언트 심는 방법>>
  Cookie cookie = new Cookie("쿠키이름", URLEncoder.encode("쿠키값"));
  response.addCookie(cookie); //쿠키심기
 
 <<클라이언트가 보내주는 쿠기를 모두 받아서 특정 이름의 쿠키값을 알아내기>>

 Cookie[] cookies = request.getCookies(0;
 if(cookies!=null){
         for(int i=0; i<cookies.length; i++){
                 if(cookies[i].getName().equals("쿠키이름")){
                         visiterName = URLDecoder.decode(cookies.getValue());
                         out.println("쿠키값 : " + visiterName);
                 }
         }
 }

 

〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓
★ session 내장 객체 메서드

- 세션은 쇼핑몰같은 구매 제품을 클릭할때마다 누가 클릭했는지 기억을 해야하는 사이트에서는
웹서버쪽에 사용자별 기록을 남겨야만 합니다.

 웹 서버쪽에 기억 시키는 것을 세션이라고 합니다.
 JSP에서는 session객체를 통하여 이용할 수 있습니다.

<< session객체 method >>
1. String getId() : 해당 세션의 고유한 세션의 ID를 리턴
2. void setMaxInactiveInterval(time) : 세션 유지 시간 설정(초단위)
3. int getMaxInacativeInterval() : 세션 유지 시간을 얻는다(기본 유지시간 30분)

4. isNew() : 새로 생성된 세션이면 true return
5. invalidate() : session를 제거

setAttribute(name, value) : session에 name, value값의 항목을 추가
getAttribute(name) : session에서 name에 해당하는 value값을 얻는다.

* HttpSession getSession() :
  1. getSession(true) : true는 새로운 세션을 create만 하는 것
  2. getSession(false) : false는 현재 세션을 그대로 리턴 하는 것
  3. getSession() : session존재 여부를 확인하여,
                    session이 없다면 새로 session을 create하고
                    session이 있다면 그대로 return
                    위 2개의 장점을 취한 것.

 

〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓
※JSP 액션
<jsp:useBeans> - JSP페이지에서 빈을 초기화 하는데 사용
<jsp:setProperty> - 빈의 property에 값을 넣어 주기 위해 사용
<jsp:getProperty> - 빈의 property의 앖을 가져오기 위해서 사용
<jsp:forward> - 처리를 분기할 때 사용
<jsp:include> - 처리 결과무를 포함 시킬 때 사용

지시자
<%@ page %>
<%@ include file="파일명" %>
<%@ taglib %>

[출처] JSP내장객체|작성자 신지c


+ Recent posts