關於我自己

2013年8月9日 星期五

Easy Java Simulation


open source physics 網站:
http://www.compadre.org/osp/index.cfm

說明:
利用Java程式模擬物理動畫,可輸入參數值
並有公式跟範例和說明文件,讓使用者更容易了解物理學

大約簡單介紹一下:
至於安裝Java SDK部分故不講,因Google搜尋就一堆範例了

1.
 2.

 3.
4.
5.
6.


功能強大,很多有範例可以下載擴充,跟自己定義

下面兩個網站都是我蠻喜歡的

台灣師範大學物理系 論壇:

http://www.phy.ntnu.edu.tw/demolab/phpBB/index.php?viewcat=10#cat10

GameDev.Net 網站:
http://www.gamedev.net/forum/20-math-and-physics/













2013年7月18日 星期四

使用Android 連 Eclipse Web Service

主要目的:

使用Eclipse在Tomcat架Web Service

讓Android 可以連Web Service

而可以透過Web Service 連MS SQL Server


1.新增一個動態網頁專案

2.
3.
4.
5.創造一個class檔案把程式寫在裡面 ~ 而連接MS SQL的程式可以寫在裡面
6.
7.新增Web Service 操作
8.
9.
10.
11.
12. 完成 Web Service
13.輸入網址測試 Web Service
14.
15.
16.
17.
18.
19.使用Android連線


2013年7月6日 星期六

圖形驗證

最近在看某微積分的應用

想過好像大部分都幾乎用整數在計算紙標一標坐標,看一下

就當做驗證過 ~ 用程式跑個圖形 ~ 果然跟課本一模一樣

2.

3.

4.

5.

  6.

 

 

 

 


2013年4月7日 星期日

Java 常用到的日期問題

1.日期 = 上週 下週
2.日期 = 前一天 後一天
3.日期 = 相差天數

-------------------------上週 下週------------------------------------------
package com;

import java.text.SimpleDateFormat;

import java.util.Calendar;

public class Test01 {

    public static void main(String args[]){

        int i=0;

          Calendar cal = Calendar.getInstance();

          Calendar cal1 = Calendar.getInstance();

          int n = i;

          String monday;

          cal.add(Calendar.DATE, n*7);

          monday = new SimpleDateFormat("yyyy-MM-dd").format(cal.getTime());


          int n1 = i-1;

          String monday1;

          cal1.add(Calendar.DATE, n1*7);

          monday1 = new SimpleDateFormat("yyyy-MM-dd").format(cal1.getTime());

          System.out.println(monday1+"  :  "+monday);

    }

}


-------------------------前一天 後一天-----------------------------------

package com;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
public class Test02 {
    public static void main(String[] args) throws ParseException {  
         
                String Date_Text ="2013-03-31";
                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");  
     
                Calendar cal = Calendar.getInstance();  
                cal.setTime(sdf.parse(Date_Text));  
                cal.add(Calendar.DATE, -1);//減一天  
              //cal.add(Calendar.MONTH, n);//增加一个月  
     
                System.out.println(" 增加一天 : "+ sdf.format(cal.getTime()));  
     
           
    }
}
--------------------------相差天數-----------------------------------
package com;
import java.util.Date;

public class Test03 {
    public static void main(String[] args) {
          String s1 = "2013-04-01";
          String s2 = "2013-03-27";
          String t1 = s1.replace('-','/');
          String t2 = s2.replace('-','/');
          try{
              Date dt1= new Date(t1);
              Date dt2= new Date(t2);
              System.out.println("dt1="+dt1.getTime());
              System.out.println("dt2="+dt2.getTime());
              long l = dt1.getTime() - dt2.getTime();   
              System.out.println(l);
              System.out.println("相差天數 "+l/60/60/1000/24);
            }catch(Exception e){
                System.out.println("exception"+e.toString());
            }
    }
}

2013年3月1日 星期五

2013年2月15日 星期五

Java - URLEncoder與Base64 編碼應用

Java - URLEncoder與Base64 編碼應用

java.net.URLEncoder.encode => 加密

java.net.URLDecoder.decode => 解密

最常用UTF-8跟Big5

API說明文件:
http://docs.oracle.com/javase/1.4.2/docs/api/java/net/URLEncoder.html

PS:0到9還有 ".", "-", "*", "_"等特殊符號不能編碼
Base64編碼

如果想用把特殊符號等編碼就用Base64

 請下載 commons-codec-1.7.jar 檔案


 如果把一堆參數加在一起編碼用 - 符號等做區隔

像姓名跟年紀跟性別等參數加在一起編碼

然後再接收端區分    例如:  姓名-年紀-性別


Code:
 import java.util.*;

public class Test03 {
    public static void main(String args[]){
        String Text1="ABC-DEF-GHI-JKL";
        List<String> list = new ArrayList<String>();
        System.out.println("文字長度 : "+Text1.length());
        int l =Text1.length();
        for(int i=0;i<=l;i++){
            if(i==0){
              // System.out.println(Text1.substring(0,i));
            }else{
              // System.out.println(Text1.substring(i-1,i));
              if(Text1.substring(i-1,i).equals("-"))
              {
                  System.out.println(Text1.substring(i-1,i));
                  System.out.println(" i : "+i);
                  list.add(String.valueOf(i));
              }
            }
        }
        System.out.println(" Size : "+list.size());
        System.out.println("<-----擷取----->");
        for(int j=0;j<list.size();j++)
        {
            System.out.println(list.get(j));
            if(j==0){
            System.out.println(Text1.substring(0,Integer.valueOf(list.get(j))-1));
            }else{
                System.out.println(Text1.substring(Integer.valueOf(list.get(j-1)),Integer.valueOf(list.get(j))-1));
            }
        }
    }
   
}

2013年1月5日 星期六

JavaMelody 網頁監控程式

JavaMelody 官方網站

http://code.google.com/p/javamelody/

介紹:
JavaMelody 

可監控網頁幾乎所有在運行的效能

例如:
Menory  
CPU      
Session
Thread   => 執行緒
Active JDBC Connection 活動的JDBC 連線
Used jdbc connection      已使用JDBC 連線
JVM的效能監控
等等..............................(功能可以看官網的介紹)


1.首先到官網下載war檔案

 http://code.google.com/p/javamelody/downloads/list


2.在Eclipse 引用war檔案


3.準備在自己的專案加入JavaMelody元件
 javamelody.jar 和 jrobin-x.jar
並在專案web.xml加入一些文字

下載兩個檔案 的ZIP
 加入文字

        <filter>
                <filter-name>monitoring</filter-name>
                <filter-class>net.bull.javamelody.MonitoringFilter</filter-class>
        </filter>
        <filter-mapping>
                <filter-name>monitoring</filter-name>
                <url-pattern>/*</url-pattern>
        </filter-mapping>
        <listener>
                <listener-class>net.bull.javamelody.SessionListener</listener-class>
        </listener>

4.啟動Tomcat

請記得將您的專案和Javamelody 在Tomcat底下一起執行

5.執行後


2012年12月16日 星期日

log4jdbc元件 Java資料庫追蹤

log4jdbc

是記錄資料庫操作與法跟回傳值




官方網站:

 https://code.google.com/p/log4jdbc/

1.首先先下載  jar元件


log4jdbc4-1.2.jar
log4j-1.2.16.jar
slf4j-api-1.6.4.jar
slf4j-log4j12-1.6.4.jar

2.並在web.xml 加入等字串(切記log4j.properties等檔案我是放在WEB-INF\classes\底下)

<servlet>
<init-param>
<param-name>log4j-properties-location</param-name>
<param-value>WEB-INF\classes\log4j.properties</param-value>
</init-param>
</servlet>

3.並在WEB-INF\classes\底下新增兩個檔案log4j.properties跟log4j.xml


如果不知道log4j.properties跟log4j.xml要放哪些內容
可以參考官網5. Set up your loggers. 裡面有 log4j.properties跟log4j.xml可以看~也可以直接複製

4.並放上更改驅動程式

 本來是Class.forName("net.sourceforge.jtds.jdbcx.JtdsDataSource");把它改成log4jdbc驅動
  Class.forName("net.sf.log4jdbc.DriverSpy");
然後
conn = DriverManager.getConnection("jdbc:jtds:sqlserver://localhost:1433/Test01","OO","OOO");
  記得加入log4jdbc等字串會變成
conn = DriverManager.getConnection("jdbc:log4jdbc:jtds:sqlserver://localhost:1433/Test01","OO","OOO");
然後你在Console控制台可以看到資料庫操作印出來的結果    

使用Debug模式也可以到達一樣的效果 ~ 只不過比較麻煩: