• tools.xml 추가

    tools.xml.jpg

  1. <tools>
        <data type="boolean" key="xhtml" value="true"/>
        <data type="boolean" key="isSimple" value="true"/>
        <data type="number" key="version" value="2.0"/>
        <toolbox scope="request">
            <tool key="toytool" class="ToyTool" restrictTo="index*"/>
        </toolbox>
        <toolbox scope="session">
            <tool key="map" class="java.util.HashMap"/>
        </toolbox>
    </tools>

 

  • web.xml 아래 항목 추가

    web.xml.jpg

  1.    </servlet-mapping>
        <servlet>
        <servlet-name>velocity</servlet-name>
        <servlet-class>org.apache.velocity.tools.view.servlet.VelocityViewServlet</servlet-class>
        <!-- servlet-class 위치가 1.6 버전에서는 보는 것처럼 ...view.servlet... 으로 바뀜 -->
      </servlet>
      <servlet-mapping>
        <servlet-name>velocity</servlet-name>
        <url-pattern>*.vm</url-pattern>
      </servlet-mapping>
      <welcome-file-list>
        <welcome-file>index.vm</welcome-file>
      </welcome-file-list>

 

  •   index.vm

  1. <html>
    <body>
    I'm a velocity template.

    #if( $XHTML )
      #set( $br = "<br />" )
    #else
      #set( $br = "<br>" )
    #end

    $br
    $br

    Here we use a custom tool: $toytool.message

    $br
    $br

    Here we get the date from the DateTool:  $date.medium
    </body>
    </html>

index.vm.jpg

 

 

이 글은 스프링노트에서 작성되었습니다.

'Programming' 카테고리의 다른 글

What dows 'PMD' mean?  (0) 2010.12.31
[Velocity] velocity.properties  (0) 2010.03.13
Velocity 설정법  (0) 2010.02.21
100207_발표내용정리  (0) 2010.02.07
나도 Java Champion 될 수 있을까?  (0) 2010.01.09
[펌] 2010년 전략 기술 톱 10  (0) 2009.10.26

1. Java 개발 공식 사이트

 - http://www.java.net/
 - http://weblogs.java.net/

2. jGuru
 - http://www.jguru.com/

3.  java.blogs 커뮤니티
 - http://www.javablogs.com/

4. Java를 포함한 다양한 개발 지침서들 제공
 - http://www.developer.com/

5. IBM Java developerworks
 - http://www.ibm.com/developerworks/kr/java/

6. Java기반의 Open Source Software
 - http://java-source.net/

7. About.com:Java
 - http://java.about.com/

8. Java 개발자 Journal 웹사이트
 - http://java.sys-con.com/

9. Java Technology
 - http://java.sun.com/

10. Javaworld
 - http://www.javaworld.com/

11. DevX: Java Zone
 - http://www.devx.com/java

12. Javalobby
 - http://java.dzone.com/

13. Javajia
 - http://www.javajia.com/

14. Java Community Process
 - http://www.jcp.org/

15. Java examples (example source code) Organized by topic
 - http://www.java2s.com/

16. TheServerSide.com
http://www.theserverside.com/

17. JavaServiceNet
 - http://javaservice.net/

18. OKJsp
 - http://okjsp.pe.kr/

19. Sun Developer Network 공식 블로그
 - http://blog.sdnkorea.com/

20. JavaRanch
 - http://www.javaranch.com/

21. The Java Posse
 - http://javaposse.com/

22. javastudy
 - http://www.javastudy.co.kr/

23. Javajigi
 - http://javajigi.net

이 중에는 아는 곳도 있고, 모르는 곳도 있다. ^^

페이지 이동 CTRL + E

VIEW 들의 이동. (Package Explorer, source, Outlines...) : CTRL+F7 

Perspective 같은 이동(?)  : CTRL+F8 

 

===== 실행 =====
1. Ctrl + F11 : 바로 전에 실행했던 클래스 실행

 

===== 소스 네비게이션 =====
1. Ctrl + 마우스커서(혹은 F3) : 클래스나 메소드 혹은 멤버를 상세하게 검색하고자 할때
2. Alt + ->, Alt + <- : 이후, 이전
3. Ctrl + o : 해당 소스의 메소드 리스트를 확인하려 할때
4. F4 : 클래스명을 선택하고 누르면 해당 클래스의 Hierarchy 를 볼 수 있다.

===== 문자열 찾기 =====
1. Ctrl + k : 찾고자 하는 문자열을 블럭으로 설정한 후 키를 누른다.
2. Ctrl + Shift + k : 역으로 찾고자 하는 문자열을 찾아감.
3. Ctrl + j : 입력하면서 찾을 수 있음.
4. Ctrl + Shift + j : 입력하면서 거꾸로 찾아갈 수 있음.
5. Ctrl + f : 기본적으로 찾기

 

===== 소스 편집 =====
1. Ctrl + Space : 입력 보조장치(Content Assistance) 강제 호출 => 입력하는 도중엔 언제라도 강제 호출 가능하다.
2. F2 : 컴파일 에러의 빨간줄에 커서를 갖져다가 이 키를 누르면 에러의 원인에 대한 힌트를 제공한다.
3. Ctrl + l : 원하는 소스 라인으로 이동
   로컬 히스토리 기능을 이용하면 이전에 편집했던 내용으로 변환이 가능하다.
4. Ctrl + Shift + Space : 메소드의 가로안에 커서를 놓고 이 키를 누르면 파라미터 타입 힌트를 볼 수 있다.

5. 한줄 삭제 CTRL + D

6. 파일 닫기 : CTRL+W

7. 들여쓰기 자동 수정. (3.0 NEW) : CTRL+I 

8. 블록 주석(/*..*/) 추가.(3.0 NEW): CTRL+SHIFT+/

  8.1 Ctrl + / 해주면 여러줄이 한꺼번에 주석처리됨. 주석 해제하려면 반대로 하면 됨.
9. 위(아래)줄과 바꾸기 : ALT+UP(DOWN)

10. 블록 선택하기.  : ALT+SHIFT+방향키

11. 메소드의 파라메터 목록 보기. : CTRL+SHIFT+SPACE
12. 자동으로 import 하기 : CTRL+SHIFT+O

13. 열린 파일 모두 닫기 : CTRL + SHIFT + F4

14. 블록 주석 제거 : CTRL+SHIFT+

15. 전체화면 토글 : CTRL+M

16. 한줄(블럭) 복사 : Ctrl + Alt + 위(아래)

17. 다음 annotation(에러, 워닝, 북마크 가능)으로 점프 : Ctrl + , or .

18. 퀵 픽스 : Ctrl + 1 
19. 메소드 정의부로 이동 : F3
20. 하이어라키 팦업 창 띄우기(인터페이스 구현 클래스간 이동시 편리) : Ctrl + T 

21. 메소드나 필드 이동하기 CTRL + O
22. ULTRAEDIT나 EDITPLUS 의 CTRL+TAB 과 같은 기능. : CTRL+F6 

 

===== 템플릿 사용 =====
1. sysout 입력한 후 Ctrl + Space 하면 System.out.println(); 으로 바뀐다.
2. try 입력한 후 Ctrl + Space 하면 try-catch 문이 완성된다.
3. for 입력한 후 Ctrl + Space 하면 여러가지 for 문을 완성할 수 있다.
4. 템플릿을 수정하거나 추가하려면 환경설정/자바/편집기/템플리트 에서 할 수 있다.

 

===== 메소드 쉽게 생성하기 =====
1. 클래스의 멤버를 일단 먼저 생성한다.
2. override 메소드를 구현하려면 : 소스->메소드대체/구현 에서 해당 메소드를 체크한다.
3. 기타 클래스의 멤버가 클래스의 오브젝트라면 : 소스->위임메소드 생성에서 메소드를 선택한다.

 

===== organize import =====
1. 자바파일을 여러개 선택한 후 소스 -> 가져오기 체계화 해주면 모두 적용된다. 

 

===== 소스 코드 형식 및 공통 주석 설정 =====
1. 환경설정 -> 자바 -> 코드 스타일 -> 코드 포멧터 -> 가져오기 -> 프로파일.xml 을 불러다가 쓰면 된다.
2. 또한 다수의 자바파일에 프로파일을 적용하려면 패키지 탐색기에서 패키지를 선택한 후 소스 -> 형식화를 선택하면 된다.
3. 환경설정 -> 자바 -> 코드 스타일 -> 코드 템플리트 -> 가져오기 -> 템플리트.xml 을 불러다가 쓰면 된다.

 

===== 에디터 변환 =====
1. 에디터가 여러 파일을 열어서 작업중일때 Ctrl + F6 키를 누르면 여러파일명이 나오고 F6키를 계속 누르면 아래로
2. Ctrl + Shift + F6 키를 누르면 위로 커서가 움직인다.
3. Ctrl + F7 : 뷰간 전환
4. Ctrl + F8 : 퍼스펙티브간 전환
5. F12 : 에디터로 포커스 위치

 

===== JAVA Doc 생성 =====
1. 프로젝트 -> Javadoc 생성

 

===== 내보내기 =====
해당 프로젝트를 zip 행태로 압축해서 보관할 수 있다.

 

===== 자바 찾아보기 perspective =====
해당 프로젝트를 보다 편리하게 한번 둘러보는데 좋다.

 

===== 스크랩북 =====
1. 스크랩북을 이용하면 자바파일을 만들어 테스트 해보지 않고도 간단하게 테스트 해 볼 수 있다.
2. 패키지 탐색기에서 신규 -> 기타 -> 자바 -> 자바 실행/디버그 -> 스크랩북 페이지 선택

 

===== 디버그 =====
1. F5(Step Into) : 현재의 명령문이 호출되는 메소드 속으로 진행하여, 그 첫 문장을 실행하기 전에 멈춘다.
   하지만 자바 라이브러리 클래스 수준까지 들어가므로 단계필터 사용을 체크(Shift+F5)를 하면 필터를 설정한 클래스에 대하서는 Step Over 기능과 같은 기능을 수행한다.
2. F6(Step Over) : 현재의 명령문을 실행하고 다음 명령문 직전에 다시 멈춘다.
3. F7(Step Return) : 현재의 메소드에서 리턴한 직후에 다시 멈춘다.
4. F8(Resume) : 멈추어 있던 쓰레드를 다시 계속 실행한다.
5. Display view(표시) : 창 -> 보기표시 -> 표시 선택하여 소스상에서 필요한 부분을 선택해서 실행시켜 볼 수 있다.  한 순간의 값만 필요할 때 볼 수 있는 반면에 아래놈은 계속적으로 값이 변하는 것을 확인 할 수 있다.
6. Expression view(표현식) : 복잡한 식 혹은 객체를 디버깅 하면서 계속 볼 수있는 창이다.
   마우스 오른버튼 -> 감시 표시식 추가 선택한 후 사용한다.
   환경설정 -> 자바 -> 디버그 -> 세부사항 포멧터 선택 후 보기 편한 식으로 편집하면

   Expression View 에서 결과를  실시간으로 확인 할 수 있다.
7. 디버깅 하면서 소스를 수정하고 프로그램을 다시 시작할 필요 없이 계속 디버깅을 진행 할 수 있다.
   다만 메소드를 추가하거나 필드를 추가하면 프로그램을 다시 시작해야 한다.
8. Drop to Frame(프레임에 놓기) 는 정말 모르겠다.
9. 디버깅 작업을 할때 해당 라이브러리의 소스코드를 첨부하지 않으면 진행상황을 볼 수 없을 경우
   해당 라이브러리에 소스코드를 첨부할 수 있다. 해당 프로젝트 -> 특성 -> Java 빌드경로 -> 라이브러리 -> 소스참조
   편집 버튼을 눌러서 첨부 한다.

 

===== 도움말 =====
"JDT 팁과 요령"이라고 치면 여러가지 흥미로운 팁이 나온다.

 

===== Refactoring =====
1. Pull Down : 수퍼클래스의 멤버나 메소드를 하위 클래스로 내리는 행위
2. Push Up : 하위 클래스의 멤버나 메소드를 상위 클래스로 올리는 행위

 

===== CVS =====
1. CVS 서버로는 윈도우에 CVSNT 최신버젼을 설치하고, [컴퓨터 관리]를 통해서 사용자를 추가한다.
 - CVSNT 를 설치할때 윈도우의 경우 Repositories 를 추가할때 접두어를 사용하지 말고 디렉토리 풀이름(d:/cvs) 이런식
   으로 등록해야 Eclipse 와 에러없이 동기화가 잘 된다.
2. Eclipse 에 CVS 저장소 perspective 에서 새로운 저장소를 등록한 후 HEAD 에서 해당 프로젝트를 체크아웃하면
   자바 perspective 에 등록되는 것을 확인할 수 있다.

 


이것 이외의 단축키 리스트 :  HELP->Help Contents->Java Development User Guide->Reference->JDT Basics

새로운 기능:  HELP->Help Contents->Java Development User Guide->What's new

유용한 기능 :  Tips and tricks

Java EE 6 and GlassFish v3: Paving the path for future
View more documents from Arun Gupta.

Java EE 6 and GlassFish v3: Paving the path for future
View more documents from Arun Gupta.


Welcome!                     145 Sessions,1856 Registered

Code Camp is a new type of community event where developers learn from fellow developers. All are welcome to attend and speak. Code Camps have been wildly successful, and we’re going to bring that success to Northern California.

The Code Camp consists of these points:

  • by and for the developer community
  • always free
  • community developed material
  • no fluff – only code
  • never occur during working hours

Sessions will range from informal “chalk talks” to presentations. There will be a mix of presenters, some experienced folks, for some it may be their first opportunity to speak in public. And we are expecting to see people from throughout the Northern California region and beyond.


까먹을 것 같아서 @_@) 기록을 남겨둔다.
java.sql.Statement
public interface Statement
extends Wrapper

정적 SQL 문을 실행해, 작성된 결과를 돌려주기 위해서(때문에) 사용되는 객체입니다.  

디폴트에서는,Statement 객체 마다 1 개의 ResultSet 객체만이 동시에 오픈할 수 있습니다. 따라서, 1 개의 ResultSet 객체의 read가, 다른 read에 의해 끼어들어지면(자), 각각은 다른 Statement 객체에 의해 생성된 것이 됩니다. Statement 인터페이스의 모든 execution 메소드는, 문장의 현재의 ResultSet 객체로 오픈되고 있는 것이 존재하면, 그것을 암묵에 클로즈 합니다.

관련 항목:
Connection.createStatement() , ResultSet

java.sql.PreparedStatement
public interface PreparedStatement
extends Statement

프리컴파일 된 SQL 문을 나타내는 객체입니다.  

SQL 문은, 프리컴파일 되어PreparedStatement 객체에 포함됩니다. 거기서, 이 객체는, 이 문장을 여러 차례 효율적으로 실행하는 목적으로 사용할 수 있습니다.

주: IN 파라미터치를 설정하는 설정 기능 메소드 (setShort,setString 등)는, 입력 파라미터의 정의된 SQL 형과 호환이 있는 형태를 지정하지 않으면 안됩니다. 예를 들어, IN 파라미터에 INTEGER 라고 하는 SQL 형이 있는 경우,setInt 메소드를 사용하지 않으면 안됩니다.

임의의 파라미터형 변환이 필요한 경우는,setObject 메소드는, 목적의 SQL 형으로 사용하지 않으면 안됩니다.  

파라미터 설정의 예를 다음에 나타냅니다. con 는 액티브한 접속을 나타냅니다.

PreparedStatement pstmt = con.prepareStatement("UPDATE EMPLOYEES
SET SALARY = ? WHERE ID = ? ");
pstmt.setBigDecimal(1, 153833.00)
pstmt.setInt(2, 110592)
 

관련 항목:
Connection.prepareStatement(java.lang.String) , ResultSet

PreparedStatement 에 대한 설명 : http://pcguy7.springnote.com/pages/1052420
Summary 그래서 우리는 prepared statements를 파라메터와 함께 사용해야한다. 이것은 미리 만들어진 접근 계획을 재 사용하므로서 데이터 베이스에 대한 로드를 줄여 준다. 이 cache는 데이터 베이스가 확장된 것이어서 여러분의 모든 애플리케이션이 유사한 파라메터화된 sql을 사용하면 하나의 애플리케이션이 다른 애플리케이션에 의해 사용된 prepared statements를 이용하므로 캐시 스키마의 효율성을 증대 시킬 수 있다. 이것은 application server 사용의 이점이다. 왜냐하면 데이터 베이스에 접근하는 로직은 데이터 접근 계층에 집중화 되어야하기 때문이다. 두번째로 prepared statements의 올바른 사용은 또한 여러분이 애플리 케이션 내부의 prepared statements cache를 잘 이용할 수 있게 한다. 이것은 애플리케이션이 이전에 사용했던 prepared statements 호출을 재사용해서 JDBC driver에 대한 호출의 수를 감소시켜 성능의 향상을 시킨다. 이것은 현명한 fat clients 사용을 효율적으로 그리고 경쟁력있게 만들고 독점적인 connection을 유지할 수 없는 불이익을 제거한다. 만약 파라메타화된 prepared statements를 사용한다면 여러분은 데이터 베이스와 코드를 가지고 있는 application server의 효율을 높일 수 있다. 이들 개선된 점은 여러분의 애플리케이션의 성능을 향상 시킬수 있게 할것이다.


내 나름의 중요한 결론을 말해보자면, 'PreparedStatement를 잘 활용하면 CPU 사용량을 줄이고 DB에 접근하는 소프트웨어의 속도를 향상시키는 효과가 있다'는 것이다.

ㅡㅅ-)> 내가 쓰기 불편하다고 Statement 형식으로 많이 썼었는데, 이제 PreparedStatement를 사용해야겠다. 나란 녀석도 참 고집이 쎄다. 그렇게 쓰는 장점이 있는데도, 내가 쓰기 편하다고 그 방식을 외면하고 있으니 말이다. 

  1. Favicon of http://blog.lckymn.com BlogIcon Kevin 2009.09.16 22:09 신고

    여기서 본건 아닌데, 알려주셔서 여기다가도...ㅡ_ㅡ;;;

    Statement와 PreparedStatement의 중요한 차이점이 한가지 더 있습니다.
    Statement의 경우는 입력값을 별도로 체크해서 escaping을 하지 않으면,
    SQL Injection 을 당할수가 있지만,
    PreparedStatement는 set 메소드를 사용해서 입력값을 삽입할때
    알아서 escaping이 되어서 그런 위험이 없다는 것이죠.
    물론, 컴파일후에 삽입하는 형태가 아니고,
    query에 입력값까지 포함시켜 버리는 실수를 하면
    아무리 PreparedStatement를 써도
    SQL injection을 당할수 있으니 주의해야겠구요.

  2. 푸른컴돌 2012.02.07 13:13 신고

    너무나 좋은글인데.... 글씨가 짤려서 너무 아쉽습니다.

+ Recent posts