?? java初學者必讀.txt
字號:
首 頁 | 新 聞 | 技 術 | 論 壇 | 人 才 | 商 城 | 大本營 |《程序員》| 軟 件
2004.4.16
English
CSDN - 專家門診 - Java J2SE / 基礎類問題
推薦 | 保存 | 關閉窗口
主 題: java初學者必讀-經驗總結
作 者: wjmmml (笑著悲傷)
等 級:
信 譽 值: 183
所屬論壇: Java J2SE / 基礎類
問題點數: 24
回復次數: 234
發表時間: 2002-09-30 09:51:20Z
最近升級為2顆紅星,昨天又發現進入排行榜前10名,很高興,于是散點分(別嫌我吝嗇),把java初學者學習總可能用的到問題總結一下,想對大家有幫助。
1:jdk開發中系統環境變量設置:
方法如下:
Win2000中:
右鍵我的電腦--》屬性--》高級--》環境環境變量
classpath=.;jdk安裝目\lib
path=jdk安裝目錄\bin
注意:一定不可忽略“.”。
Win98中:
修改autocexe.bat 就是修改自動批處理文件。
添加:
set classpath=.;jdk安裝目\lib
set path=jdk安裝目錄\bin;%path%
2:(前提設置好了系統環境變量)
不帶包的編譯,相當簡單:
javac 類名.java
java 類名
關于帶包的編譯問題:
如果你的類是帶包的,應該用如下方法編譯:
javac -d 包的父目錄 類名.java
java 包名.類名
3:Tomcat服務器配置:
1):設置好系統環境變量。
2):JAVA_HOME=G:\JBuilder6\jdk1.3.1
G:\JBuilder6\jdk1.3.1為jdk安裝目錄
3):TOMCAT_HOME=tomcat安裝目錄
4:修改serlet而不重新啟動tomcat
修改
%TOMCAT_HOME%\conf\server.xml
大致如下:
<Context path="" docBase="ROOT" debug="0" reloadable="true"/>
其中reloadable就是配置是否自動reload的,把它設為true,如果沒有這一項,加上。
5:修改webshpere中的servlet而不重新啟動服務:
修改..\WEB-INF下面的web.xml:
加入<webappext:WebAppExtension xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:webappext="webappext.xmi" xmlns:webapplication="webapplication.xmi" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmi:id="WebApp_ID_Ext" reloadInterval="3" reloadingEnabled="true" fileServingEnabled="true" directoryBrowsingEnabled="true" serveServletsByClassnameEnabled="true">其中reloadInterval="3" reloadingEnabled="true" fileServingEnabled="true" directoryBrowsingEnabled="true" serveServletsByClassnameEnabled="true"是主要的,reloadInterval="3" reloadingEnabled="true" 是說修改后3秒自動重新載
入。
6:配置jbuilder6+webshpere4.0AE,其實jb7可以參照:
首先安裝j2ee,然后把j2ee加入到jb的libraries里面。方法如下
1:)tools--->configure libraries-->new--->name:里面填寫j2ee,Location:里面默認的舊可以了。---->add-->選在j2ee安裝路徑,選中lib文件夾--ok--oK.
2:)返回到configure libraries也面后,選中Required Libraries-->add--》選中你剛才創建的j2ee,點ok就可以了。
然后配置webshpere應用服務器和database pilot:
第一步:tools-->enterprise setup-->Application servers設置安裝路徑以及IBM的JAVA路徑,DB2你自己看著辦
第二步:project-->Defaults project properties里servers選擇Ws4.0,應該可以用了
webshpere4.0不支持ejb2.0,webshpere5.0支持。
配置database pilot
第一步:添加類庫tools-->config libraries添加你的數據庫驅動程序類
第二步:tools-->enterprise setup-->Database Drivers里面添加你剛添加的那個類庫
第三步:重啟JBilder后,tools-->database pilot-->option-->drivers,添加驅動程序
第四步:在database pilot點新建就可以了,driver:COM.ibm.db2.jdbc.app.DB2Driver。url:jdbc:db2:db_sdbc.(db_sdbc為服務器上的db2數據庫).
回復人: Tatming(笨鳥) ( ) 信譽:95 2002-09-30 10:04:28Z 得分:0
剛剛想問這些問題呢
謝謝了哈
國慶快樂!
嘿嘿
Top
回復人: wjmmml(笑著悲傷) ( ) 信譽:183 2002-09-30 10:06:48Z 得分:0
7:解決java中文問題:
針對applet和awt:
1:)
Font f = new Font(UIResource.getString( "Default_font"),Font.PLAIN,12);
UIManager.put("Label.font",f);
UIManager.put("Label.foreground",Color.black);
UIManager.put("Button.font",f);
UIManager.put("Menu.font",f);
UIManager.put("MenuItem.font",f);
UIManager.put("List.font",f);
UIManager.put("CheckBox.font",f);
UIManager.put("RadioButton.font",f);
UIManager.put("ComboBox.font",f);
UIManager.put("TextArea.font",f);
2:)
Font f = new Font("隸書",Font.PLAIN,15);
UIManager.put("Button.font",font);
UIManager.put("ToggleButton.font",font);
UIManager.put("RadioButton.font",font);
UIManager.put("CheckBox.font",font);
UIManager.put("ColorChooser.font",font);
UIManager.put("ToggleButton.font",font);
UIManager.put("ComboBox.font",font);
UIManager.put("ComboBoxItem.font",font);
UIManager.put("InternalFrame.titleFont",font);
UIManager.put("Label.font",font);
UIManager.put("List.font",font);
UIManager.put("MenuBar.font",font);
UIManager.put("Menu.font",font);
UIManager.put("MenuItem.font",font);
UIManager.put("RadioButtonMenuItem.font",font);
UIManager.put("CheckBoxMenuItem.font",font);
UIManager.put("PopupMenu.font",font);
UIManager.put("OptionPane.font",font);
UIManager.put("Panel.font",font);
UIManager.put("ProgressBar.font",font);
UIManager.put("ScrollPane.font",font);
UIManager.put("Viewport",font);
UIManager.put("TabbedPane.font",font);
UIManager.put("TableHeader.font",font);
UIManager.put("TextField.font",font);
UIManager.put("PasswordFiled.font",font);
UIManager.put("TextArea.font",font);
UIManager.put("TextPane.font",font);
UIManager.put("EditorPane.font",font);
UIManager.put("TitledBorder.font",font);
UIManager.put("ToolBar.font",font);
UIManager.put("ToolTip.font",font);
UIManager.put("Tree.font",font);
3:)針對jsp和servlet:
解決辦法:
第一:
在jsp頁面加入:
<%@ page contentType="text/html; charset=gb2312" %>
或者在servlet里面
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html; charset=gb2312");//這是重要的
上面的如果在不行就用如下的方法在數據入庫前進行調用:
public static String UnicodeToChinese(String s){
try{
if(s==null||s.equals("")) return "";
String newstring=null;
newstring=new String(s.getBytes("ISO8859_1"),"gb2312");
return newstring;
}
catch(UnsupportedEncodingException e)
{
return s;
}
}
public static String ChineseToUnicode(String s){
try{
if(s==null||s.equals("")) return "";
String newstring=null;
newstring=new String(s.getBytes("gb2312"),"ISO8859_1");
return newstring;
}
catch(UnsupportedEncodingException e)
{
return s;
}
}
3:)解決weblogic/webshpere中文問題:
在web.xml文件中需要配置中文環境。r如下:
<context-param>
<param-name>weblogic.httpd.inputCharset./*</param-name>
<param-value>GB2312</param-value>
</context-param>
4:)javamail附件中文亂碼:
/*
@從BodyPart中提取使用ISO-8859-1編嗎的文件名
@因為BodyPart.getFilename()過程已經對文件名作了一次編碼,有時不能直接使用
*/
public static String getISOFileName(Part body){
//設置一個標志,判斷文件名從Content-Disposition中獲取還是從Content-Type中獲取
boolean flag=true;
if(body==null){
return null;
}
String[] cdis;
try{
cdis=body.getHeader("Content-Disposition");
}
catch(Exception e){
return null;
}
if(cdis==null){
flag=false;
}
if(!flag){
try{
cdis=body.getHeader("Content-Type");
}
catch(Exception e){
return null;
}
}
if(cdis==null){
return null;
}
if(cdis[0]==null){
return null;
}
//從Content-Disposition中獲取文件名
if(flag){
int pos=cdis[0].indexOf("filename=");
if(pos<0){
return null;
}
//如果文件名帶引號
if(cdis[0].charAt(cdis[0].length()-1)=='"'){
return cdis[0].substring(pos+10,cdis[0].length()-1);
}
return cdis[0].substring(pos+9,cdis[0].length());
}
else{
int pos=cdis[0].indexOf("name=");
if(pos<0){
return null;
}
//如果文件名帶引號
if(cdis[0].charAt(cdis[0].length()-1)=='"'){
return cdis[0].substring(pos+6,cdis[0].length()-1);
}
return cdis[0].substring(pos+5,cdis[0].length());
}
}
8:字符串分割:
public int getCount(String str,String sign){//查找某一字符串中str,特定子串s的出現次數
if(str==null) return 0;
StringTokenizer s=new StringTokenizer(str,sign);
return s.countTokens();
}
public String[] getArray(String str,String sign){//按特定子串s為標記,將子串截成數組。
int count=getCount(str,sign);
int j=0;
String[] arr=new String[count];
for(int i=0;i<count;i++){
if(str.indexOf(sign)!=-1){
j =str.indexOf(sign);
arr[i]=str.substring(0,j);
str =str.substring(j+1);
}else{
arr[i]=str;
}
}
return arr;
}
9:jdk1.3沒有字符串替換函數,(jdk1.4有)。
解決1.3中的個這個問題如下:
public String stringReplace(String sourceString, String toReplaceString, String replaceString)
{
String returnString = sourceString;
int stringLength = 0;
if(toReplaceString != null)
{
stringLength = toReplaceString.length();
}
if(returnString != null && returnString.length() > stringLength)
{
int max = 0;
String S4 = "";
for(int i = 0; i < sourceString.length(); i++)
{
max = i + toReplaceString.length() > sourceString.length()? sourceString.length():i + stringLength;
String S3 = sourceString.substring(i, max);
if(!S3.equals(toReplaceString))
{
S4 += S3.substring(0,1);
}else{
S4 += replaceString;
i += stringLength -1 ;
}
}
returnString = S4;
}
return returnString;
}
9:設置weblogic連接池:
pool的配置:
假設已配置服務:expserv
且數據庫服務器機器名為:expserv
數據庫sid:expservSID,用戶名和密碼都為:expserv
以weblogic7.0為例,首先啟動服務
http://localhost:port/console
打開service\jdbc\connection pools
配置oraclePool如下:
Configuration:
Name: oraclePool
URL: jdbc:oracle:thin:@expserv:1521:expservSID
Driver Classname: oracle.jdbc.driver.OracleDriver
Properties(key=value): user=expserv
Targets:
Targets-Server:expserv
在weblogic7.0中除了數據庫密碼,其他的pool參數都可以在config.xml中直接用文本編輯器直接修改。
Top
回復人: myjoy(笑看風云) ( ) 信譽:98 2002-09-30 10:08:26Z 得分:0
挺好,鼓勵!
不過分少了點,我也期盼能晉升到五個星。
Top
回復人: micheas(冷雨) ( ) 信譽:95 2002-09-30 10:08:30Z 得分:0
好東東,值得珍藏!!!
Top
回復人: wjmmml(笑著悲傷) ( ) 信譽:183 2002-09-30 10:08:37Z 得分:0
10:數字轉貨幣大寫(js)
function ChangeToBig(value)
{
var intFen,i;
var strArr,strCheck,strFen,strDW,strNum,strBig,strNow;
if(trim(value)=="") //數據為空時返回"零"
return "零";
if (isNaN(value)) //數據非法時提示,并返回空串
{
strErr = "數據"+value+"非法!"
alert(strErr);
return "";
}
strCheck = value+".";
strArr = strCheck.split(".");
strCheck = strArr[0];
if(strCheck.length>12) //數據大于等于一萬億時提示無法處理
{
strErr = "數據"+value+"過大,無法處理!"
alert(strErr);
return "";
}
try
{
i = 0;
strBig = "";
intFen = value*100; //轉換為以分為單位的數值
strFen = intFen.toString();
strArr = strFen.split(".");
strFen = strArr[0];
intFen = strFen.length; //獲取長度
strArr = strFen.split(""); //將各個數值分解到數組內
while(intFen!=0) //分解并轉換
{
i = i+1;
switch(i) //選擇單位
{
case 1:strDW = "分";break;
case 2:strDW = "角";break;
case 3:strDW = "元";break;
case 4:strDW = "拾";break;
case 5:strDW = "佰";break;
case 6:strDW = "仟";break;
case 7:strDW = "萬";break;
case 8:strDW = "拾";break;
case 9:strDW = "佰";break;
case 10:strDW = "仟";break;
case 11:strDW = "億";break;
case 12:strDW = "拾";break;
case 13:strDW = "佰";break;
case 14:strDW = "仟";break;
}
switch (strArr[intFen-1]) //選擇數字
{
case "1":strNum = "壹";break;
case "2":strNum = "貳";break;
case "3":strNum = "叁";break;
case "4":strNum = "肆";break;
case "5":strNum = "伍";break;
case "6":strNum = "陸";break;
case "7":strNum = "柒";break;
case "8":strNum = "捌";break;
case "9":strNum = "玖";break;
case "0":strNum = "零";break;
}
//處理特殊情況
strNow = strBig.split("");
//分為零時的情況
if((i==1)&&(strArr[intFen-1]=="0"))
strBig = "整";
//角為零時的情況
else if((i==2)&&(strArr[intFen-1]=="0"))
{ //角分同時為零時的情況
if(strBig!="整")
strBig = "零"+strBig;
}
//元為零的情況
else if((i==3)&&(strArr[intFen-1]=="0"))
strBig = "元"+strBig;
//拾-仟中一位為零且其前一位(元以上)不為零的情況時補零
else if((i<7)&&(i>3)&&(strArr[intFen-1]=="0")&&(strNow[0]!="零")&&(strNow[0]!="元"))
strBig = "零"+strBig;
//拾-仟中一位為零且其前一位(元以上)也為零的情況時跨過
else if((i<7)&&(i>3)&&(strArr[intFen-1]=="0")&&(strNow[0]=="零"))
{}
//拾-仟中一位為零且其前一位是元且為零的情況時跨過
else if((i<7)&&(i>3)&&(strArr[intFen-1]=="0")&&(strNow[0]=="元"))
{}
//當萬為零時必須補上萬字
else if((i==7)&&(strArr[intFen-1]=="0"))
strBig ="萬"+strBig;
//拾萬-仟萬中一位為零且其前一位(萬以上)不為零的情況時補零
else if((i<11)&&(i>7)&&(strArr[intFen-1]=="0")&&(strNow[0]!="零")&&(strNow[0]!="萬"))
strBig = "零"+strBig;
//拾萬-仟萬中一位為零且其前一位(萬以上)也為零的情況時跨過
else if((i<11)&&(i>7)&&(strArr[intFen-1]=="0")&&(strNow[0]=="萬"))
{}
//拾萬-仟萬中一位為零且其前一位為萬位且為零的情況時跨過
else if((i<11)&&(i>7)&&(strArr[intFen-1]=="0")&&(strNow[0]=="零"))
{}
//萬位為零且存在仟位和十萬以上時,在萬仟間補零
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -