2011년 9월 29일 목요일

[Jsp] 커넥션 풀 사용 준비 / JOCL 설정 파일


1. 아래를 참조해서 필요 라이브러리를 설치한다.
http://soatofedora.blogspot.com/2011/09/linux-dbcp-pool-collections.html


2. 아래파일을 WEB-INF->classes폴더안에넣는다.


JOCL파일 샘플

<object class = "org.apache.commons.dbcp.PoolableConnectionFactory"
xmlns="http://apache.org/xml/xmlns/jakarta/commons/jocl">
<object class="org.apache.commons.dbcp.DriverManagerConnectionFactory">
<string value="jdbc:mysql://localhost:3306/testserver?autoReconnect=true"/>
<string value="root"/>
<string value="12345"/>
</object>
<object class="org.apache.commons.pool.impl.GenericObjectPool">
    <object class="org.apache.commons.pool.PoolableObjectFactory" null="true" />
    <int value="80" />  <!-- max active -->
    <byte value="1" />  <!-- when exhausted action, 0 = fail, 1 = block, 2 = grow -->
    <long value="2000" />  <!-- max wait -->
    <int value="10" />  <!-- max idle -->
    <boolean value="true" />  <!-- test on borrow -->
    <boolean value="true" />  <!-- test on return -->
    <long value="10000" />     <!-- time between eviction runs -->
    <int value="5" />   <!-- number of connections to test per eviction run -->
    <long value="5000" />    <!-- min evictable idle time -->
    <boolean value="true" />   <!-- test while idle -->
  </object>

  <object class="org.apache.commons.pool.impl.StackKeyedObjectPoolFactory">
    <int value="10" />
  </object>

  <string value="select now()" />  <!-- validation query -->
  <boolean value="false" />  <!-- default read only -->
  <boolean value="true" /><!-- default auto commit -->

</object>




2011년 9월 18일 일요일

[Jsp] 클라이언트의 IP주소 가져오는 메서드

ServletRequest 클라이언트의 IP주소 가져오는 메서드
  String clientAddr = request.getRemoteAddr();

[Jsp] Log 저장

로그파일 경로를 초기화 파리미터값에서 가져오기
  String filename = config.getInitParameter("FILE_NAME");

초기화 파라미터값은 web.xml에 등록해놓는다
  <init-param>
    <param-name>FILE_NAME</param-name>
    <param-value>C:\\logs\\myfilter.log</param-value>
   </init-param>

아...돈벌고싶다..
좋은하루~

2011년 9월 16일 금요일

[Jsp] SimpleTagSupport 상속 간단 클래스

package tool;
import java.io.*;
import javax.servlet.jsp.*;
import javax.servlet.jsp.tagext.*;

public class StarLineTag extends SimpleTagSupport{
  public void doTag() throws JspException, IOException{
    JspContext context = getJspContext();
    JspWriter out = context.getOut();
    out.println("*****************************************<BR>");
    return;
  }
}
오타가 있을 수 있다.-_-;

컴파일전에는
톰캣의 lib폴더에 있는 jsp-api.jar파일을 Java/JDK(version)/jre/lib/ext에 복사해두자.

컴파일쌔리고

TLD파일에 클래스 등록하고

web.xml에 tld등록하고

고고고.

좋은하루~

[Jsp] 태그 파일 만드는 법

1. 만든 파일을 WEB-INF폴더아래 tags라는 서브디렉토리에 저장

2. 파일이름은 (커스텀액션명).tag 의 형식으로 한다.

3. 사용할 JSP파일에 다음 라인을 추가
   ->  <%@page contentType....................................>
         <%@taglib prefix="util" tagdir="/WEB-INF/tags" %>
        <HTML>
              ....
              <util:커스텀액션명/>




2011년 9월 15일 목요일

[Jsp] 태그 파일에서 사용 가능한 지시자


  • tag지시자:웹 컨테이너가 태그 파일을 처리할 때 필요한 정보를 기술
        예) <%@tag body-content="empty" %>//커스텀 액션이 본체를 가질 수 없음
  • include지시자:다른 태그 파일을 포함
  • taglib지시자:태그파일에서 사용할 다른 커스텀 액션의 태그 라이브러리에 대한 정보를 기술
  • attribute지시자:커스텀액션의 애트리뷰트에 대한 정보를 기술
  • variable지시자:커스텀액션의 변수에 대한 정보를 기술

[Jsp] 태그 클래스 설치 순서

1. 태그 클래스의 소스 코드를 작성한다.

2. 작성한 소스 코드를 컴파일 한다.

3. 컴파일 결과를 WEB-INF/classes 폴더 안에 넣는다

4. 태그 클래스의 정보를 TLD파일에 등록한다.
  -><short-name>tld파일이름</short-name>
       <tag>
          <name>커스텀액션이름</name>
          <tag-class>태그클래스이름</tag-class>
          <body-content>empty</body-content> //본체의 형태
       </tag>

5. TLD 파일은 WEB-INF폴더 및이나 그아래의 서브디렉토리에 저장

5. TLD파일을 web.xml파일에 등록한다.
  -><taglib>
        <taglib-uri>/taglibs/tools.tld<taglib-uri>
        <taglib-location>/WEB-INF/tlds/tools.tld</taglib-location>
      </taglib>

[Jsp] JSTL 포매팅 라이브러리


커스텀액션 사용방법
1.<fmt:formatDate> 액션


  <fmt:formatDate value="${date}" type="time" />
    -> 오후 1:11:11

  <fmt:formatDate value="${date}" type="date" dateStylet="long" />
   -> 2011년 8월 15일

  <fmt:formatDate value="${date}" type="date" pattern="YYYY/MM/DD" />
   -> 2011/08/15

p454

2. <fmt:formatNumber> 액션


  <fmt:formatNumber value="1234500" groupingUsed="true" />
   -> 1,234,500
  
  <fmt:formatNumber value="10.5" pattern="#.00" />
   ->10.50

3. <fmt:setLocale> 액션


  <fmt:setLocale value="ko_kr" />

4. <fmt:timeZone> 액션


  <fmt:timeZone value="America/New_York" />
   타임존 얻기
   -> String arr[] = TimeZone.getAvailablesIDs();

 


[Jsp] JSTL 코어라이브러리

커스텀액션 사용방법
1.<c:set>액션

  <c:set var="num" value="100" scope="request" />
   ......
   ......
   ${num}

2.<c:remove>액션

  <c:remove var="num" scope="request" />

3. <c:if>액션

  <c:if test="${param.NUM1 - param.NUM2 >= 0}" >
   ....
   </c:if>
   <c:if test="true"> 요건 무조건 참!!
    무조건 거짓은 아주 깊게 심오하게  생각, 추측하면 알수 있을 듯..

4. <c:choose> 액션

  <c:choose>
    <c:when test= "${param.NUM == 0 }">
      ....
    </c:when>
     ....
    <c:otherwise>
     .....
    </c:otherwise>
  </c:choose>

5. <c:forEach> 액션

  <c:forEach var="cnt"  begin="1" end="10" step="2">
    <FONT size=${cnt} > 소녀시대짱! </FONT><BR>
  </c:forEach>

  <c:forEach var="str" items="${배열이름}">
     ${str}
  </c:forEach>

6. <c:forTokens> 액션

  <c:forTokens var="love" items="태연*유리/제시카-수지?" delims="*/-?">
     ${love} <br>
  </c:forTokens>

7. <c:catch> 액션

  <c:catch var="e">
    <% int result = num1/ num2; % >
        result = <%=result%>
    </c catch>
  <c:if test="${e!=null}">
        error = ${e.message}
  </c:if>

8. <c:redirect> 액션


  <c:redirect url="http://soato387.jsp">
    <c:param name = "NUM1" value="5" />
  </c:redirect>

9. <c:import> 액션

  <c:import url="http://soato387.jsp">
    <c:param name = "NUM1" value="5" />
  </c:import>

10.<c:out> 액션


  <c:out value="<FONT size 7> 소녀시대</FONT> "/>
  <c:out value="<FONT size 7> 소녀시대</FONT> " escapeXml = "false/>
   차이점은?
  











 

[JSP] JSTL 라이브러리

코어 : 접두어 c
  -> 일반 프로그래밍 언어에서 제공하는 것과 유사한 변수 선언,
       실행흐름의 제어기능을 제공하고,
       다른 JSP페이지로 제어를 이동하는 기능을 제공
       URI = "http://java.sun.com/jsp/jstl/core"

포매팅 : 접두어  fmt
 ->  숫자, 날짜, 시간을 포매팅하는 기능과 국제화, 다국어 지원 기능을 지원
       URI = "http://java.sun.com/jsp/jstl/fmt"

데이터베이스 : 접두어 sql
 ->  데이터베이스의 데이터를 입력/수정/조회/삭제 기능
       URI = "http://java.sun.com/jsp/jstl/sql"

XML처리 : 접두어 x
 ->  XML문서를 처리할 때 필요한 기능을 제공
       URI = "http://java.sun.com/jsp/jstl/xml"

함수 : 접두어 fn
 ->  문자열을 처리하는 함수를 제공
       URI = "http://java.sun.com/jsp/jstl/functions"

사용 예 )
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>