Java2011. 8. 28. 14:43
정규식 안에는 "\"하나만 쓸수 없기 때문에 "\"를 쓸경우 "\\" 이렇게 앞에 "\"를 하나더 붙여주어야 한다.

간단한 정규식 적용방법

String 의 replaceAll메소드를 통하여 일괄적으로 정규식을 이용하여 변환
ex)  String str = "prev.left + 3.14cm + 10mm + 30+ 1in"; 
 str.replaceAll("[0-9]?+.?[0-9]+cm", "sdf");

결과: prev.left + sdf + 10mm + 30+ 1in


해당 정규식 문자를 포함하여 원하는 형식으로 변환하여야 하는경우
ex) String str = "prev.left + 3.14cm + 10mm + 30+ 1in"; 
 Pattern pattern = Pattern.compile("[0-9]*[.]?[0-9]+cm|[0-9]*[.]?[0-9]+mm|[0-9]*[.]?[0-9]+in");  
 Matcher matcher = pattern.matcher(str);
  StringBuffer sb = new StringBuffer();
  while(matcher.find()){
   System.out.println(matcher.group());
   matcher.appendReplacement(sb, "#"+matcher.group().trim()+"#");
  }
  matcher.appendTail(sb);
  System.out.println(sb.toString());

결과: prev.left + #3.14cm# + #10mm# + 30+ #1in#

너무 간단하게 소스 예제만 정리했습니다... 정규식 대한 자세한 내용은 아래 사이트를 참고하세요~
http://blog.daum.net/question0921/419
http://iamnotokay.tistory.com/105
Posted by 위푸
Java2009. 2. 1. 15:33

# JSP(java server page)
- Servlet(CGI프로그램)을 대치하기 위해 개발된
  Server Side Script Language
- 웹클라이언트(브라우저)에 동적 컨텐츠
  (plain Text, Html, XML등)을 제공

# 이클립스 jsp 한글 인코딩 설정
  window -> preferece -> General -> contentType
  -> jsp -> utf-8

# jsp 구성요소
1. html 데이터(template data or fixed data)
2. 지시어 <%@ %>
3. 스크립트 원소
- 스크립트 렛<% ... %>
- 출력문(표현식) <%= ... %>
- 선언문 <%! ...%>
  => 서블릿 변환시 인스턴스 변수, 인스턴스 메소드로 변환

# jsp 스펙에서는 jsp컨테이너가 내부적으로 페이지
  서블릿을 구현하는데 공통적으로요구되는 javax.servlet
  패키지 아래 8개의 객체와 java.lang패키지 아래 1개의 객체에
  각각 정해진 변수명을 사용한다.
  이들 객체를 jsp내장 객체라고한다.

Posted by 위푸
Java2009. 2. 1. 15:30
 Runtime r = Runtime.getRuntime();
     try {
   r.exec("C:\\Program Files\\EditPlus 3\\editplus.exe");   
  } catch (IOException e) {
   System.out.println("프로그램 실행 에러");
   e.printStackTrace();
  }
Posted by 위푸
Java2009. 2. 1. 15:29

public void playSound(String file_url)
 {
  try{

   File file = new File(file_url);
   FileInputStream fis = new FileInputStream(file);
   AudioStream as = new AudioStream(fis);
   AudioPlayer.player.start(as);

  }catch(Exception e){
   e.printStackTrace();
   System.out.println("sound exception");
  }
 }

- mid, wav등의 파일만 재생됩니다.

Posted by 위푸
Java2009. 2. 1. 15:26

- 데이터 베이스 연결 순서
Java App --->  네트워크  --->  server(sql): DB(oracle)

                        (sun)      (DB벤터 ex)oracle)
Java App --->   JDBC  | JDBC Driver(Socket구현     -->   네트워크   --->  server(sql): DB(oracle)     
                                                      DBMS 프로토콜 구현) 

- JavaApp 에서 서버(DB)로 연결하기 위해서는 socket을 이용하지만 DB를 실제로 사용하기 위해서는 DB가 사용하는 프로토콜을 알아야 이용할수 있다.

- JDBC: interface들의 묶음 (메소드들의 이름이 동일하므로 연결하는 DB가 바뀐다고해도 쉽게 수정이 가능하다)

- DriverManager: DB Driver들을 관리해주는 클래스(SUN에서 만든 클래스)
  java client가 DriverManager의 getConnection을 하면 DriverManager가 실제 DBMS와의 connection을 리턴해준다.

- sql문을 서버로 전송할떄는 ;이 필요없다 ex)String sql = "SELECT ename, sal FROM emp"

# ResultSet의 구조  
  _______________  
         BOF
  ---------------
  scott  |  5000
  sfasd |  2131
  ----------------
        EOF
  ----------------

- next()를 이용 다음칸으로 이동(가져올 데이터가 있음 true, 없음 false)
  EOF를 만나면 ResultSet이 끝남

- 오라클 연결후 종료시에는 무조건 리소스를 종료해 주어야한다(중요함)

- Class.forName()은 static 초기화 블록 메소드 가있어야지만 쓸수있다.

Posted by 위푸
Java2009. 2. 1. 15:22

public class TestClient {

 public static void main(String[] args) {
  // Map 선언 <key, Value>
  Map map = new Hashtable<Integer, Object>();
  
  //hashtable에 key와 value넣기
  map.put(1, "숫자일");
  map.put(2, "숫자이");
  map.put(3, "숫자삼");
  map.put(4, "숫자사");
  //hashtable의 value꺼내오기
  System.out.println(map.get(2));
  //hashtable에 key와 value지우기
  map.remove(2);
  System.out.println(map.get(2));
  // 지운부분에 다시key와 value넣기
  map.put(2, "숫자이");
  System.out.println(map.get(2));
  // 중복된 키값에 value넣을경우 최신으로 넣은게 들어간다
  map.put(2, "중복이");
  System.out.println(map.get(2));
  
 }
}

Posted by 위푸
Java2009. 2. 1. 15:20

 # Network Programing
 URL (파일패스 개념 동일) -> http://ip:prot/파일명
 프로토콜 ---> TCP/IP 모델(모형)
 IP(Domain Name)   Network 통신 블랙박스 개념
 port
 TCP IP기반의 응용 프로토콜
 http, ftp, sntp, pop3 등(표준 프로토콜)
 
 - http의 특징: 무조건 데이터를 텍스트로 주고받는다(이미지 같은 데이터도 텍스트로 변환하여 전송함)
 
 # Network 통신 절차
  Client|http|N|T|D|P|  ----> Network ---->  P|D|T|N|http|Server
  - Client: Web browser        Server: web Server
  - http: 응용 프로토콜
  - N|T|D|P: TCP/IP모델

 # Java Client나 Java Server와 TCP/IP모델과의 접속 하기위해 Socket을 이용
   TCP(95%이용): 신뢰적, 속도는 조금 떨어짐(데이터를 받았는지 검사함으로)
   UDP(많이 사용하지 않음): 신뢰가 떨어짐, 데이터를 잘 받았는지 검사하지 않으므로
       Ex) 미디어 데이터에 쓰임(동영상, 소리등 대용량 데이터)

 # Network관련 Util클래스
   - INetAddress : 도메인에 해당하는 실제 IP를 반환해주는 클래스
     (DNS와의 통신을 이용해서 도메인을 입력하면 IP를 리턴해주는 클래스) 
   - URL:  주로 인터넷상의 자원(파일)을 읽어올 때 사용한다.
   - URLConection(URL 확장판): 브라우저와 웹서버가 사용하는 헤더정보까지 읽어올수있는 크래스
          (파일이름, 파일용량등의 여러정보는 헤더에 포함)

--- URLConnection을 이용한 Header정보 출력 ---------
Content-Length: 3781    // 실제 이미지 데이터의 용량
Expires: Tue, 11 Aug 2009 02:24:25 GMT
ETag: "b087ef-ec5-4218e500"
null: HTTP/1.1 200 OK    // 응답 메세지(중요)
Date: Mon, 11 Aug 2008 02:24:39 GMT
Accept-Ranges: bytes
Server: Apache/2.0.52
Content-Type: image/gif    // 실제 파일 타입
Last-Modified: Tue, 14 Aug 2007 05:39:00 GMT
Via: 1.1 SI2173-164 (Jaguar/3.0-71)
Cache-Control: max-age=31536000
Age: 14
----------------------------------------------------


 # Socket을 이용한 TCP/IP 프로토콜 기반의 Network Program 작성
  (Socket 기반의 C/S 시스템)

Client|http|N|T|D|P|-> Socket ----> Network ----> Socket-> P|D|T|N|http|Server
- Socket: 데이터 종착점

- 1:n 다중통신 (스레드를 활용)

Posted by 위푸
Java2009. 2. 1. 15:15
 # 브릿지 스트림: 표준입력시 문자로 입력받기 위해 사용(바이트,문자스트림 동시에 사용할경우) 
 - <interface> DataOutput, DataInput 

 #RandomAccesFile 
- 양방향 스트림(?) - 입/출력 가능
- 임의접근 가능
- 자바의 모든 데이터 타입으로 읽고 쓰기 가능
- 단점: 오로지 파일만 가능, 느리고, 무겁다
- 동기화처리도 한다.
- readInt(), writeInt(), readUTF(), writeUTF()
Posted by 위푸
Java2009. 2. 1. 15:13

# 문자 스트림 
 
                  Reader(Abstract)                   writer(Abstract)
             (2바이트씩 읽으면서             (모든 프로그램이 다 읽을수 있는
              문자인코딩까지 해준다.)        호환성이 있다)
                          |                                             |
                    File Reader                               FileWrite

 # 속도를 고려한다면 바이트 스트림을 쓰는것이 좋다
 
 # 텍스트를 읽을때는 FileReader를 쓰는것이 좋음.
 
 # BufferedWriter (파일에 텍스트를 쓸때 버퍼를 이용해서 쓴다.(버퍼사이즈는 대략 6Kbyte)
   새로운 메소드: newline()=> 운영체제에 맞게 새로운 라인추가
   flush(): close()를 안해줄 경우 버퍼에 있는것을 안쓰는데 이메소드를 이용하여
            버퍼가 다 차지 않거나 close()를 안해줄경우에도 써준다 ex)오라클의 commit
 
 # BufferedReader: 버퍼을 이용하여 파일을 읽는다.
   새로운 메소드: readline() => 한줄씩 읽어들여 String형으로 반환해줌.
 
 # PrintWriter: 여러가지 기능이 많다. 버퍼를 사용하지 않는다.
     BufferedWriter와 같이 사용하면 좋을듯..


 

Posted by 위푸
Java2009. 2. 1. 15:05

- 더블 버퍼링
지웠다가 다시 그려주는게 아니라
애니메이션 보여주는것처럼 계속 덧씌워서 보여준다.
update()메소드 오버라이딩해주어여 한다.

- 스레드 동기화 처리
synchronized

Posted by 위푸