JSP 기본 요소

Web/JSP 2011. 3. 16. 00:21 Posted by Request

1.JSP 지시어(Directive)
표기 예 : <%@ ... %>
종류     : page 지시어
             include 지시어
             taglib 지시어


  1)page 지시어(language, extends, import, session, buffer, isThreadSafe, info, errorPage, contentType, isErrorPage, pageEncoding)
import속성을 제외한 나머지 속성은 한번씩만 지정 할수 있음.
속성 - (스크립트 언어, 세션 사용여부, 에러 페이지등 설정 정보를 지정 가능)

(1)language속성
  -JSP 파일 내에서 사용될 스크립트 언어를 지정하는 속성
(지정하지 않을경우, JSP컨테이너가 지원하는 기본 언어인 자바가 language 기본 속성으로 지정됨)
※주의점 : language속성과 include할 페이지의 language가 반드시 같아야 함.
<%@ page language="java" %>


(2)extends 속성
 -상속할 부모 클래스 지정하는 속성 (JSP 컨테이너에서 특별히 지정하는 경우는 거의 없다.)
<%@ page extends="javax.servilet.jsp.HttpJspBase" %>


(3)import 속성
 -언어에 대한 패키지 또는 클래스 연결 하기 위해 사용
<%@ import "java.io.*", java.util.ArrayList" %>

(4)session 속성
 -동일한 클라이언트에 대해 정보를 유지할 필요가 있는 경우 사용
(예를 들어 로그인 상태 유지)
세션관리에 의해 클라이언트의 정보가 유지되도록 만들어진 가상의 커넥션을 HTTP 세션이라고 함.
<%@ page session="true" %>

(5)buffer 속성
-JSP 페이지가 서블릿으로 변환되어 응답을 생성해 클라이언트에 전송할 때 사용되는 버퍼의 크기를 지정하는 속성.
일반적으로 기본값인 "8kb"면 충분
<%@ page buffer="16kb" %>

(6)autoFlush 속성
-autoFlush 속성은 buffer속성에서 지정한 버퍼가 다 채워졌을 경우 이를 어떻게 처리할지 JSP 컨테이너에게 알려주는 속성.
기본값은 "true"
false로 지정할시 지정한 버퍼가 다 채워 졌을 경우 버퍼를 전송하는 것이 아니라 Exception을 발생
만일 buffer 속성에서 "none"으로 지정했을 경우 autoFlush속성을 "false"로 지정하는 것이 불가능함.
<%@ page autoFlush="true" %>

(7)isThreadSafe 속성
-기본적으로 JSP는 다중 쓰레드 기반으로 실행.
(JSP파일 > JSP컨테이너에 의해 파싱되어 서블릿 인스턴스가 생성되고 사용자 요청 각각에 대한 쓰레드가 하나씩 생성되어 그 쓰레드가 사용자의 요청을 처리하는 방식)
-속성 "false"로 지정하면 JSP파일이 실행되더라도 하나의 쓰레드에 의한 service()메소드 실행이 완전히 끝날때까지 다른 쓰레드는 기달리게 된다.
default = "ture"
<%@ page isTheadSafe="true" %>

(8)info 속성
-해당 페이지 전체에 대한 주석의 역할을 하는 속성
<%@ page info="이 페이지는 이클립스로 만들어진 페이지입니다." %>


(9)errorPage 속성
-errorPage속성은 JSP 페이지를 처리하는 과정에서 예외 발생했을 때 해당 페이지에서 직접 처리하지 않고 에러 페에지를 지정해 그 에러 페에지에서 예외를 처리하도록 할때 사용하는 속성.
<%@ page errprPage="errpr/error.jsp" %>
※주의점 : buffer속성에 특정 값이 지정되어 있고 autoFlush가 "true" 에러가 아닌 예외처리 됨.

(10)contentType 속성
-JSP 페이지가 전송 할 응답의 형태가 어떠한 MIME 형식으로 되어 있는 지를 지정하는 속성.
<%@ page contentType="text/html"; charset:euc-kr" %>

(11) isErrorPage 속성
-isErrorPage 속성은 현재 페이지가 다른 페에지에서 발생한 예외을 처리할 페이지일때 지정하는 속성

(12)pageEncoding 속성
-JSP 페이지의 문자셋 인코딩 방식을 지정할 때 사용하는 속성
기본값으로 "ISO-8859-1"   <-- 북유럽 문자셋 인코딩 방식(한글 지원 X)
                "euc-kr"    <--- 한글깨짐현상 시 필히 확인할 것.
※문자셋은 pageEncoding 속성을 사용해서 지정할 수도 있지만 보통 pageEncoding 속성을 사용하지 않고 위에서 contentType 속성을 지정할때 한것처럼 한번에 지정하여 사용함.



 

Session 내장 객체 이해-JSP05

Web/JSP 2009. 2. 10. 19:07 Posted by Request

1.내장 객체 영역이란?
- 객체끼리 공유 할수 있는 범위(4가지)

영역          객체
page        pageContext
request     request
session    session
appliction application


setAttribute(속성명, 속성값)
getAttribute(속성명, 속성값)


웹어프리케이션 접근 종류
A.page <=== > B.page            A ->B 전송 요청시 request영역에서 생성됨
-page는 정적 범위

------------------------------------------------------------------- session 영역


application 영역 객체(환경 설정 데이터 공유 주로 쓰임)

내장객체 공통 메소드
setAttribute(String Key, Object value)   << 리턴값 void
                    (    속성, 값 )                
getAttribute(String형)  << 리턴값 Object
getAttributeNames() << java.util.Enumeration
removeAttribute(String)  << void

 

JSP 용어 정리

2009. 2. 2. 23:51

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

필터링 소스, 자바파일

Web/JSP 2009. 1. 30. 01:16 Posted by Request


----------- web.xml 설정 -------------------------------

<filter>
  <filter-name>encodingFilter</filter-name>
  <filter-class>struts.filter.EncodingFilter</filter-class>
  <init-param>
   <param-name>encoding</param-name>
   <param-value>euc-kr</param-value>

  </init-param>
 </filter>
 <filter-mapping>
  <filter-name>encodingFilter</filter-name>
  <url-pattern>/*</url-pattern>
 </filter-mapping>
------------- 필터링 소스 ----------------------------------
package struts.filter;

import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;


public class EncodingFilter implements Filter {
 private String encoding = null;

 protected FilterConfig filterConfig = null;

 
 public void destroy() {

  this.encoding = null;
  this.filterConfig = null;

 }

 /**
  * ServletRequest객체에 web.xml에서 전달된 인코딩을 설정하는 메써드.
  */
 public void doFilter(
   ServletRequest request,
   ServletResponse response,
   FilterChain chain)
 throws IOException, ServletException {

  if (request.getCharacterEncoding() == null) {
   if (encoding != null) {
    request.setCharacterEncoding(encoding);
   }
  }

  chain.doFilter(request, response);
  System.out.println("필터 기능 사용");
 }

 /**
  * web.xml에서 전달된 인코딩 값을 초기화하는 메써드.
 
  *Filter 객체생성후 바로 호출되는 메소드
  *-web.xml의 파라메타 데이터를 읽어온다.  
 
 
  */
 public void init(FilterConfig filterConfig) throws ServletException {
  this.filterConfig = filterConfig;
  /* <filter-name>
  encodingFilter
 </filter-name>
  <filter-class>
  struts.util.EncodingFilter
  </filter-class>
  <init-param>
   <param-name>encoSding</param-name>
   <param-value>euc-kr</param-value>
  
  </init-param>
 </filter>*/

  this.encoding = filterConfig.getInitParameter("encoding");
 }

 public FilterConfig getFilterConfig() {
  return filterConfig;
 }

 public void setFilterConfig(FilterConfig cfg) {
  filterConfig = cfg;
  
 
 }
}

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.