posted by changhozz 2012. 9. 25. 22:11

8장 - 에러 처리.

1.page 디렉티브에서 지정.
에러페이지 지정방법.
<%@ page erroPage = "error.jsp">

에러 페이지 작성방법.
<%@ page isErroPage = "true" %>
IE에서 예외가 올바르게 보여지려면 에러 페이지가 출력한 응답 데이터 크기가
513바이트보다 커야함.
만약에 513바이트보다 작다면 IE에서 기본적으로 제공하는 에러페이지가 나타남.

2.web.xml 파일에서 예외 타입 별 에러 페이지 지정.

<error-page>
<exception-type>예외클래스명</exception-type>
<location>에러페이지의 URI</location>
</error-page>

3.web.xml 파일에서 응답 상태 코드별 에러 페이지 지정.

<error-page>
   <error-page>에러코드</error-page>
   <location>에러페이지의 URI</location>
</error-page>

에러페이지의 우선순위는 번호 그대로,
page 디렉티브 ㅡ> 에외 타입별 ㅡ> 에러 코드별이다.
(아무것도 해당되지 않을 경우 웹 컨테이너가 제공하는 기본
에러 페이지를 보여줌.)

---------------------------------------------------------

9장 - 클라이언트와의 대화 1: 쿠키

쿠키 ㅡ> 웹 브라우저가 보관하고 있는 데이터로서
웹 서버에 요청을 보낼 때 함께 전송.

쿠키의 생성은 웹서버에서 일어나지만, 쿠키의 저장소는 웹 브라우저이다.

쿠키 생성법.
<%
Cookie cookie = new Cookie("cookieName", "cookieValue");
response.addCookie(cookie);
%>
cookie 이름은 cookieName이고 값은  cookieValue이며,
cookie객체를 더하여 보낸것이다.

쿠키를 읽으려면,
Cookie [] cookies = request.getCookies();
이런식,


* 쿠키는 값으로 한글과 같은 문자를 가질 수 없다.
따라서 인코딩을 하여 보낸후, 디코딩하여 받아야한다.

값 설정시 : URLEncoder.encode("값". "euc-kr")
인코딩을 해준후 인코딩 값을 쿠키의 값으로 넣어준다.
new Cookie("name", URLEncoder.encode("값","euc-kr"));

값 조회시 : URLDecoder.decode("값","euc-kr")
String value = URLDecoder.decode(cookie.getValue(),"euc-kr");

 

-쿠키의 도메인과 경로.

도메인 지정시 , 해당 도메인에 쿠키를 전달한다.
-Cookie.setDomain()으로 쿠키 설정.
-도메인 형식
 만약 .madvirus.net으로 지정해다면
지정한 도메인이 들어간 www.madvirus.net 과 javacan.madvirus.net 모두에
쿠키를 전달한다. 도메인이 벗어난 쿠키는 저장하지 않는다.

만약 경로를 지정해주었다면,
설정한 경로 및 그 하위 경로에 대해서 쿠키를 전달한다.
Cookie.setPath()로 경로 설정함.

-쿠키 유효 시간 지정.
유효시간 미 지정시, 웹 브라우저 닫을 때 쿠키도 함께 살제.
쿠키를 삭제하는 메서드는 존재하지않는다.
따라서 유효시간을 0이나 음수를 주어 삭제시킨다.
Cookie.setMaxAge()를 이용하여... (초단위임.)

 

---------------------------------------------------------------------

10장 클라이언트와의 대화 2: 세션.

세션또한 데이터를 보관하여 쿠키와 같아 보이지만,
세션은 웹서버에서 생성되고, 저장또한 웹 서버에 저장된다.
(세션은 브라우저당 하나지만, 쿠키는 여러개일수있음.)

세션 사용법,
<%@ page sessing = "true"%>
<%
    session.setAttribute("userInfo", userInfo);
%>
기본 값이 true이므로 false로 하지 않는 이상 항상 세션 사용.

 

-세션 종료/ 타임아웃.
session.invalidate()을 이용해서 세션 종료.
세션이 종료되면 기존에 생성된 세션이 삭제되고,
이후 접근 시 새로운 세션이 생성 됨.

또한 유효 시간을 설정하여 마지막 세션 사용 이후 유효 시간이 지나면
자동 종료될수 있도록 web.xml 파일에서 지정해줄수 있음.

<session-config>
    <session-timeout>
      30 (분단위임)
     </sessing-timeout>
</session-config>
또는 session 기본객체의 setMaxInactiveInterval()메서드를 이용하여 지정가능.
(초단위임.)

------------------------------------------------------------------------

11장 <jsp:useBean> 액션 태그

자바빈(JavaBeans)이란 웹 프로그래밍에서 데이트의 표현을 목적으로 사용하는것을 말함.

collection 개념으로써 페이지상에서 들고다닐수있는, 말그대로 콩 조각이 모인 완두콩을 뜻한다.
collection을 이용하여 클래스를 만든 후, 객체를 사용하여 필요한 값에 접근한다.
일반적으로 setter, getter를 이용하여 값을 읽고 쓴다.

여기서 <jsp:useBean> 태그는 JSP에서 자바빈 객체를 생성할 때 사용된다.
사용법,
<jsp:useBean id ="[빈이름]" class="[자바빈클래스이름]" scope="[범위]" />

id - jsp 페이지에서 자바빈 객체에 접근할 때 사용할 이름.
class - 패키지 이름을 포함한 자자빈 클래스의 완전한 이름.
scope - 자바빈 객체가 저장될 영역을 지정. page,request,session,application 중 하나를
값으로 갖는다. 기본값은 page임.

ex)
<jsp:useBean id = "info" class="chap11.member.MemberInfo" scope="request" />
<%= info.getName()%>

-  <jsp:setProperty> 액션 태그
1.<jsp:setProperty name = "id" property="이름" value="값" />
이런식으로 객체의 값을 설정할수도 있음.
name ㅡ> 자바빈 객체의 이름
property ㅡ> 값을 설정할 프로퍼티
value  ㅡ> 프로퍼티의 값.

2.<jsp:setProperty name="id" property="이름" param="파라미터 이름" />
 param ㅡ> 프로퍼티의 값으로 사용할 파라미터 이름.

3.<jsp:setProperty name = "id" property="*" />
 프로퍼티와 동일한 이름의 파라미터를 이용해서 값을 설정
폼에 입력한 값을 자바 객체에 저장할 때 유용하게 사용.

 -  <jsp:getProperty> 액션 태그
프로퍼티의 값을 출력하기 위해 사용.
사용법,
<jsp:getProperty name = "자바빈" property="프로퍼티" />
그러나 EL(Expression Language)의 사용으로 거의 사용 X

'JSP > JSP 정리' 카테고리의 다른 글

MVC패턴과 모델 1,2  (2) 2013.01.09
DB정리!!!  (0) 2012.09.26
웹 어플리케이션  (0) 2012.08.16
Chpater 1. 웹 프로그래밍 기초.  (0) 2012.08.16
웹 서버란  (0) 2012.08.16