Javascript教學網站
Javascript物件屬性方法
其實他的首頁教不少相關的東西
hibernate api 3.0
平常都是看reference那個pdf檔居多
Struts官網
Java Tutorials
當需要下cmd指令跟太基本的東西(IDE老是做光光了或是不小心忘了), 會回來翻一下
其實他這個練習, 寫得還蠻不錯的說~個人覺得^^
至於java doc...這麼基本的東西...ㄜ~相信有在用的人一定是下到本機端看比較實在XD
不過說真的, 版本眾多一_一|||...要看好使用的版本比較保險...
(雖然最基本的method大同小異, 但是像當紅的xml, dom這種, 好像是1.4還1.5才開始加入的...雖然後面版本越來越像怪物了)
永遠的UNIX
通常來這都是找怎麼在db cmd下的指令啦...
雖然有mysqlphpadmin真是好用, 可是有時候情況就是不允許T_T
不過其實google大神查一查也是很多就是XD...
2008年1月22日 星期二
[Java]SHA-1加密
這個是蠻早之前找出來的, 參考來源是這...原文寫得蠻讚的XD|||
除了SHA-1還有其他的, 蠻好的教學文
JAVA 上加密演算法的實作範例
我只需要用的SHA-1出來做加密
import java.security.*;
/**hash code*/
public String hashSHA_1(String info) {
String re = null;
try {
String myinfo=info;
MessageDigest alga=MessageDigest.getInstance("SHA-1");
alga.update(myinfo.getBytes());
byte[] digesta=alga.digest();
re = byte2hex(digesta);
} catch(Exception e) {
e.printStackTrace();
}
return re;
}
/**二進位制轉字串*/
public String byte2hex(byte[] b) {
String hs="";
String stmp="";
for (int n=0;n < b.length;n++)
{
stmp=(java.lang.Integer.toHexString(b[n] & 0XFF));
if (stmp.length()==1) hs=hs+"0"+stmp;
else hs=hs+stmp;
}
return hs.toUpperCase();
}
除了SHA-1還有其他的, 蠻好的教學文
JAVA 上加密演算法的實作範例
我只需要用的SHA-1出來做加密
import java.security.*;
/**hash code*/
public String hashSHA_1(String info) {
String re = null;
try {
String myinfo=info;
MessageDigest alga=MessageDigest.getInstance("SHA-1");
alga.update(myinfo.getBytes());
byte[] digesta=alga.digest();
re = byte2hex(digesta);
} catch(Exception e) {
e.printStackTrace();
}
return re;
}
/**二進位制轉字串*/
public String byte2hex(byte[] b) {
String hs="";
String stmp="";
for (int n=0;n < b.length;n++)
{
stmp=(java.lang.Integer.toHexString(b[n] & 0XFF));
if (stmp.length()==1) hs=hs+"0"+stmp;
else hs=hs+stmp;
}
return hs.toUpperCase();
}
[Javacript]讀取解xml資料
這是算用IE/FireFox裡內建讀xml資料的方法...
(網路上老是只貼一半, google大神問了好幾次XD)
跨兩個瀏覽器ok的寫法...
IE跟FireFox兩個讀xml的function跟後來取node的方式都不一樣...所以還是得分開寫
另外xml load進來的時間有點慢, 若是xml檔太大...有時後還沒load完...
items還沒建完, 就會有點怪怪的...
所以建議是...load xml最好是能寫在最前面, 讓程式有足夠的時間去load
我的偷吃步是寫死一個default的item[0]...所以才會看到從i+1開始算XD...
反正總是剛開啟用default值跑就夠了^_^!
另外同事是說...也可以用ajax去out print一個xml出來讀也是可以啦...
不過ajax要另外寫一隻...就又懶惰了一_一|||
還有用這個方法的話, 瀏覽器會暫存住資訊...所以發現要是改了xml資訊...
發現程式沒有做對應的變動...記得去清一下暫存資訊/表單資訊應該就可以了~
(差點被FireFox嚇死XD)
blog不能吃 < 緊連的字XD...又試了老半天...空一格就好了QQ
var xmlDoc;
var items = new Array();
function init() {
if(document.implementation.createDocument) {
xmlDoc = document.implementation.createDocument('', '', null);
xmlDoc.load("./aabbcc.xml");
xmlDoc.onload = function(){itemFireFoxSetting();}
} else {
xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async="false";
xmlDoc.load("./aabbcc.xml");
itemIESetting();
}
}
function itemFireFoxSetting() {
var ads = xmlDoc.getElementsByTagName('item');
/*
< item >
< id >A11< / id >
< /item >
*/
//alert(ads.length);
for(var i=0; i < ads.length; i++) {
var tmp = new Array();
tmp[0] = ads[i].getElementsByTagName('id')[0].firstChild.nodeValue;
items[i+1] = tmp;
//alert(tmp[0]);
}
}
function itemIESetting() {
var ads = xmlDoc.documentElement.selectNodes('item');
for(var i=0; i < ads.length; i++) {
var tmp = new Array();
tmp[0] = ads[i].getElementsByTagName('id')[0].firstChild.nodeValue;
items[i+1] = tmp;
//alert(tmp[0]);
}
}
(網路上老是只貼一半, google大神問了好幾次XD)
跨兩個瀏覽器ok的寫法...
IE跟FireFox兩個讀xml的function跟後來取node的方式都不一樣...所以還是得分開寫
另外xml load進來的時間有點慢, 若是xml檔太大...有時後還沒load完...
items還沒建完, 就會有點怪怪的...
所以建議是...load xml最好是能寫在最前面, 讓程式有足夠的時間去load
我的偷吃步是寫死一個default的item[0]...所以才會看到從i+1開始算XD...
反正總是剛開啟用default值跑就夠了^_^!
另外同事是說...也可以用ajax去out print一個xml出來讀也是可以啦...
不過ajax要另外寫一隻...就又懶惰了一_一|||
還有用這個方法的話, 瀏覽器會暫存住資訊...所以發現要是改了xml資訊...
發現程式沒有做對應的變動...記得去清一下暫存資訊/表單資訊應該就可以了~
(差點被FireFox嚇死XD)
blog不能吃 < 緊連的字XD...又試了老半天...空一格就好了QQ
var xmlDoc;
var items = new Array();
function init() {
if(document.implementation.createDocument) {
xmlDoc = document.implementation.createDocument('', '', null);
xmlDoc.load("./aabbcc.xml");
xmlDoc.onload = function(){itemFireFoxSetting();}
} else {
xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async="false";
xmlDoc.load("./aabbcc.xml");
itemIESetting();
}
}
function itemFireFoxSetting() {
var ads = xmlDoc.getElementsByTagName('item');
/*
< item >
< id >A11< / id >
< /item >
*/
//alert(ads.length);
for(var i=0; i < ads.length; i++) {
var tmp = new Array();
tmp[0] = ads[i].getElementsByTagName('id')[0].firstChild.nodeValue;
items[i+1] = tmp;
//alert(tmp[0]);
}
}
function itemIESetting() {
var ads = xmlDoc.documentElement.selectNodes('item');
for(var i=0; i < ads.length; i++) {
var tmp = new Array();
tmp[0] = ads[i].getElementsByTagName('id')[0].firstChild.nodeValue;
items[i+1] = tmp;
//alert(tmp[0]);
}
}
訂閱:
文章 (Atom)