posted by changhozz 2012. 9. 11. 21:42

파라미터 request될때 String으로 넘어온다.

if esle문 말고 switch 문으로 해라.

 

5장 필수 이해 요소


서블릿에 요청 전달하는 것은 순수 자바를 말함.

java ㅡ> 실행코드방식
jsp ㅡ> 스크립트방식

was(톰캣)가 실행 될때 자바가 실행됨.

톰캣 ㅡ>

jsp란 확장자가 있으면 자바 코드가 없어도 class파일을 떨군다.

 

출력 버퍼 ------

jsp가 생성한 응답 결과를 임시로 저장

출력 결과를 버퍼에 저장하고 버퍼가 꽉 차게되면 내뱉는다.
버퍼가 꽉 안찼어도 로딩이 다 됐다면 내뱉는다.

오토플러시가 투르 일때!!
팔스면 꽉찼을때 오류 띄움.


buffer 속성  보통 8kb로 설정함.8kb 성능이좋음.

버퍼 ㅡ> 잠시 거쳐가는 임시 저장소. 컨트롤 해줌.


--------------------------------------------------
웹 어플리케이션디렉터리 구성
src ㅡ> 자바만 들어감 (자바소스 저장됨.)
webcontent ㅡ> META_INF
           ㅡ> WEB_INF      web.xmlㅡ>설정파일
                   ㅡ>lib 
      ㅡ>classes               
 web  ㅡ> 패키지관리를 잘해라. 지금 부터 연습. 패키기 구조 잡기.

원랜 bin폴더에 떨궈지는데
빌드패스를 classes로 바꿔라.!!!!!!!!!!!

빌드가 (컴파일이)다시 필요한 파일들을 classes에 모아둬야함.
java파일이나 server.xml이나 설정파일등.

앤트빌드 ㅡ> 수동으로 컴파일.


---------------------------------------------------------
war    ㅡ> 웹 어플리케이션 archieve

우리는 servel.xml 설정으로 해줘서 webapps를 통하지않고
바로 접근하게 한다.

 

----------------------------------------------------
목요일 (기본객체 읽어오기.)
메서드  같은거 보고오기.

 

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

1) JSP의 처리과정
웹 컨테이너는 JSP에 해당하는 서블릿이 존재하지 않을 경우
JSP페이지를 컴파일 하여 서블릿을 생성한 후, 생성된 서블릿을
사용하여 클라이언트의 요청을 처리한다.
JSP에 해당하는 서블릿이 존재하는 경우엔 곧바로 서블릿을
사용하여 클라이언트의 요청을 처리한다.

즉, JSP 페이지를 요청할 때에는 JSP를 직접적으로 실행하는 것이
아니라, JSP를 자바 소스 코드로 변환을 한ㄷ 뒤 컴파일 해서 생성된
서블릿을 실행하는것 이다. 여기서 JSP 페이지를 자바 코드로
변경하는 단계를 "변환 단계"라고 하며, 자바 코드를 서블릿 클래스로
변경한는 단계를 "컴파일 단계"라고 한다.

2) 출력 버퍼와 응답
JSP페이지가 생성하는 출력 내용을 곧바로 웹 브라우저에 전송하지 않고
버퍼에 저장했다가 한꺼번에 전송함으로써 생기는 장점은 다음과 같다.
-데이터 전송 성능이 향상된다.
-곧바로 웹 브라우저로 전송되지 않기 때문에, JSP 실행 도중에 버퍼를 비우고
새로운 내용을 보여줄 수 있다.
-버퍼가 다 차기 전까지는 헤더를 변경할 수 있다.

버퍼 설정.
<%@ page buffer = "8kb"%>
보통 8kb로 설정한다고함.(가장 높은 성능을 보임.)

"none" 일경우엔 내용을 바로 웹 브라우저에 전송.
page디렉티브 속성중 autoFlush는 true, false를 속성값으로 갖는다.
true : 버퍼가 다 찼을 경우 버퍼를 플러시하고 계속해서 작업을 진행
false: 버퍼가 다 찼을 경우 예외를 발생시키고 작업을 중지.

3) 웹 어플리케이션 디렉터리 구성과 URL 매핑

WEB-INF = 웹 어플리케이션 설정 정보를 담고 있는 web.xml 파일이 위치한다.
WEB-INF\classes = 웹 어플리케이션에서 사용하는 클래스 파일이 위치한다.
WEB-INF\lib = 웹 어플리케이션에서 사용하는 jar파일이 위치한다.

4) 웹 어플리케이션의 배포
개발된 웹 어플리케이션을 실 서버에 배포하는 방법은 크게 다음의 두 가지가 있다.
-대상 디렉터리에 직접 복사
-war 파일로 묶어서 배포

'JSP > JSP 수업' 카테고리의 다른 글

JSP 수업 DB부분  (0) 2012.10.05
네번째 수업.  (0) 2012.09.13
두번째 수업 (추가정리).  (0) 2012.09.07
두번째 수업.  (0) 2012.09.07
첫번째 수업.  (0) 2012.09.03
posted by changhozz 2012. 9. 7. 19:36

일반적인 JSP 코드는 JSP페이지에 대한 정보를 입력하는 설정 부분과 실제로 HTML 문서를
생성하는 생성 부분으로 나눌 수 있다.
JSP의 설정 부분에는 JSP 페이지에 대한 정보가 위치하며, 일반적으로 다음과 같은 정보를 입력한다.

●JSP페이지가 생성하는 문서의 타입.
●JSP페이지에서 사용할 커스텀 태그
●JSP페이지에서 사용할 자바 클래스 지정 (import)

<%@page...%>   ㅡ> page 디렉티브라고 함.

<%@ page import = "java.util.Calendar, java.util.Date"%> 이런식으로 한번에 속성값을 써도 됨.(콤마)

page 디렉티브 속성중  trimDirectiveWhitespaces는
디렉티브나 스크립트로 인해 발생한 공백 문자가 응답 결과에 포함되지 않게 해준다.
즉 jsp페이지를 작성한후 소스보기를 하면 자바내용이 안보이게 되는데
이부분은 원래 공백으로 나타나게된다.
이 공백을 없애 준다는것.
사용법 ㅡ>
<%@ page trimDirectiveWhitespaces = "true" %>

 

JSP가 제공하는 디렉티브

 

디렉티브 

설명 

page 

JSP 페이지에 대한 정보를 지정한다. JSP가 생성하는 문서의 타입, 출력 버퍼의 크기, 에러 페이지 등 JSP페이지에서 필요로 하는 정보를 입력한다.

taglib 

JSP페이지에서 사용할 태그 라이브러리를 지정한다. 

include 

JSP페이지의 특정 영역에 다른 문서를 포함시킨다. 

 

 

--------------------------------심화--------------------------------------

*액션태그 - JSP 페이지에서 자바 코드 등의 스크립트 언어를 사용하지 않고도 다른 페이지의
서블릿이나 자바빈의 객체에 접근 할 수 있도록 태그를 이용해 구현된 기능을 말함.

액션태그 중의 하나인 <jsp:include>는
특정한 페이지의 실행 결과를 현재 위치에 포함시킬 때 사용 된다.

ex) <jsp:include page="header.jsp" flush="true" />

커스텀태그  = JSP코드에서 중복되는 것들을 모듈화 하거나 또는 스크립트 코드를
사용할 때의 소스 코드의 복잡함을 없애기 위해서 사용된다.

JSTL(JavaServer Pages  Standard Tag Library) - 커스텀 태그 중에서 자주 사용되는 것들을
별도로 표준화한 태그 라이브러리.

 

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

 

 

 

 

 

'JSP > JSP 수업' 카테고리의 다른 글

JSP 수업 DB부분  (0) 2012.10.05
네번째 수업.  (0) 2012.09.13
jsp 세번째수업  (0) 2012.09.11
두번째 수업.  (0) 2012.09.07
첫번째 수업.  (0) 2012.09.03
posted by changhozz 2012. 9. 7. 14:34

-JSP의 구성요소.-

1).디렉티브
▶사용법  <%@ 디렉티브이름 속성1="값1"; 속성2="값2" %>
ex )  <%@ page contentType="text/html"%>
text/html 말고도 여러 가지가 있는데 이것을 MIME타입이라고 한다.
▶제공 디렉티브 
-page : JSP페이지에  대한 정보를 지정.
(문서의 타입, 출력 버퍼의 크기, 에러 페이지 등 정보 지정).
--page의 주요 속성
---contentType : JSP가 생성할 문서의 타입을 지정
---import  : JSP 페이지에서  사용할 자바 클래스를 지정
---session  : JSP페이지가 세션을 사용할 지의 여부를 지정.
---info : JSP 페이지에 대한 설명을 입력한다.
---errorPage  :  에러가 발생할 때 보여줄 페이지를 지정.
---isErrorPage : 에러 페이지인지의 여부를 지정.
-taglib : 사용할 태그 라이브러리를 지정.
-include : 다른 문서를 포함.
모두 한번에 정의 할 수 있음.
<%@ page…%>
<%@ taglib…%>
<%@ include…%>

2).스크립트 요소
▶표현식 (값을 출력) - 리턴타입이 있는 경우엔 표현식을 써야함.
사용법  <%= 출력할 값 %>
<%= author %> 와 ${author} 는 같다.
▶스크립트릿 (자바 코드를 실행)
사용법  <% 자바코드 %>
▶선언부 (자바 메서드 정의) 
사용법  <%!  메서드   %>

3).기본객체(=내장객체)
별도 선언없이(iterator처럼 new 연산자 없이) 사용할 수 있음.
▶주요 기본 객체
★ request   -  요청 정보를 구할 때 사용 (요청시 보이진 않지만 , 헤더 부분도 딸려감.)
주요 기능
-클라이언트(웹 브라우저)와 관련된 정보 읽기 기능
-서버와 관련된 정보 읽기 기능
-클라이언트가 전송한 요청 파라미터 읽기 기능
-클라이언트가 전송한 요청 헤더 읽기 기능
-클라이언트가 전송한 쿠키 읽기 기능.
-속성처리 기능
response  -  응답과  관련된 설정 (헤더, 쿠키 등) 시 사용.
out  -  직접 응답을 출력할 때 사용.
session -  세션관리에 사용. (기록 같은걸로 보면 됨.)
★ response  -   웹 브라우저에 전송하는 응답 정보 설정
주요 기능
-헤더 정보 입력
- 리다이렉트 처리
방법 ㅡ>  response.sendRedirect (String location)

4)파라미터를 전송하는 방식
▶GET 방식 - 쿼리문자열로 전송
ex) ?이름1=값1&이름2=값2       ㅡ> 보안상의 문제가있음.

▶POST방식 - 요청 몸체 데이터로 전송  (헤더 바디안에 기술.)

▶파라미터 값의 인코딩/디코딩
웹 브라우저에서 '김창호'란 파라미터 값을 넘기게되면 웹브라우저는 '김창호'를 인코딩하여
웹 서버로 넘기게되면 웹 서버는 다시 인코딩된 '김창호'(%E3%F12% 이런식으로 인코딩됨.)를
다시 디코딩해야한다.
-방법.
<%
request.setCharacterEncoding("euc-kr");
String name = request.getParameter("name");
%>

 

 

'JSP > JSP 수업' 카테고리의 다른 글

JSP 수업 DB부분  (0) 2012.10.05
네번째 수업.  (0) 2012.09.13
jsp 세번째수업  (0) 2012.09.11
두번째 수업 (추가정리).  (0) 2012.09.07
첫번째 수업.  (0) 2012.09.03