'Programming/JSP'에 해당하는 글 18건

Config object

Programming/JSP 2013. 4. 15. 00:10

config 내장 객체 기능

 

  • 서블릿 정보 출력
  • 서블릿 컨테이너의 초기화 파라미터 사용

 

 

config 내장 객체는 javax.servlet.ServletConfig 인터페이스를 구현한 객체이며, 서블릿 컨테이너 관리 및 서블릿 초기화시
<TOMCAT_HOME>/conf/web.xml 에 작성된 초기화 파라미터 정보를 모든 웹 어플리케이션과 공유합니다.

 

web.xml 파일에 파라미터는 다음과 같이 <servlet> 태그 안에 이름/값 으로 등록합니다.

 

<web-app ...>
    <servlet>
        <servlet-name>InitParamTests</servlet-name>
        <servlet-class>com.oops4u.test.TestInitParams</servlet-class>

        <init-param>
            <param-name>adminEmail</param-name>
            <param-value>admin@a.com</param-value>
        </init-param>
        <init-param>
            <param-name>mainEmail</param-name>
            <param-value>main@b.com</param-value>
        </init-param>
    </servlet>
</web-app>

 

web.xml 파일을 수정한 후에 톰캣을 재시작하고 나며 변경된 내용이 어플리케이션에 적용됩니다.
다음 메소드를 이용하여 web.xml 파일에 등록된 파라미터를 얻을 수 있습니다.

 

String getServletName()
Enumeration getInitParameterNames()
String getInitParameter(String name)


WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

,

Application object

Programming/JSP 2013. 4. 14. 21:01

application 내장 객체 기능

 

  • 서버 정보 출력
  • 어플리케이션 내에서 정보 공유
  • 로그 기록

 

 

pageContext 객체가 각각의 서블릿 내에서만 정보 공유를 하는 반면, application 객체는 javax.servlet.ServletContext 인터페이스 형의 객체로써, 환경 설정 파일인 WEB-INF/web.xml 파일을 이용하여 어플리케이션 내의 모든 서블릿 내에서 정보를 공유 합니다.

 

web.xml 파일에 파라미터는 다음과 같이 <web-app> 태그 안에 이름/값 으로 등록합니다.

 

<web-app ...>
    <context-param>
        <param-name>파라미터 이름</param-name>
        <param-value>파라미터 값</param-value>
    </context-param>
</web-app>

 

web.xml 파일을 수정한 후에 톰캣을 재시작하고 나며 변경된 내용이 어플리케이션에 적용됩니다.
다음 메소드를 이용하여 web.xml 파일에 등록된 파라미터를 얻을 수 있습니다.

 

Enumeration getInitParameterNames()
String getInitParameter(String name)


WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

,

Out object

Programming/JSP 2013. 4. 13. 01:11

out 내장 객체의 기능

 

  • 웹 브라우저에 출력될 내용을 지정
  • JSP 페이지에 대한 버퍼 관리

 

 

out 내장 객체는 java.io.Writer 클래스를 상속받은 JspWriter 클래스 타입입니다.
버퍼와 관련된 clear(), clearBuffer(), close(), flush(), getBufferSize(), getRemaining(), isAutoFlush(),
출력에 관련된 newLine(), print(), println(), write() 등의 메소드를 사용할 수 있습니다.

 

jsp 페이지의 page 지시문에서 buffer 관련 속성을 지정할 수 있습니다.
<%@ page buffer="8kb" autoFlush="true" %>
이것은 입력하지 않았을 때 설정되어 있는 기본값 입니다.
autoFlush 란 지정한 버퍼의 크기가 가득찼을 때 flush(뿌려줌)할 것인지에 대한 속성입니다.
false 값을 지정할 시에는 버퍼가 가득찼을 때 예외를 발생시키고 작업이 중단됩니다.

 

 

예제1)

 

<html>
<body>
<?
out.print( out.getRemaining() );
out.close();
?>
</body>
</html>

 

버퍼 관련 속성을 지정하지 않았으므로 기본 값인 buffer="8kb" autoFlush="true" 상태입니다.
getRemaining() 메소드로 현재 남아있는 버퍼 크기를 알려줍니다.
8kb에서 <html><body> 등의 텍스트들을 뺀 크기입니다.
close() 메소드는 현재 쌓인 버퍼를 flush 하고 스트림을 닫습니다.
그 뒤의 </body></html> 은 처리되지 않을 것입니다.

 

 

예제2)

 

<html>
<body>
<?
out.clearBuffer();
out.print( out.getBufferSize() );
?>
</body>
</html>

 

clearBuffer() 메소드는 버퍼의 내용을 다 지웁니다.
<html><body> 가 버퍼에서 삭제될 것입니다.
getBufferSize() 메소드는 남아있는 버퍼 크기를 알려줍니다.
clearBuffer() 로 버퍼가 비었기 때문에 8192를 나타낼 것입니다.

 


WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

,

pageContext object

Programming/JSP 2013. 4. 12. 22:38

pageContext 내장 객체의 기능

 

  • 하나의 서블릿에 하나의 PageContext 객체 존재
  • 현재 페이지에서 속성 공유
  • 다른 페이지 호출

 

 

해당 페이지에서 속성을 설정하고 공유하기 위한 메소드를 제공합니다.

 

void setAttribute(String name, Object value)
Object getAttribute(String name)
void removeAttribute(String name)

 

getAttribute() 메소드 구현시 Object 형으로 리턴하므로 원래 형으로의 캐스팅이 필요합니다.

 

 

요청과 응답 제어

 

pageContext 내장 객체를 사용하여 다른 페이지에서 요청과 응답을 처리할 수 있습니다.

 

forward(java.lang.String relativeUrlPath)
- 해당 페이지의 버퍼는 모두 삭제되고 명시된 url로 이동하여 요청과 응답 처리

 

include(java.lang.String relativeUrlPath)
- 명시된 url로 이동하여 요청과 응답처리 후 해당 페이지로 돌아와 마무리

 

 

예제)

// page1.jsp
<%
out.println("호출 전 --- ");
pageContext.include("page2.jsp"); 
out.println(" --- 호출 후");
%>

// page2.jsp
<%=request.getParameter("name")%>

 

이라고 했을 때 http://domain/page1.jsp?name=lee 를 요청했다면,
호출 전 --- lee --- 호출 후 라고 출력될 것입니다.
하지만 include 대신 forward 메소드를 사용한다면 버퍼가 삭제되고 요청과 응답 제어가 넘어가서
lee 만 출력될 것입니다.
url은 이동하지 않습니다.


WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

,

Response object

Programming/JSP 2013. 4. 11. 00:28

Response 내장 객체의 기능

 

  • 응답 페이지 설정
  • 클라이언트로 전달될 헤더 설정. addHeader(), setHeader()
  • 페이지 redirect

 

 

<%@ page contentType="text/html; charset=utf-8" %>

 

jsp 에서는 응답 페이지의 MIME 타입과 문자 인코딩을 설정하는 방법으로 page 지시문을 이용합니다만,
직접 설정할 필요가 있을 때는 아래와 같이 기술하도록 합니다.

 

response.setContentType("text/html");
response.setCharacterEncoding("utf-8");

 

 

redirect 는 sendRedirect() 메소드를 이용합니다.

 

<% response.sendRedirect("xxx.jsp"); %>

 

redirect 되고나면 응답 헤더에 다음과 같이 정보가 추가될 것입니다.

 

HTTP/1.1 302 Found (originally temporary redirect)
Location: xxx.jsp


WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

,