ApplicationContext wac = WebApplicationContextUtils .getRequiredWebApplicationContext(config.getServletContext());
環境->虛擬主機->default_host->其它屬性(主機別名)->修改端口
服務器->應用程序服務器->server1->端口->WC_defaulthost->修改端口
/* 追加自定義驗證方法 */
// 身份證號碼驗證
jQuery.validator.addMethod("idcardno", function(value, element) {
return this.optional(element) || isIdCardNo(value);
}, "請正確輸入身份證號碼");
//字母數字
jQuery.validator.addMethod("alnum", function(value, element) {
return this.optional(element) || /^[a-zA-Z0-9]+$/.test(value);
}, "只能包括英文字母和數字");
// 手機號碼驗證
jQuery.validator.addMethod("cellphone", function(value, element) {
var length = value.length;
return this.optional(element) || (length == 11 && /^(1\d{10})$/.test(value));
}, "請正確填寫手機號碼");
// 電話號碼驗證
jQuery.validator.addMethod("telephone", function(value, element) {
var tel = /^(\d{3,4}-?)?\d{7,9}$/g;
return this.optional(element) || (tel.test(value));
}, "請正確填寫電話號碼");
// 郵政編碼驗證
jQuery.validator.addMethod("zipcode", function(value, element) {
var tel = /^[0-9]{6}$/;
return this.optional(element) || (tel.test(value));
}, "請正確填寫郵政編碼");
// 漢字
jQuery.validator.addMethod("chcharacter", function(value, element) {
var tel = /^[\u4e00-\u9fa5]+$/;
return this.optional(element) || (tel.test(value));
}, "請輸入漢字");
/**
* 身份證號碼驗證
*
*/
function isIdCardNo(num) {
var factorArr = new Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1);
var parityBit=new Array("1","0","X","9","8","7","6","5","4","3","2");
var varArray = new Array();
var intValue;
var lngProduct = 0;
var intCheckDigit;
var intStrLen = num.length;
var idNumber = num;
// initialize
if ((intStrLen != 15) && (intStrLen != 18)) {
return false;
}
// check and set value
for(i=0;i<intStrLen;i++) {
varArray[i] = idNumber.charAt(i);
if ((varArray[i] < '0' || varArray[i] > '9') && (i != 17)) {
return false;
} else if (i < 17) {
varArray[i] = varArray[i] * factorArr[i];
}
}
if (intStrLen == 18) {
//check date
var date8 = idNumber.substring(6,14);
if (isDate8(date8) == false) {
return false;
}
// calculate the sum of the products
for(i=0;i<17;i++) {
lngProduct = lngProduct + varArray[i];
}
// calculate the check digit
intCheckDigit = parityBit[lngProduct % 11];
// check last digit
if (varArray[17] != intCheckDigit) {
return false;
}
}
else{ //length is 15
//check date
var date6 = idNumber.substring(6,12);
if (isDate6(date6) == false) {
return false;
}
}
return true;
}
/**
* 判斷是否為“YYYYMM”式的時期
*
*/
function isDate6(sDate) {
if(!/^[0-9]{6}$/.test(sDate)) {
return false;
}
var year, month, day;
year = sDate.substring(0, 4);
month = sDate.substring(4, 6);
if (year < 1700 || year > 2500) return false
if (month < 1 || month > 12) return false
return true
}
/**
* 判斷是否為“YYYYMMDD”式的時期
*
*/
function isDate8(sDate) {
if(!/^[0-9]{8}$/.test(sDate)) {
return false;
}
var year, month, day;
year = sDate.substring(0, 4);
month = sDate.substring(4, 6);
day = sDate.substring(6, 8);
var iaMonthDays = [31,28,31,30,31,30,31,31,30,31,30,31]
if (year < 1700 || year > 2500) return false
if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) iaMonthDays[1]=29;
if (month < 1 || month > 12) return false
if (day < 1 || day > iaMonthDays[month - 1]) return false
return true
}
為了在windows和linux平臺公用相同的郵件客戶端和郵件內容,主要是有時候切換操作系統又要看以前的郵件。最后找到了
thunderbird(下面簡稱TB)客戶端。這個客戶端就是有點慢,倒是能滿足我的要求。但是它的默認設置有時候有點不符合我們的使用習慣,我對它的
設置作了下面的一些修改:
1:轉發郵件
默認的設置轉發把郵件的內容作為附件轉發。這樣有兩個不好的地方:第一,如果郵件有附件,這個附件不能轉發;第二,接收方必須要用TB客戶端了,否則打不
開。
修改:編輯 -> 首選項 -> 編寫 -> 常規:轉發消息改成內聯
2:其它郵件客戶端接收TB發的中文附件是亂碼
這個是標準問題,TB使用的是新的標準,但是別的客戶端使用的是舊的標準(具體那個標準忘了,google一下就可以了)。這樣就會出現亂碼了。
修改:編輯 -> 首選項 -> 高級 ->
配置編輯器:mail.strictly_mime.parm_folding 改成0或者1
3:自動打開附件
TB默認的是在打開郵件的時候同時自動打開郵件的附件。這樣的話,如果附件大就很頭痛。
修改:編輯 -> 首選項
-> 高級 -> 配置編輯器:
mail.inline_attachments 改成faulse
mail.content_disposition.type 改成1
4:回復郵件時回復的郵件內容在下面
TB默認的回復郵件的回復內容是在下面的,這樣如果郵件來回幾次,回復比較多,看起來很不方便。
修改:編輯
-> 首選項 -> 高級 -> 配置編輯器:Mail.identify.default.reply_on_top值由0改為1
還有一個問題沒有解決,就是有時候在TB中打開一個文件夾,它會重新建索引還是什么的,這時候打開一個文件夾比較慢。看網上有說把這個文件夾重命名,再創
建一個同名的文件夾,最后把老的文件夾的內容拷貝到新的里面就好了,這個沒有試過。不過這個也不是特別大的問題,就沒有繼續搞了,什么時候有空再看看,到
時候再貼上來。
格式: tar 選項 文件目錄列表
功能: 對文件目錄進行打包備份
選項:
-c 建立新的歸檔文件
-r 向歸檔文件末尾追加文件
-x 從歸檔文件中解出文件
-O 將文件解開到標準輸出
-v 處理過程中輸出相關信息
-f 對普通文件操作
-z 調用gzip來壓縮歸檔文件,與-x聯用時調用gzip完成解壓縮
-Z 調用compress來壓縮歸檔文件,與-x聯用時調用compress完成解壓縮
例如:
1.將當前目錄下所有.txt文件打包并壓縮歸檔到文件this.tar.gz,我們可以使用
tar czvf this.tar.gz ./*.txt
2.將當前目錄下的this.tar.gz中的文件解壓到當前目錄我們可以使用
tar xzvf this.tar.gz ./
Application Servers > server1 > Process Definition > Java
Virtual Machine > Custom Properties
虛擬機參數在命令行的形式為 -Dproperty=value,在程序中可以用System.getProperty("property")取值。
利用這個特性可以對程序運行進行控制,避免代碼的修改。
import java.net.URL;
import org.codehaus.xfire.client.Client;
public class XfireClient
{
public static void main(String[] args)
{
DyClient();
}
/**
* You get a DynamicClient when you create a Client with the URL of a WSDL
*/
public static void DyClient()
{
try
{
Client client = new Client(
new URL(
"http://www.webxml.com.cn/webservices/qqOnlineWebService.asmx?wsdl"));
Object[] results = client.invoke("qqCheckOnline",
new Object[] { "31506173" });
System.out.println((String) results[0]);
}
catch ( Exception e)
{
e.printStackTrace();
}
}
}
必須jar:
commons-codec-1.3.jar
commons-httpclient-3.0.jar
commons-logging-1.0.4.jar
jdom-1.0.jar
wsdl4j-1.6.1.jar
xfire-all-1.2.6.jar
XmlSchema-1.1.jar
import java.io.UnsupportedEncodingException;
public class UTF {
public static void main(String[] args) {
String s = "非常好";
try {
byte[] b = s.getBytes("UTF-8");
for(int i=0; i< b.length; i++){
System.out.println(Integer.toHexString(b[i]).substring(6));
}
System.out.println(new String(b, "UTF-8"));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
}
輸出:
e9
9d
9e
e5
b8
b8
e5
a5
bd
非常好