1. 홈페이지에서 OS 를 리눅스로 선택하여 rpm버전이 아닌 bin 버전으로 받는다

2. bin파일의 실행 권한이 없기 때문에 chmod로 실행 권한을 준 다음 실행으로 압축을 푼다

3. 보통 /usr/local/ 의 경로에 설치 파일을 보관 하므로 압축이 풀린 파일을 이동시킨다.

  - 리눅스는 윈도우와 다르게 레지스트리가 없기 때문에 설치라는 개념이 없다. 그러므로 압축이 풀린 파일의 이동이 자유롭다.

 4. 환경 변수 설정

  1) vi /etc/profile

  $ JAVA_HOME=[설치경로]

  $ CLASSPATH=.:$JAVA_HOME/lib/tools.jar  //현재 위치와 라이브러리위치 모두 입력해야함. 구분선은 콜론

  $ PATH=$JAVA_HOME/bin:$PATH

  $ export JAVA_HOME

  $ export CLASSPATH

  $ export PATH

 2) 등록된 java를 재부팅없이 OS에 적용

 $ source /etc/profile

 

'Linux' 카테고리의 다른 글

CentOS php 설치시 ./configure 설정 작성표  (0) 2011.08.05
리눅스 텔넷(telnet) 한글인식  (1) 2011.03.24
리눅스 원격 설정  (2) 2011.03.24

1. JSTL(JSP Standard Tag Library) ?
    -표준화된 태그 라이브러리들을 제공함으로써 보다 편리하게 웹 응용프로그램을 개발할 수 있도록 지원
    -간단한 태그로 캡슐화한다.
    -JSP 내에 Java Source 를 사용하지 않고 태그만을 가지고 작성하도록 정의한다.
    -가독성을 증가한다.
    -JSTL 1.1 은 Servlet 2.4 이상, JSP 2.0 이상에서 지원 --> Tomcat 5.5 이상

2. Homepage
    http://tomcat.apache.org/taglibs/
    http://www.oracle.com/technetwork/java/index-jsp-135995.html

3

. Downloads
    1) http://jakarta.apache.org/site/downloads/downloads_taglibs-standard.cgi
    2) /lib/jstl.jar, /lib/standard.jar
    3) copy to : /WEB-INF/lib

4. jstl example sites test
    1) eclipse에서 standard-doc.war 과 standard-examples.war 파일을 import한다.
        import -> WAR files -> standard-examples.war 선택
    2) http://localhost:8080/standard-examples/index.html

5. JSTL 에서 제공하는 Tag의 종류
    1) http://jakarta.apache.org/taglibs/doc/standard-doc/standard/GettingStarted.html 참조하자.
    2) Core : http://java.sun.com/jsp/jstl/core : c : <c:tagname...>
    3) XML processing : http://java.sun.com/jsp/jstl/xml : x : <x:tagname...>
    4) I18N capable formatting : http://java.sun.com/jsp/jstl/fmt : fmt : <fmt:tagname...>
    5) Database access(SQL) : http://java.sun.com/jsp/jstl/sql : sql : <sql:tagname...>
    6) Functions : http://java.sun.com/jsp/jstl/functions : fn : fn:functionName(...)

6. JavaServer Pages Standard Tag Library 1.1 Tag Reference
    - http://java.sun.com/products/jsp/jstl/1.1/docs/tlddocs/index.html

7

. Core Library
   1) JSP 페이지에서 필요한 가장 기본적인 기능들을 제공
   2) <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
   3) Tags
      - c:catch  : 예외처리에 사용
      - c:out : JspWriter 에 내용 출력
      - c:set : JSP 에서 사용될 변수 설정
         <c:set value="value" target="targetObjectName" property="propertyName" />
      - c:remove : 설정한 변수 제거
      - c:if : 조건처리
      - c:choose : 다중 조건 처리
      - c:forEach : 콜렉션이나 Map 의 각 항목 처리
      - c:forTokens : 구분자로 분리된 각각의 토큰을 처리할 때 사용
      - c:when
      - c:otherwise
      - c:import : URL 을 사용하여 다른 자원의 결과를 삽입
      - c:redirect : URL 을 재작성한다.
      - c:param

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

JSP EL(Express Language) 표현언어  (0) 2011.03.24
JSP Custom Tag  (1) 2011.03.24
JSP DBCP 사용하기  (2) 2011.03.24
JavaBean  (2) 2011.03.24
JSP Action Tag  (1) 2011.03.24

Custom Tag
-JSTL 에서 지원하지 못하는 Tag 형식을 사용자가 정의해서 사용하는 Tag

1. 장점
-재사용성 : 한번 작성한 tag는 언제든지 재 사용이 가능하다.
-package 배포 : 표준화해서 다른 개발자가에게 package로 배포가 가능하다.
-가독성 : 프로그램의 가독성이 높아진다.
-의존성 : Scriptlet 을 사용하지 않기 때문에 자바 문법에 의존적이지 않는다.

2. 종류
a. JSP 1.2 스타일로 구현한 커스텀 태그
b. JSP 2.0 또는 그 이상 버전의 SimpleTag 를 사용한 커스텀 태그
c. JSP 2.0 또는 그 이상 버전의 태그 파일을 사용한 커스텀 태그

3. 자바 클래스를 기반으로 한 커스텀 태그 만들기
1) 작성순서
a. 커스텀 태그를 정의하는 자바파일의 작성
b. TLD(Tag Library Description) 파일 - 자바의 클래스 파일 등록
c. JSP 페이지에서 Custom Tag 사용

2) javax.servlet.jsp.tagext Interfaces
a. BodyTag
-JSP1.2 에서 제공하는 기존의 Custom Tag 구현시 사용
-태그의 body 내용이 있을 때 사용하는 Custom Tag
b. IterationTag
-JSP 1.2에서 제공하는 기존의 Custom Tag 구현시 사용
-반복적인 작업을 처리하는 Tag
c. Tag
-JSP 1.2에서 제공하는 기존의 Custom Tag 구현시 사용
-단순한 태그 처리시 사용하는 Custom Tag
d. SimpleTag
-JSP 2.0에서 제공하는 기존의 Custom Tag 구현시 사용
-Tag, IterationTag를 하나로 묶어서 쉽게 구현이 가능한 태그

4. JSP 1.2 기반
1) Tag Interface
-단순한 태그 처리시 사용하는 Custom Tag
-TagSupport class 지원
-int doEngTag() : 끝 태그를 만날때 실행됨
-int doStartTag() : 시작 태그를 만날때 실행됨
-Tag getParent() : 부모태그를 구한다.
-void release() : custom tag 를 사용하지 않을 때 실행됨
-void setPageContext(PageContext pc) : custom tag가 포함된 JSP page context를 전달 받는다.
-void setParent(Tag t) : 해당 태그의 부모태그가 존재할 때 부모태그를 설정한다.

2) Iteration Tag
-반복적인 작업을 처리하는 Custom Tag
-Tag interface를 상속받으므로 Tag Interface의 모든 멤버 사용가능
-TagSupport지원
-int doAfterBody() : 태그의 body 내용을 처리한 뒤에 실행

3) BodyTag
-IterationTag 인터페이스를 상속받으므로 IterationTag 인터페이스의 모든 멤버 사용 가능
-BodyTagSupport 지원
-void doInitBody() : body 를 수행하기 위한 준비
-void setBodyContent(BodyContent b) : bodycontent 속성을 지정

4) 사용예
a. Java Class 정의 : WEB-INF/src/
package com.javasoft.libs;
public class HelloTag extends TagSupport {
     public void doStartTag() throws JspException {
           JspWriter out = pageContext.getOut();
           try {
                 out.print("<font size='7' color='red'>");
                 out.print("Hello Custom Tag");
                 out.print("</font>");
           } catch(Exception ex) {
                throw new JspTagException ("Exception Occurrance : " + ex.getMessage());
           }
           return SKIP_BODY;
     }
     public int doEndTag() throws JspTagException{
           return EVAL_PAGE;
     }
}

b. TLD 파일 정의 : WEB-INF/tlds/
<Hello.tld>
<?xml version="1.0" encoding="UTF-8"?>

<taglib xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xmlns="http://java.sun.com/xml/ns/j2ee"
            xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee web-jsptaglibrary_2_0.xsd"
            version="2.0">
                 <description>JSP1.2 Custom Tag Example</description>
                 <display-name>간단한 JSP 1.2 커스텀 태그 예제</display-name>
 <tlib-version>1.0.0.0</tlib-version>
 <short-name>mytag</short-name>
 
 <tag>
  <name>hello</name>
  <tag-class>com.javasoft.libs.HelloTag</tag-class>
  <body-content>empty</body-content>
 </tag>      
</taglib>

c. web.xml 수정 <----JSP 2.0 이상에서는 할 필요없슴
<taglib>
    <taglib-uri>/WEB-INF/tlds/hello.tld<taglib-url>
    <taglib-location>/WEB-INF/tlds/hello.tld<taglib-url>
</taglib>

d. JSP 에서 사용
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<%@ taglib prefix="mytag" uri="/WEB-INF/tlds/mytaglib.tld" %>
<html>
<body>
 <mytag:hello/>.
</body>
</html>

5. JSP 2.0 기반 
1) Simple Tag
-body 의 사용여부와 상관없이 simpleTag 인터페이스 사용
-SimpleTagSupport 클래스를 사용하여 Custom tag 작성
-void doTag() : custom tag 를 만나면 살행된다.
-protected JspFragment getJspBody() : JspFrament 객체로 customtag의 body를 처리
-protected JspContext getJspContext() : JspContext 객체를 얻는다.

2) 사용예
a.  Java Class 정의 <--여기만 틀림
package com.javasoft.libs;
public class SimpleTag extends SimpleTagSupport {
     public void doTag() throws JspException {
           JspWriter out = getJspContext().getOut();
           try {
                 out.print("<font size='7' color='red'>");
                 out.print("Simple Custom Tag");
                 out.print("</font>");
           } catch(Exception ex) {
                throw new JspTagException ("Exception Occurrance : " + ex.getMessage());
           }
           return SKIP_BODY;
     }
}

6. Tag 파일을 기반으로 하는 Custom Tag
1) 개요
a. Tag File
-Custom Tag를 정의한 파일로 Custom Tag 당 하나의 Tag File이 매핑됨
b. Jsp Page
-해당 Custom Tag를 사용하는 Jsp Page

2) 작성방법
- Custom Tag 를 정의한다.
- 확장자는 .tag 를 사용한다.
-<%@ tag %> directive 를 사용한다.
-Tag Handler 로 변환되어 처리된다.
-jsp와 동일한 방식으로 같은 문법을 사용하여 작성한다.

3) Tag File Directive
a. taglib : JSP 페이지의 taglib와 동일한 기능을 수행
b. include :JSP 페이지의 include 와 동일한 기능, 단 tag file 에 맞는 문법 사용해야
c. tag : JSP 페이지의 page directive 와 동일, tag 파일의 설정 지원
d. attribute : tag file 에서 custom tag의 속성을 명시
e. variable : EL을 명시

4) tag Directive
-display-name : tag file의 확장자를 제외한 파일명
-body-content : 태그의 body의 내용에 대한 정보를 제공, empty | tagdependent | scriptless 중 하나의 값을 설정
-dynamic-attributes : 해당 태그의 동적인 속성을 지원, 이름과 값의 쌍이 map 으로 저장
-small-icon : 이미지 파일의 태그소스파일로부터 상대적인 경로를 기술
-large-icon : 이미지 파일의 태그소스파일로부터 상대적인 경로를 기술
-description : 태그의 설명
-example : 해당 액션이 사용될 때의 예제
-lanaguge
-import
-pageEncoding

7. body 가 있는 tag file 작성하기
1) body-content 속성 설정
a. tagdependent - custom tag의 내용을 처리하지 않고 그대로 사용
b. scriptless : EL 요소나 action tag 의 처리결과를 사용
2)<jsp:doBody> tag 를 사용함
a. <jsp:invoke>tag 와 유사
b. var : 속성의 이름을 저장하기 위한 변수
c. scope : 속성변수가 유지되는 범위를 설정

8. <%@ attribute %> tag
1) custom tag의 속성을 명시
2) 속성
a. description : 속성에 대한 설명
b. name : 속성의 이름, 중복을 허용하지 않음, 필수 항목
c. required : 속성의 필수여부를 설정, true | false로 설정
d. rtexprvalue : 속성의 값으로 표현식이 사용 가능한가의 여부를 결정
e. type : 속성의 타입을 기술, java.lang.String 이 기본
f. fragment : 속성값을 전달할 때 사용, JspFragment를 사용하는 경우,  true로 설정

9. <%@ variable %> Directive
1) EL 변수를 명시하는 경우에 사용
2) 속성
a.  description : 속성에 대한 설명
b. name-given / name-from-attribute : 태그파일을 사용할 페이지에서 사용할 EL의 변수이름, 두가지 속성중 하나만 기술
c. alias name-from-attribute : 속성을 사용하는 경우 반드시 기술해야 하는 속성, custom tag의 body 에서 사용될 변수를 정의
d. declare : 변수의 선언과 관계없이 기본값은 true
e. scope : 변수의 범위를 설정, AT_BEGIN | AT_END | NESTED(default)

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

JSP JSTL(표준 태그 라이브러리)  (0) 2011.03.24
JSP EL(Express Language) 표현언어  (0) 2011.03.24
JSP DBCP 사용하기  (2) 2011.03.24
JavaBean  (2) 2011.03.24
JSP Action Tag  (1) 2011.03.24
DBCP 1.4 API 의 사용방법

1. DBCP 관련 Jar 파일 및 JDBC 드라이버 Jar 파일 설치하기
   1)Downloads
   2)Downloads Jar files
- DBCP API 관련 Jar 파일 : commons-dbcp-1.4-bin.zip
- DBCP API 가 사용하는 자카르타 Pool API 의 Jar 파일 : commons-pool-1.5.5-bin.zip
   3)위의 파일의 압축을 풀고 각각의 jar 파일을 WEB-INF\lib\ 폴더에 import 한다.
        - commons-dbcp-1.4.jar, commons-pool-1.5.5.jar

   
2. 커넥션 풀 관련 설정 파일 및 초기화하기
   1) 설정파일은 jocl 로 만들어지며 WEB-INF\classes\ 폴더밑에 저장한다.
  
   소스파일) \WEB-INF\classes\pool.jocl
*********************************************************************************************************
<object class="org.apache.commons.dbcp.PoolableConnectionFactory"
   <object class="org.apache.commons.dbcp.DriverManagerConnectionFactory">
      <string value="jdbc:oracle:thin:@localhost:1521:XE" />   <!-- URL -->
      <string value="scott" />                                     <!-- user -->
      <string value="tiger" />                                     <!-- password -->
   </object>
  
   <object class="org.apache.commons.pool.impl.GenericObjectPool">
      <object class="org.apache.commons.pool.PoolableObjectFactory" null="true" />
      <int value="10" />                                          <!--  maxActive -->
      <byte value="1" />                                         <!--  wait mode -->
      <long value="10000" />                                  <!--  wait time 10000 ms -->   
      <int value="10" />                                           <!-- maxIdel -->
      <int value="3" />                                             <!-- minIdel --> 
      <boolean value="true" />                                
      <boolean value="true" />
      <long value="600000" />
      <int value="5" />
      <long value="3600000" />
      <boolean value="true" />
   </object>
  
   <object class="org.apache.commons.pool.impl.GenericKeyedObjectPoolFactory" null="true" />


   <string null="true" />
  
   <boolean value="false" />
  
   <boolean value="true" />
</object>

*********************************************************************************************************

3. 커넥션 풀 관련 드라이버 로딩하기

소스파일) \WEB-INF\src\com\javasoft\db\DBCPInit.java
*********************************************************************************************************
package com.javasoft.db;

import javax.servlet.http.HttpServlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import java.util.StringTokenizer;

public class DBCPInit extends HttpServlet {
    public void init(ServletConfig config) throws ServletException {
        try {
            String drivers = config.getInitParameter("jdbcdriver");
            StringTokenizer st = new StringTokenizer(drivers, ",");
            while (st.hasMoreTokens()) {
                String jdbcDriver = st.nextToken();
                Class.forName(jdbcDriver);
            }            
            Class.forName("org.apache.commons.dbcp.PoolingDriver");            
        } catch(Exception ex) {
            throw new ServletException(ex);
        }
    }
}

*********************************************************************************************************

4. 웹 어플리케이션이 시작될 때 DBCPInit 서블릿 클래스가 시작될 수 있도록 지정하기

소스파일) \WEB-INF\web.xml
*********************************************************************************************************
<?xml version="1.0" encoding="euc-kr"?>
....
....
  <servlet>
     <servlet-name>DBCPInit</servlet-name>
     <servlet-class>com.javasoft.db.DBCPInit</servlet-class>
     <load-on-startup>1</load-on-startup>
     <init-param>
        <param-name>jdbcdriver</param-name>
        <param-value>oracle.jdbc.driver.OracleDriver</param-value>
     </init-param>
  </servlet>
</web-app>
*********************************************************************************************************

5. 커넥션을 가져오는 DBUtil 클래스
  - 커넥션을 구하는 클래스인 별도의 DBConn 클래스를 작성하는것이 개발하는데 편리하다.

소스파일) \WEB-INF\com\javasoft\db\DBConn.java
********************************************************************************************************
package com.javasoft.db;

import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.SQLException;

public class DBConn {
    public static Connection getConnection(String poolName)
    throws SQLException {
        return DriverManager.getConnection(
            "jdbc:apache:commons:dbcp:/"+poolName);
    }
}
*********************************************************************************************************
6. 사용방법
    - 커넥션을 구하는 곳에 다음과 같이 해주면 된다.
try {
   conn = DBConn.getConnection("pool");

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

JSP EL(Express Language) 표현언어  (0) 2011.03.24
JSP Custom Tag  (1) 2011.03.24
JavaBean  (2) 2011.03.24
JSP Action Tag  (1) 2011.03.24
JSP 의 내장객체  (1) 2011.03.24

+ Recent posts