* <jsp:forward>

 1. JSP의 수행을 다른 컴포넌트로(JSP, Servlet, HTML)로 이동하는 태그
 2. RequestDispatcher객체.forard() 실행을 태그화한 것
 3. 요청 Dispatch 방식으로 이동
 4. 속성
   - page : 수행을 이동할 컴포넌트의 url 설정
5. 예)
   <jsp:forward page="abc.jsp"/>
   -> 의미
   RequestDispatcher rdp = request.getRequestDispatcher("abc.jsp");
   rdp.forward(request, response);

 

- CustomerDTO

 

'프로그래밍 > JSP Programming' 카테고리의 다른 글

2012-5-7 EL(Expression Language) - 표현식 언어  (0) 2012.05.07
2012-5-7 include태그  (0) 2012.05.07
2012-5-4 <jsp:getProperty> 태그  (0) 2012.05.04
2012-5-4 setProperty  (0) 2012.05.04
2012-5-4 useBean태그  (0) 2012.05.04
Posted by 조은성
,

* <jsp:getProperty> 태그

 1. <jsp:useBean>태그로 lookup한 객체의 property 값을 조회하여 출력하는 태그
 2. bean 객체의 getter 메소드를 호출한다.(getXXX 또는 is XXX)
 3. 속성
   - name : 프라퍼티를 조회할 객체의 이름.ustBean의 id값
   - property : 조회할 프라퍼티의 이름(getter메소드의 이름)
 4. 예)
   <jsp:getProperty name = "mto" property="age"/>
   -> 의미
   <%=mto.getAge() %>

- getProperty사용 예

- 결과보기

 

'프로그래밍 > JSP Programming' 카테고리의 다른 글

2012-5-7 include태그  (0) 2012.05.07
2012-5-4 <jsp:forward>  (0) 2012.05.04
2012-5-4 setProperty  (0) 2012.05.04
2012-5-4 useBean태그  (0) 2012.05.04
2012-5-4 액션 태그(Action Tag)  (0) 2012.05.04
Posted by 조은성
,

* <jsp:setProperty>
 1. <jsp:useBean> 태그로 lookup 한 객체(Attribute)의 property에 값을 설정하는 태그
 2. Lookup 한 Attribute의 setter 메소드를 호출하여 값을 설정한다.
   - 명시적인 값을 설정
   - 요청파라미터로 넘어온 값을 설정
 3. 속성
   - name : 값을 설정할 bean의 이름. useBean의 id값
   - property : 값을 설정할 property 명. (setter메소드에서 set을 제외한 이름)
   - value : 설정할 값
   - param : 요청파라미터의 값을 설정할 경우, 요청파라미터의 이름
 4. 요청파라미터로 넘어온 값을 설정할 경우 property의 이름과 요청파라미터의 이름이 동일한 경우 param을 생략할 수 있다.
 5. 예)
   <jsp:setProperty name="mto" property="id" value="myid"/>
   ->의미
   mto.setId("myId");

--------------------------------------------------------------------------------------
   <jsp:setProperty name="mto" property="name" param="p_name"/>
   ->의미
   mto.setName(request.getParameter("p_name"));

4. 요청파라미터로 넘어온 값을 설정할 경우 property의 이름과 요청파라미터의 이름이 동일한 경우 param을 생략할 수 있다.
-> <jsp:setProperty name="mto" property="name" />

 

jsp
WebContent
이름 : actiontab/req2.jsp

jsp
WebContent
이름 : actiontab/res2.jsp

 

jsp
WebContent
이름 : actiontab/register_customer.jsp

 

 

Posted by 조은성
,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Posted by 조은성
,

* <jsp:useBean>

1. 속성 영역(page, request, session, application) 에 binding 된 속성 객체를 lookup한다. 만약 가져 오지 못하면 생성하여 그 영역에 binding한다.

2. 태그의 attribute(속성)
 - id : 자바식별자, binding 시 설정 이름
 - class : lookup할 클래스의 이름. fully name으로 설정
 - scope : 속성 영역, 값 : page(기본), request, session, application
- 예)
<jsp:useBean id="mto" class="dto.MemberDTO" scope="request"/>

-> 의미
MemberDTO mto = (MemberDTO)request.getAttribute("mto");
if( mto == null ){
   mto = new MemberDTO(); //no-arg 생성자로 생성, 따라서 MemberDTO class에는 반드시 no-arg생성자가 있어야 한다.
   request.setAttribute("mto",mto);
}

 

[실습]
class
package : myjsp.dto
class : CustomerDTO

jsp
WebContent
이름 : actiontag/req1.jsp

 

 

 

- servlet class
package : myjsp.actiontag
name : RegisterCustomerSerlvet
url-mapping : /register

 

 * 입력

 * request 스코프의 값 읽어온 결과

 * session스코프의 값 읽어온 결과

 

 

* scope를 request로 바꿨을 시의 결과

 

 * 응답이 다시 갔다오므로 세션처럼 계속 값을 유지하지 못하고 null값이 들어가게 된다.

Posted by 조은성
,

* 액션 태그(Action Tag)

 - JSP 내에서 자바코드를 줄이기 위한 태그
    - 액션 태그는 JSP내에서 JAVA코드 없이 태그를 이용해 동적인 실행을 처리 하기 위해 제한됨
    - 태그와 Java코드를 연결하여 JSP가 Servlet으로 변환 시 Web Container가 그에 알맞은 동적인 실행을 처리 

 - 종류
    - 표준 Action 태그 : Jsp 스펙에서 제공하는 태그
    - Custom tag : 사용자 정의 액션 태그


 - 기본 주문
    - <prefix : 태그명 속성 = "속성값" [속성="속성값"...]>
    - prefix - 태그 library를 구분하기 위한 이름
    - xml 문법을 따른다.
       - 대소문자 구분
       - 속성의 값은 ' 또는 "으로 감싸준다.
       - 태그는 반드시 닫아야 한다.
       - 예)
          <c:forEach item="list" var="mto"></c:forEach>
          <jsp:getProperty name='cto' property='name'/>

 

* 표준 액션 태그

 - JSP 스펙에서 제공하는 액션태그
   - 따로 library를 설정할 필요 없이 web container가 제공한다.
 - 구문
   <jsp:태그명 속성='값' ...>
 - 주요 태그
   - Attribute로 설정된 빈 객체와 연동하기 위한 태그
      - useBean, forward, param

 

Posted by 조은성
,

* 초기파라미터 xml에 지정하고 jsp로 불러오기 [실습]

- dynamic web project
myjsp


- webContent
implicit_var/init_param.jsp


- web.xml

 

 * servlet mapping으로 된 url 경로로 접근 했을 시 결과 : http://localhost:8088/myjsp/init_param

 * servlet 값으로 url 경로에 접근 했을 시 결과 : http://localhost:8088/myjsp/implicit_var/init_param.jsp(servlet 객체 내에서만 사용하므로 config초기 파라미터 값이 null이 나온다.)

Posted by 조은성
,

* 내장 객체(Implicit variable)

 1. jsp에서 기본적으로 제공해 주는 객체
  - 변수의 선언, 객체의 생성, 할당 없이 JSP 태그에서 사용할 수 있는 객체
  - JSP가 서블릿으로 변환될 때 web container가 생성해서 제공

 2. 종류
   - request : HttpServletRequest
   - response : HttpServletResponse (ex : 쿠키 관련된 것에 많이 사용된다)
   - out : JspWriter - Servlet에서의 PrintWriter 역할
   - session : HttpSession - <%@ page session="false"%> 로 설정하면 안 생긴다.
   - application : ServletContext
   - config : ServletConfig
   - pageContext : PageContext - Servlet에는 없는 객체로 다른 내장 객체들을 생성할 수 있다.
   - page : this - 서블릿 객체 자신
   - exception : Throwable - <%@ page isErrorPage="true"%>로 설정 된 경우만 생성(default 는 false)

Posted by 조은성
,

* JSP 스크립트 태그

1. 지시자(Directive) 태그
2. 표현식(Expresstion) 태그
3. 선언자(Declaration) 태그(중요하지 않음)
4. 스크립트릿(Scriptlet) 태그
5. 주석

* 지시자 태그 

 - Web container가 JSP를 Servlet으로 변환 할 때 특정 지시를 내리기 위해서 사용하는 태그
 - 구문
    <%@ 지시어 속성="값" [속성="값" ..]%>
 - 지시어
   - page : 페이지의 기능, 특징을 지시
   - include : jsp 페이지에 다른 페이지를 포함시킬 것을 지시
   - taglib : jsp 페이지에서 사용할 custom tag 라이브러리 등록을 지시
 - page 지시자
   - 페이지에 관련된 기능 환경을 정의하는 지시어
   - 속성
      - import : jsp에서 사용할 클래스들을 import할 때 사용
      - contentType : response.setContentType()의 인수로 들어갈 값 설정
      - session : 내장 객체 session의 생성 여부 설정. 값 : true//false, true가 default
      - errorPage : jsp가 실행 도중 exception이 발생했을때 이동할 url 지정

* 표현식 태그

 - 응답 Stream을 통해 출력하기 위한 태그
 - 구문
   <%= 출력내용 %>
 - 예)
   <%="안녕하세요" %> ->만약 서블릿으로 바꾸면 out.print("안녕하세요");

   <% int i =10; %> <%=i %>
 - 서블릿으로 변환 시 out.print(출력내용); 으로 변환됨

 * 선언자 태그

 - JSP가 서블릿으로 변환 될때 서블릿의 member 변수(Field)나 member 메소드를 선언할 때 사용
   - jspInit(), jspDestory() 오버라이딩 시 사용
   - _jspService()는 오버라이딩 해서는 안된다.
 - 구문
   <%! 선언문 %>

* dynamic web project : myjsp
  web content : /scripttag/jsp_lifecycle.jsp

- 실행결과

 

 

* 스크립트릿 태그

 - 클라이언트의 요청에 대해 서비스 하는 동적 코드(java 실행 구문)을 작성 하기 위한 태그
 - 태그내의 코드는 서블릿으로 변환 시 _jspService()의 로컬 코드로 삽입된다.
 - 구문
   <% java 코드 %>
 - 예
   <% if(i>10){%> -> java code
     10 보다 큽니다.  -> HTML
   <%}%>              ->java code

-> 서블릿으로 변경
_jspService(){
   if(i>10){
       out.println("10보다 큽니다.");
   }
}

 

* 주석

 - jsp에서의 주석
   - html 주석 : <!-- 주석 내용--> : client에 전송
   - jsp 주석 : <%-- 주석내용 --%> : client에 전송이 안됨
   - java 주석 : //,/* 주석내용 */
      - 스크립트릿, 선언자 태그에서 사용 가능

 

- 소스보기 실행 시 결과 보기

 

Posted by 조은성
,

* servlet 정의 (Servlet<-java(CGI))

- servlet 순서
1. 요청 Data
2. 비지니스 로직 처리
3. 응답 처리

* 서블릿은 java를 프로그램의 메인으로 HTML을 사용한다. java -> HTML
                                                                                (동적)   (정적)

* jsp(java server page)

- jsp는 HTML을 기반으로 java를 사용한다. HTML -> java
(web container가 jsp를 java파일로 바꾼다음에 컴파일해서 class 파일로 만드는 역할을 한다)

* jsp 수행 순서

 

- 서비스 준비단계 : 1~5번
  소멸단계 : 7번 

* HTML 기반에서 정적인코드<HTML태그>, 동적인 코드<jsp태그>를 java코드로 처리하는 것이 jsp이다.

* jsp Tag - 1. 스크립트 태그(script) ->java 코드를 넣는 태그(동적인 코드)
                                                    구문 : <% %>
- jsp Tag예시

* jsp로 위와 같이 만들어 실행하면 webcontainer가 서블릿 형태로 바꿔서 아래와 같이 수행된다.


                2. 액션태그(action) -> jsp에서 java코드를 대신하기 위한 태그(java코드를 넣지 않는 태그)
                      ① 표준 액션 Tag - Servlet/jsp spec에서 제공(기본적으로 제공)
                      ② custom Tag    - 사용자 정의 tag(사용자가 만들어 씀)
- 액션 Tag 예시

 

 3. Expression Language2.0

* 톰켓에서 서블릿 변환 확인 경로
D:\apache-tomcat-6.0.35\work\Catalina\localhost\member_servlet\org\apache\jsp

Posted by 조은성
,