string->byte
Byte static byte parseByte(String s)
byte->string
Byte static String toString(byte b)
char->string
Character static String to String (char c)
string->Short
Short static Short parseShort(String s)
Short->String
Short static String toString(Short s)
String->Integer
Integer static int parseInt(String s)
Integer->String
Integer static String tostring(int i)
String->Long
Long static long parseLong(String s)
Long->String
Long static String toString(Long i)
String->Float
Float static float parseFloat(String s)
Float->String
Float static String toString(float f)
String->Double
Double static double parseDouble(String s)
Double->String
Double static String toString(Double
1如何將字串 String 轉換成整數 int?
A. 有兩個方法:
1). int i = Integer.parseInt([String]); 或
i = Integer.parseInt([String],[int radix]);
2). int i = Integer.valueOf(my_str).intValue();
注: 字串轉成 Double, Float, Long 的方法大同小異.
2 如何將整數 int 轉換成字串 String ?
A. 有叁種方法:
1.) String s = String.valueOf(i);
2.) String s = Integer.toString(i);
3.) String s = "" + i;
注: Double, Float, Long 轉成字串的方法大同小異.
???? 輸入洋點型數
???? 輸入浮點數和雙精度數的處理方法和處理整數的方法幾乎一樣,但轉換的過程更復雜。???? F而的
艾碼可以讀入一個雙精度型數;
String s="1212";
Double adbu=Double.valueOf(s);
return adbu.doubleValue();
posted @
2007-04-29 19:16 jadmin 閱讀(59) |
評論 (0) |
編輯 收藏
1.指針
JAVA語言讓編程者無法找到指針來直接訪問內存無指針,并且增添了自動的內存管理功能,從而有效地防止了c/c++語言中指針操作失誤,如野指針所造成的系統崩潰。但也不是說JAVA沒有指針,虛擬機內部還是使用了指針,只是外人不得使用而已。這有利于Java程序的安全。
2.多重繼承
c++支持多重繼承,這是c++的一個特征,它允許多父類派生一個類。盡管多重繼承功能很強,但使用復雜,而且會引起許多麻煩,編譯程序實現它也很不容易。Java不支持多重繼承,但允許一個類繼承多個接口(extends+implement),實現了c++多重繼承的功能,又避免了c++中的多重繼承實現方式帶來的諸多不便。
3.數據類型及類
Java是完全面向對象的語言,所有函數和變量部必須是類的一部分。除了基本數據類型之外,其余的都作為類對象,包括數組。對象將數據和方法結合起來,把它們封裝在類中,這樣每個對象都可實現自己的特點和行為。而c++允許將函數和變量定義為全局的。此外,Java中取消了c/c++中的結構和聯合,消除了不必要的麻煩。
4.自動內存管理
Java程序中所有的對象都是用new操作符建立在內存堆棧上,這個操作符類似于c++的new操作符。下面的語句由一個建立了一個類Read的對象,然后調用該對象的work方法:
Readr=newRead();
r.work();
語句Readr=newRead();在堆棧結構上建立了一個Read的實例。Java自動進行無用內存回收操作,不需要程序員進行刪除。而c十十中必須由程序貝釋放內存資源,增加了程序設計者的負扔。Java中當一個對象不被再用到時,無用內存回收器將給它加上標簽以示刪除。JAVA里無用內存回收程序是以線程方式在后臺運行的,利用空閑時間工作。
5.操作符重載
Java不支持操作符重載。操作符重載被認為是c十十的突出特征,在Java中雖然類大體上可以實現這樣的功能,但操作符重載的方便性仍然丟失了不少。Java語言不支持操作符重載是為了保持Java語言盡可能簡單。
6.預處理功能
Java不支持預處理功能。c/c十十在編譯過程中都有一個預編澤階段,即眾所周知的預處理器。預處理器為開發人員提供了方便,但增加丁編譯的復雜性。JAVA虛擬機沒有預處理器,但它提供的引入語句(import)與c十十預處理器的功能類似。
7.Java不支持缺省函數參數,而c十十支持
在c中,代碼組織在函數中,函數可以訪問程序的全局變量。c十十增加了類,提供了類算法,該算法是與類相連的函數,c十十類方法與Java類方法十分相似,然而,由于c十十仍然支持c,所以不能阻止c十十開發人員使用函數,結果函數和方法混合使用使得程序比較混亂。
Java沒有函數,作為一個比c十十更純的面向對象的語言,Java強迫開發人員把所有例行程序包括在類中,事實上,用方法實現例行程序可激勵開發人員更好地組織編碼。
8字符串
c和c十十不支持字符串變量,在c和c十十程序中使用Null終止符代表字符串的結束,在Java中字符串是用類對象(strinR和stringBuffer)來實現的,這些類對象是Java語言的核心,用類對象實現字符串有以下幾個優點:
(1)在整個系統中建立字符串和訪問字符串元素的方法是一致的;
(2)J3陽字符串類是作為Java語言的一部分定義的,而不是作為外加的延伸部分;
(3)Java字符串執行運行時檢空,可幫助排除一些運行時發生的錯誤;
(4)可對字符串用“十”進行連接操作。
9“goto語句
“可怕”的goto語句是c和c++的“遺物”,它是該語言技術上的合法部分,引用goto語句引起了程序結構的混亂,不易理解,goto語句子要用于無條件轉移子程序和多結構分支技術。鑒于以廣理由,Java不提供goto語句,它雖然指定goto作為關鍵字,但不支持它的使用,使程序簡潔易讀。
l0.類型轉換
在c和c十十中有時出現數據類型的隱含轉換,這就涉及了自動強制類型轉換問題。例如,在c十十中可將一浮點值賦予整型變量,并去掉其尾數。Java不支持c十十中的自動強制類型轉換,如果需要,必須由程序顯式進行強制類型轉換。
11.異常
JAVA中的異常機制用于捕獲例外事件,增強系統容錯能力
try{//可能產生例外的代碼
}catch(exceptionTypename){
//處理
}
其中exceptionType表示異常類型。而C++則沒有如此方便的機制
posted @
2007-04-29 19:15 jadmin 閱讀(59) |
評論 (0) |
編輯 收藏
先Win+R后輸入regedit再回車,接著找到
????
??? [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion]???
??? "RegisteredOrganization"="此處修改為你的注冊單位"???
??? "RegisteredOwner"="此處修改為你的注冊用戶"??
按照上面內容修改后,回到桌面,然后右鍵[我的電腦]看[屬性],系統信息是不是已經改過來了啊^_^
posted @
2007-04-29 18:42 jadmin 閱讀(57) |
評論 (0) |
編輯 收藏
以下程序在JDK1.5.0_05環境下調試通過,程序分3個文件,放在同一目錄下
//List.java????? 順序表抽象數據類型的接口定義
public interface List
{
public void insert(int i,Object obj) throws Exception;????? //插入
public Object delete(int i) throws Exception;?????????????? //刪除
public Object getData(int i) throws Exception;????????????? //取數據元素
public int size();????????????????????????????????????????? //求元素個數
public boolean isEmpty();?????????????????????????????????? //是否空
}
//SeqList.java????? 順序表類
public class SeqList implements List
{
final int defaultSize = 10;
int maxSize;
int size;
Object[] listArray;
public SeqList()
{
????? initiate(defaultSize);
}
public SeqList(int size)
{
????? initiate(size);
}
private void initiate(int sz)
{
????? maxSize = sz;
????? size = 0;
????? listArray = new Object[sz];
}
public void insert(int i,Object obj) throws Exception
{
????? if(size == maxSize)
????? {
?????? throw new Exception("順序表已滿無法插入!");
????? }
????? if(i < 0 || i > size)
????? {
?????? throw new Exception("參數錯誤!");
????? }
????? for(int j = size;j > i;j--)
???????? listArray[j] = listArray[j-1];
????? listArray[i] = obj;
????? size++;
}
public Object delete(int i) throws Exception
{
????? if(size == 0)
????? {
?????? throw new Exception("順序表已空無法刪除!");
????? }
????? if(i < 0 || i > size-1)
????? {
?????? throw new Exception("參數錯誤!");
????? }
????? Object it = listArray[i];
????? for(int j = i;j < size-1;j++)
???????? listArray[j] = listArray[j+1];
????? size--;
????? return it;
}
public Object getData(int i) throws Exception
{
????? if(i < 0 || i >= size)
????? {
?????? throw new Exception("參數錯誤!");
????? }
????? return listArray[i];
}
public int size()
{
????? return size;
}
public boolean isEmpty()
{
????? return size == 0;
}
public int MoreDataDelete(SeqList L,Object x) throws Exception
{
????? int i,j;
????? int tag = 0;
????? for(i = 0;i < L.size;i++)
????? {
?????? if(x.equals(L.getData(i)))
?????? {
??????? L.delete(i);
??????? i--;
??????? tag = 1;
?????? }
????? }
????? return tag;
}
}
//SeqListTest1.java????? 示例程序1(主程序)
public class SeqListTest1
{
public static void main(String args[])
{
????? SeqList seqlist = new SeqList(100);
????? int n = 10;
????? try
????? {
?????? for(int i = 0;i < n;i++)
?????? {
??????? seqlist.insert(i,new Integer(i+1));
?????? }
?????? seqlist.delete(4);
?????? for(int i = 0;i < seqlist.size;i++)
?????? {
??????? System.out.print(seqlist.getData(i)+"????? ");
?????? }
????? }
????? catch(Exception e)
????? {
?????? System.out.println(e.getMessage());
????? }
}
}
//SeqListTest2.java???? 示例程序2
public class SeqListTest2
{
public static void main(String args[])
{
??? SeqList seqList = new SeqList(100);
??? Student[] student;
????????? student = new Student[3];
????????? student[0] = new Student(2000001,"張三","男",20);
????????? student[1] = new Student(2000002,"李四","男",21);
????????? student[2] = new Student(2000003,"王五","女",22);
????????? int n = 3;
????????? try
????????? {
???? for(int i = 0;i < n;i++)
???? {
????? seqList.insert(i,student[i]);
???? }
???? for(int i = 0;i < seqList.size;i++)
???? {
????? Student st = (Student)seqList.getData(i);
????? System.out.println(st.getNumber()+"???? "+st.getName()+"???? "+st.getSex()+"???? "+st.getAge());
???? }
??? }
??? catch(Exception e)
??? {
???? System.out.println(e.getMessage());
??? }
}
}
class Student
{
private long number;
private String name;
private String sex;
private int age;
Student(long number,String name,String sex,int age)
{
??? this.number = number;
??? this.name = name;
??? this.sex = sex;
??? this.age = age;
}
public long getNumber()
{
??? return number;
}
public String getName()
{
??? return name;
}
public String getSex()
{
??? return sex;
}
public int getAge()
{
??? return age;
}
}
本站原創,轉帖請注明出處:http://hi.baidu.com/jadmin/blog/謝謝!
posted @
2007-04-29 17:57 jadmin 閱讀(82) |
評論 (0) |
編輯 收藏
??????? 夫志當存高遠,慕先賢,絕情欲,棄疑滯。使庶幾之志揭然有所存,惻然有所感。忍屈伸,去細碎,廣咨問,除嫌吝,雖有淹留,何損于美趣,何患于不濟。若志不強毅,意氣不慷慨,徒碌碌滯于俗,默默束于情,永竄伏不庸,不免于下流。
posted @
2007-04-29 17:42 jadmin 閱讀(95) |
評論 (0) |
編輯 收藏
癥狀1:安裝時候提示程序掛起。
解決方案1:(驗證有效)
???????????????????????? 開始\運行\輸入regedit回車
???????????????????????? +HKEY_LOCAL_MACHINE
???????????????????????? +SYSTEM
???????????????????????? +CurrentControlSet
???????????????????????? +Control
???????????????????????? +Session Manager下的FileRenameOperations刪掉
解決方案2:(沒試過……)
???????????????????????? +HKEY_LOCAL_MACHINE
???????????????????????? +SOFTWARE
???????????????????????? +Microsoft
???????????????????????? +Windows
???????????????????????? +CurrentVersion
???????????????????????? +Setup
???????????????????????? +ExceptionComponents下的東西全部刪掉如:
?????????????????????????? {077ACEC7-979C-40AB-9835-435BA1511E0D}
?????????????????????????? {30C7234B-6482-4A55-A11D-ECD9030313F2}
?????????????????????????? {3FDF25EE-E592-4495-8391-6E9C504DAC2B}
?????????????????????????? {60204BB3-7078-4F70-8F69-68297621941C}......
?????????????????????????? 總之有幾項,就刪幾項,刪掉后重啟,再裝SQL Server,就不會提示有掛起了。
癥狀2:WindowsXP SP2下或其他非Server版操作系統下不能安裝企業版。
解決方案1:進入企業版安裝目錄,進入MSDE目錄,運行SETUP安裝。此為服務器組件安裝程序。重啟系統可以發現托盤中已經有了服務器圖標。之后,進入企業版安裝程序,按提示正常安裝即可,此處仍然提示不能安裝服務器組件,不過沒關系,我們已經手動安裝好了服務器程序。在運行中輸入regedit打開注冊表編輯器,找到[HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\MSSQLSERVER\MSSQLSERVER],將鍵值LoginMode,默認值1改為2,重啟電腦。打開企業管理器,嘗試用SA注冊連接,成功則OK!
解決方案2:下載工具NTSwitch.exe,將當前系統從Workstation轉換為Server,確定,重啟。重啟后可能操作上有些問題,可以多試幾次,重啟再試,有些耐心……呵呵。直接運行SQLSERVER2000企業版安裝程序,順利通過。并沒有提示不能安裝服務器程序等等。安裝完畢,再將系統轉換回Workstation,重啟,完畢!無論哪種安裝方式,都要記得打好SQL補丁包,目前出到SP4,否則諸如做JDBC連接時,會出現問題。
posted @
2007-04-22 12:36 jadmin 閱讀(58) |
評論 (0) |
編輯 收藏
一、 JSP 技術概述
在 Sun 正式發布 JSP(JavaServer Pages) 之后,這種新的 Web 應用開發技術很快引起了人們的關注。 JSP 為創建高度動態的 Web 應用提供了一個獨特的開發環境。按照 Sun 的說法, JSP 能夠適應市場上包括 Apache WebServer 、 IIS4.0 在內的 85% 的服務器產品。即使您對 ASP “一往情深”,我們認為,關注 JSP 的發展仍舊很有必要。
㈠ JSP 與 ASP 的簡單比較
JSP 與 Microsoft 的 ASP 技術非常相似。兩者都提供在 HTML 代碼中混合某種程序代碼、由語言引擎解釋執行程序代碼的能力。在 ASP 或 JSP 環境下, HTML 代碼主要負責描述信息的顯示樣式,而程序代碼則用來描述處理邏輯。普通的 HTML 頁面只依賴于 Web 服務器,而 ASP 和 JSP 頁面需要附加的語言引擎分析和執行程序代碼。程序代碼的執行結果被重新嵌入到 HTML 代碼中,然后一起發送給瀏覽器。 ASP 和 JSP 都是面向 Web 服務器的技術,客戶端瀏覽器不需要任何附加的軟件支持。
ASP 的編程語言是 VBScript 之類的腳本語言, JSP 使用的是 Java ,這是兩者最明顯的區別。此外, ASP 與 JSP 還有一個更為本質的區別:兩種語言引擎用完全不同的方式處理頁面中嵌入的程序代碼。在 ASP 下, VBScript 代碼被 ASP 引擎解釋執行;在 JSP 下,代碼被編譯成 Servlet 并由 Java 虛擬機執行,這種編譯操作僅在對 JSP 頁面的第一次請求時發生。
㈡運行環境
Sun 公司的 JSP 主頁在 http://www.javasoft.com/products/jsp/index.html ,從這里還可以下載 JSP 規范,這些規范定義了供應商在創建 JSP 引擎時所必須遵從的一些規則。
執行 JSP 代碼需要在服務器上安裝 JSP 引擎。此處我們使用的是 Sun 的 JavaServer Web Development Kit ( JSWDK )。為便于學習,這個軟件包提供了大量可供修改的示例。安裝 JSWDK 之后,只需執行 startserver 命令即可啟動服務器。在默認配置下服務器在端口 8080 監聽,使用 http://localhost:8080 即可打開缺省頁面。
在運行 JSP 示例頁面之前,請注意一下安裝 JSWDK 的目錄,特別是“ work ”子目錄下的內容。執行示例頁面時,可以在這里看到 JSP 頁面如何被轉換成 Java 源文件,然后又被編譯成 class 文件(即 Servlet )。 JSWDK 軟件包中的示例頁面分為兩類,它們或者是 JSP 文件,或者是包含一個表單的 HTML 文件,這些表單均由 JSP 代碼處理。與 ASP 一樣, JSP 中的 Java 代碼均在服務器端執行。因此,在瀏覽器中使用“查看源文件”菜單是無法看到 JSP 源代碼的,只能看到結果 HTML 代碼。所有示例的源代碼均通過一個單獨的“ examples ”頁面提供。
㈢ JSP 頁面示例
下面我們分析一個簡單的 JSP 頁面。您可以在 JSWDK 的 examples 目錄下創建另外一個目錄存放此文件,文件名字可以任意,但擴展名必須為 .jsp 。從下面的代碼清單中可以看到, JSP 頁面除了比普通 HTML 頁面多一些 Java 代碼外,兩者具有基本相同的結構。 Java 代碼是通過 < % 和 %> 符號加入到 HTML 代碼中間的,它的主要功能是生成并顯示一個從 0 到 9 的字符串。在這個字符串的前面和后面都是一些通過 HTML 代碼輸出的文本。
< HTML>
< HEAD>< TITLE>JSP 頁面 < /TITLE>< /HEAD>
< BODY>
< %@ page language="java" %>
< %! String str="0"; %>
< % for (int i=1; i < 10; i++) {
str = str + i;
} %>
JSP 輸出之前。
< P>
< %= str %>
< P>
JSP 輸出之后。
< /BODY>
< /HTML>
這個 JSP 頁面可以分成幾個部分來分析。
首先是 JSP 指令。它描述的是頁面的基本信息,如所使用的語言、是否維持會話狀態、是否使用緩沖等。 JSP 指令由 < %@ 開始, %> 結束。在本例中,指令“ < %@ page language="java" %> ”只簡單地定義了本例使用的是 Java 語言(當前,在 JSP 規范中 Java 是唯一被支持的語言)。
接下來的是 JSP 聲明。 JSP 聲明可以看成是定義類這一層次的變量和方法的地方。 JSP 聲明由 < %! 開始, %> 結束。如本例中的“ < %! String str="0"; %> ”定義了一個字符串變量。在每一項聲明的后面都必須有一個分號,就象在普通 Java 類中聲明成員變量一樣。
位于 < % 和 %> 之間的代碼塊是描述 JSP 頁面處理邏輯的 Java 代碼,如本例中的 for 循環所示。
最后,位于 < %= 和 %> 之間的代碼稱為 JSP 表達式,如本例中的“ < %= str %> ”所示。 JSP 表達式提供了一種將 JSP 生成的數值嵌入 HTML 頁面的簡單方法。
二、會話狀態管理
會話狀態維持是 Web 應用開發者必須面對的問題。有多種方法可以用來解決這個問題,如使用 Cookies 、隱藏的表單輸入域,或直接將狀態信息附加到 URL 中。 Java Servlet 提供了一個在多個請求之間持續有效的會話對象,該對象允許用戶存儲和提取會話狀態信息。 JSP 也同樣支持 Servlet 中的這個概念。
在 Sun 的 JSP 指南 中可以看到許多有關隱含對象的說明(隱含的含義是,這些對象可以直接引用,不需要顯式地聲明,也不需要專門的代碼創建其實例)。例如 request 對象,它是 HttpServletRequest 的一個子類。該對象包含了所有有關當前瀏覽器請求的信息,包括 Cookies , HTML 表單變量等等。 session 對象也是這樣一個隱含對象。這個對象在第一個 JSP 頁面被裝載時自動創建,并被關聯到 request 對象上。與 ASP 中的會話對象相似, JSP 中的 session 對象對于那些希望通過多個頁面完成一個事務的應用是非常有用的。
為說明 session 對象的具體應用,接下來我們用三個頁面模擬一個多頁面的 Web 應用。第一個頁面( q1.html )僅包含一個要求輸入用戶名字的 HTML 表單,代碼如下:
< HTML>
< BODY>
< FORM METHOD=POST ACTION="q2.jsp">
請輸入您的姓名:
< INPUT TYPE=TEXT NAME="thename">
< INPUT TYPE=SUBMIT VALUE="SUBMIT">
< /FORM>
< /BODY>
< /HTML>
第二個頁面是一個 JSP 頁面( q2.jsp ),它通過 request 對象提取 q1.html 表單中的 thename 值,將它存儲為 name 變量,然后將這個 name 值保存到 session 對象中。 session 對象是一個名字 / 值對的集合,在這里,名字 / 值對中的名字為“ thename ”,值即為 name 變量的值。由于 session 對象在會話期間是一直有效的,因此這里保存的變量對后繼的頁面也有效。 q2.jsp 的另外一個任務是詢問第二個問題。下面是它的代碼:
< HTML>
< BODY>
< %@ page language="java" %>
< %! String name=""; %>
< %
name = request.getParameter("thename");
session.putValue("thename", name);
%>
您的姓名是: < %= name %>
< p>
< FORM METHOD=POST ACTION="q3.jsp">
您喜歡吃什么 ?
< INPUT TYPE=TEXT NAME="food">
< P>
< INPUT TYPE=SUBMIT VALUE="SUBMIT">
< /FORM>
< /BODY>
< /HTML>
第三個頁面也是一個 JSP 頁面( q3.jsp ),主要任務是顯示問答結果。它從 session 對象提取 thename 的值并顯示它,以此證明雖然該值在第一個頁面輸入,但通過 session 對象得以保留。 q3.jsp 的另外一個任務是提取在第二個頁面中的用戶輸入并顯示它:
< HTML>
< BODY>
< %@ page language="java" %>
< %! String food=""; %>
< %
food = request.getParameter("food");
String name = (String) session.getValue("thename");
%>
您的姓名是: < %= name %>
< P>
您喜歡吃: < %= food %>
< /BODY>
< /HTML>
三、引用 JavaBean 組件
JavaBean 是一種基于 Java 的軟件組件。 JSP 對于在 Web 應用中集成 JavaBean 組件提供了完善的支持。這種支持不僅能縮短開發時間(可以直接利用經測試和可信任的已有組件,避免了重復開發),也為 JSP 應用帶來了更多的可伸縮性。 JavaBean 組件可以用來執行復雜的計算任務,或負責與數據庫的交互以及數據提取等。如果我們有三個 JavaBean ,它們分別具有顯示新聞、股票價格、天氣情況的功能,則創建包含所有這三種功能的 Web 頁面只需要實例化這三個 Bean ,使用 HTML 表格將它們依次定位就可以了。
為說明在 JSP 環境下 JavaBean 的應用,我們創建了一個名為 TaxRate 的 Bean 。它有兩個屬性,即 Product (產品)和 Rate (稅率)。兩個 set 方法分別用來設置這兩個屬性,兩個 get 方法則用于提取這兩個屬性。在實際應用中,這種 Bean 一般應當從數據庫提取稅率值,此處我們簡化了這個過程,允許任意設定稅率。下面是這個 Bean 的代碼清單:
package tax;
public class TaxRate {
String Product;
double Rate;
public TaxRate() {
this.Product = "A001";
this.Rate = 5;
}
public void setProduct (String ProductName) {
this.Product = ProductName;
}
public String getProduct() {
return (this.Product);
}
public void setRate (double rateValue) {
this.Rate = rateValue;
}
public double getRate () {
return (this.Rate);
}
}
在 JSP 頁面中應用上述 Bean 要用到 < jsp:useBean> 標記。依賴于具體使用的 JSP 引擎的不同,在何處配置以及如何配置 Bean 的方法也可能略有不同。本文將這個 Bean 的 .class 文件放在 c:\jswdk-1.0\examples\WEB-INF\jsp\beans\tax 目錄下,這里的 tax 是一個專門存放該 Bean 的目錄。下面是一個應用上述 Bean 的示例頁面:
< HTML>
< BODY>
< %@ page language="java" %>
< jsp:useBean id="taxbean" scope="application" class="tax.TaxRate" />
< % taxbean.setProduct("A002");
taxbean.setRate(17);
%>
使用方法 1 : < p>
產品 : < %= taxbean.getProduct() %> < br>
稅率 : < %= taxbean.getRate() %>
< p>
< % taxbean.setProduct("A003");
taxbean.setRate(3);
%>
< b> 使用方法 2 : < /b> < p>
產品 : < jsp:getProperty name="taxbean" property="Product" />
< br>
稅率 : < jsp:getProperty name="taxbean" property="Rate" />
< /BODY>
< /HTML>
在 < jsp:useBean> 標記內定義了幾個屬性,其中 id 是整個 JSP 頁面內該 Bean 的標識, scope 屬性定義了該 Bean 的生存時間, class 屬性說明了該 Bean 的類文件(從包名開始)。
這個 JSP 頁面不僅使用了 Bean 的 set 和 get 方法設置和提取屬性值,還用到了提取 Bean 屬性值的第二種方法,即使用 < jsp:getProperty> 標記。 < jsp:getProperty> 中的 name 屬性即為 < jsp:useBean> 中定義的 Bean 的 id ,它的 property 屬性指定的是目標屬性的名字。
事實證明, Java Servlet 是一種開發 Web 應用的理想構架。 JSP 以 Servlet 技術為基礎,又在許多方面作了改進。 JSP 頁面看起來象普通 HTML 頁面,但它允許嵌入執行代碼,在這一點上,它和 ASP 技術非常相似。利用跨平臺運行的 JavaBean 組件, JSP 為分離處理邏輯與顯示樣式提供了卓越的解決方案。 JSP 必將成為 ASP 技術的有力競爭者。
posted @
2007-04-14 15:11 jadmin 閱讀(44) |
評論 (0) |
編輯 收藏
1、在eclipse的主目錄(ECLIPSE_HOME,比如在我的機器上安裝的目錄是:D:\JavaDev\3.1)有一個plugins的目錄,這種方法的插件安裝非常簡單,只要將插件copy到這個目錄下就可以了。比如我有一個weblogic的插件(bea站點上可以下載),解壓縮之后得到得到一個目錄:【com.bea.eclipse.weblogic_1.1.1】,我就將這個目錄直接放到%ECLIPSE_HOME%\plugins目錄下,重新啟動eclipse之后就看到Run->“Start Weblogic”的菜單。安裝之后,weblogic插件的全路徑為:D:\JavaDev\3.1\plugins\com.bea.eclipse.weblogic_1.1.1]
2、在eclipse目錄(ECLIPSE_HOME)下創建一個links目錄,然后將你自己的插件放在你想放的任何地方,這個時候你放插件的目錄我稱她為插件目錄(PLUGIN_HOME),然后在你的%ECLIPSE_HOME%\links\目錄下創建一個link文件,比如我要安裝一個vss插件,我就在我的links目錄下創建了:VSS_1.6.1.link文件。而這個VSS_1.6.1.link文件則是指向的我的插件目錄(PLUGIN_HOME,比如在我的機器上插件目錄為D:\JavaDev\plugins)。VSS_1.6.1.link文件的內容是:
path=D:\\JavaDev\\plugins\\vssplugin_1.6.1
第二種安裝插件的時候需要注意,如果你是一個單獨的jar文件,則最好在link文件指定的目錄下創建這樣級別的目錄:eclipse\plugins\xxx.xxx(插件名稱和版本號),然后將jar文件放在這個目錄下即可。比如vss插件在我的機器上的目錄是D:\JavaDev\plugins\vssplugin_1.6.1\eclipse\plugins\org.vssplugin_1.6.1,下有一個文件:vssplugin.jar
兩種方法的插件安裝之后需要重新啟動eclipse才能看到插件。如果某一個插件已經安裝了想要重新安裝,只要將文件替換或者修改link文件的路徑即可。如果發現認不到插件,可能是你的插件不支持你的當前eclipse版本,請檢查。也有可能是系統配置引起的,我出現過一次,我的解決方法是將ECLIPSE_HOME下的configuration目錄下的所有文件刪除,剩下config.ini文件。
A.從別人那里搞的eclipse的安裝tips
Eclipse的插件安裝是很方便的,只需將插件目錄拷貝到Eclipse安裝目錄下的Plugins子目錄下即可,但有時候即使這樣做了插件還是沒有出來,目前來說可按下面幾個步驟檢查:
1.首先看一下About中的Plugin裝載清單,如果沒有則需先確認所安裝的插件的依賴插件已經安裝。Eclipse的插件是有依賴關系的,具體表現在每個插件Plugin.xml中的<requires>標記中,里面的每個<import>標記即表示所依賴的插件ID,Eclipse在啟動時會按照插件的依賴關系逐個將插件裝載,若找不到所依賴的插件,則所安裝的插件運行就有可能不正常。
2.若裝載的Plugin清單里已經有了,那可能是沒有打開此插件的View或者需要在Preference里配置一些東西才有效,這個最好看一下所安裝插件的Plugin.xml,看它都擴展了哪些擴展點,菜單無非就是actionSets這個擴展點,界面都是views這個擴展點,可以在Show View里設置一下,還有其它一些擴展點,可以具體問題具體分析。
3.最有效的辦法:看Log。在Eclipse安裝目錄Workspace/.metadata子目錄下(若沒有使用默認的工作空間,則目錄結構可能會不同)有一個.log文件,從這里面一般可以找到失敗的原因。
4.如果插件還是沒有安裝,則刪除Eclipse安裝目錄Configuration子目錄下的org.eclipse.update目錄,然后重新啟動。
若還是不行,那。。。去問Erich Gamma吧,^_^
分類管理plugins
一般來說,安裝插件都是直接拷貝到Plugins子目錄下,但是這樣有個缺陷,若插件太多,會使內容非?;靵y,而且分不清哪個是系統自帶的,哪個是以后安裝的。這里提供一個辦法:
在Eclipse安裝目錄下新建一個子目錄links,里面新建一個文件abcd.link,文件名隨便取,文件里的內容為path=D:/MyPlugins(目錄可換成自己的),而在Path中指定的目錄,即剛才的D:/MyPlugins目錄下,一定要有一個eclipse子目錄,在此子目錄下再有features及plugins子目錄(同Eclipse安裝目錄一樣),新插件在安裝時即可以拷貝到此plugins目錄下,這樣就避免了所有插件都放在一起的缺點。而且links目錄下可以建多個*.link文件,每個.link文件中的內容可有多行path=...,極大的方便了將插件按照功能來進行分門別類。
說實話,就安裝方法來說,eclipse的插件安裝應該是世上最容易的。但是,有很多人發現安裝的插件就是不生效,這個問題也困擾了我很久,在裝CDT時,用CV大法安裝的時候我發現失效,后用的在線升級才成功!但當我安裝VEP的時候CV大法和在線升級都不管用了,在線升級的時候總是說emf1.0需要emf2.0.1之類的提示,可是在插件列表中明明認出了emf,真不知道是那里搭錯了筋!
這個問題讓我郁悶和很久,終于在一個blog上發現世上有很多人和我有一樣的遭遇,而解決方法是那么的easy!
---把eclipse目錄下的configuration目錄刪掉再重啟就OK了!
我倒!
使用Eclipse一年多了,一直都是把所有插件直接安裝在plugins和features目錄下,雖然目錄變得比較亂但也不怎么影響使用。最近因為工作需要,經常更換Eclipse和一些插件的版本,我發現每新裝一個Eclipse就要花不少時間來裝那幾個常用插件,印象里有一種方法可以讓插件以鏈接的方式存在,就在網上查了一下,請看這篇文章,講得很明白。
按文章中所說的方法,我把所有插件統一放在c:\eclipse-plugins目錄下(Eclipse自帶的除外),然后在links目錄里建立相應的鏈接文件,很簡單沒有遇到什么問題,只是要注意插件目錄的結構。
今天安裝Eclipse 3.2版本的時候,把原來Eclipse的links目錄直接復制到新Eclipse下,然后以-clean方式啟動就全裝好了,超級方便,還節約了不少硬盤空間。大家利用這種方式,還可以很容易的讓公司和自己用的電腦上Eclipse的插件版本保持一致。
posted @
2007-04-14 04:51 jadmin 閱讀(68) |
評論 (0) |
編輯 收藏
1、??? 縮短等待時間
打開注冊表編輯器,找到 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control,將 WaitToKillServiceTimeout 設為:1000或更?。ㄔO定值:20000)。
找到 HKEY_CURRENT_USER\Control Panel\Desktop 鍵,將右邊窗口的 WaitToKillAppTimeout 改為 1000(原設定值:20000),即關閉程序時僅等待1秒。將 HungAppTimeout 值改為:200(原設定值:5000),表示程序出錯時等待0.5秒。
2、??? 讓系統自動關閉停止響應的程序
打開注冊表 HKEY_CURRENT_USER\Control Panel\Desktop 鍵,將 AutoEndTasks 值設為 1(原設定值:0)。
3、??? 加快菜單顯示速度
打開注冊表編輯器,找到 HKEY_CURRENT_USER\Control Panel\Desktop,將其下的 MenuShowDelay 項改為:0,你的菜單將會出乎意料地快。
4、??? 加速共享查看
打開注冊表編輯器,把HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\RemoteComputer\NameSpace下的
{D6277990-4C6A-11CF-8D87-00AA0060F5BF} 刪掉
5、??? 加快窗口顯示速度:
打開注冊表編輯器,找到HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics子鍵分支,在右邊的窗口中找到MinAniMate鍵值,其類型為REG_SZ,默認情況下此健值的值為1,表示打開窗口顯示的動畫,把它改為0,則禁止動畫的顯示,接下來從開始菜單中選擇“注銷”命令,激活剛才所作的修改即可。
6、??? 關掉不必要的服務:
如果你只是在單機使用WindowsXP,那么很多服務組件是根本不需要的,額外的服務程序大大拖慢了系統的速度,完全可以將這些多余的服務組件禁用。
下面我們就來看一下怎樣關掉不必要的服務。單擊“開始”→“設置”→“控制面板”。雙擊“管理工具”→“服務”,打開后將看到服務列表,有些服務已經啟動,有些則沒有。右鍵單擊要配置的服務,然后單擊“屬性”。在“常規”選項卡上選擇“自動”、“手動”或“禁用”,其中“自動”表示每次系統啟動時,Windows XP都自動啟動該服務;“手動”表示WindowsXP不會自動啟動該服務,而是在你需要該服務時手動啟動該服務;而“禁用”則表示不允許啟動該服務。在實際配置時,選擇“手動”或者“禁用”都可以實現關閉該服務的目的,推薦使用手動功能,這樣你隨時可以啟動一些臨時需要的服務。有些服務是WindowsXP所必需的,不能關閉,否則將會造成系統崩潰。至于各項服務的功能,我們可以通過雙擊該服務或將鼠標懸停在該服務名上查看。下面我們就先來看一看這些服務的說明,最后再看哪些服務可以關掉(見下表)。對于我們這些單機使用WindowsXP的普通用戶來說,可以把表中服務關閉,如果你有特殊要求,可以參照表中說明自行配置Windows XP的服務,以便達到最優狀態。
服務名稱
如果符合下列條件,你可以將之關閉
alerter
你未連上局域網并且不需要管理警報
clipbook
你不需要查看遠程剪貼簿的剪貼頁面
distributed linktracking client
若不使用ntfs分區并且沒有聯入局域網
distributed transactioncoordinator
不需要同時處理多個數據庫或者文件系統
fax service
不用windows 2000發送或者接收傳真
ftp publishing service
你的計算機不做ftp服務器
iis admin service
你的計算機不做www服務器
indexing service
你的計算機不提供遠程文件索引和快速訪問或者沒有連上局域網
internet connectionsharing
你不準備用windows2000做路由服務器,讓多人共享一條線路上網
ipsec policy agent
你未連接到windows 2000的域
logical disk manageradministrative service
你不準備使用磁盤配額
message queuing
你未連接到windows 2000的域
messenger
你未連接到windows2000的域并且不需要管理警報
net logon
你不想讓局域網上的其他用戶登錄
netmeeting remotedesktop sharing
你不想使用netmeeting遠程管理計算機
network dde
你沒有連入局域網
network dde dsdm
你沒有連入局域網
performance logs andalerts
若不想知道計算機每一秒都干什么
qos rsvp
你沒有使用依賴于qos的程序
remote access autoconnection manager
你不想在程序企圖讀取網絡信息時自動連接到網絡
remote procedure call (rpc)locator
你不需要管理rpc名稱服務數據庫
routing and remoteaccess
你的計算機不做路由器
runas service
你不需要在某一用戶下以另外一個用戶的身份執行一個程序
simple mail transportprotocol (smtp)
你的計算機不做郵件發送服務器
smart card
你沒有智能卡閱讀器
smart card helper
你沒有舊式智能卡閱讀器
snmp trap service
你沒有連接到windows 2000的域
tcp/ip netbios helperservice
你的計算機不準備讓別人共享
tcp/ip print server
不讓你的計算機成為網絡打印服務器
telnet
不想遠程控制計算機執行控制臺命令
uninterruptible powersupply
沒使用ups或ups不支持雙向傳輸信號
utility manager
不從一個窗口中啟動和配置輔助工具
windows managementinstrumentation
你不看你的系統管理信息
world wide webpublishing service
你的計算機不做www服務器
7、??? 刪除共享文檔:
默認情況下,在Windows XP中打開我的電腦,會看到在硬盤圖標上方有一些文件夾。這些就是“共享文件夾”,這里有每一個用來戶共享文件所用的文件夾。這些文件夾特別煩人,毫無必要。我們可以讓這些文件夾在我的電腦中消失:
打開注冊表編輯器,把HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\DelegateFolders下的
{59031a47-3f72-44a7-89c5-5595fe6b30ee}刪掉,下次打開我的電腦,這些煩人的文件夾就不復存在了。
8、??? 加快Windows XP的啟動:
(1)Windows XP自帶了一個名為Prefetcher的服務,這個服務管理著Windows啟動時的程序初始(即啟動時滾動的藍條),其中指定的程序可以在以后使用中快速載入。Prefetcher在默認情況下就是打開的,不過它的性能還可以進一步提升。打開注冊表編輯器,在注冊表中找到:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\MemoryManagement\PrefetchParameters,其中有一個鍵值名為EnablePrefetcher,多數情況下它的值是3。推薦設置值是5——在我的機子上,設為5的時候工作狀態最佳。可以隨便試試不同的數值,直到找到最適合自己機子的值為止。也可以把Prefetcher禁用掉,只需把值設為0就可以了。不過,除非是為了測試用途,一般人都不會傻到把它設為0。
(2)"我的電腦"->"屬性"->"高級"->"啟動和故障修復"中,點"錯誤報告",選擇"禁用錯誤匯報"、"但在發生嚴重錯誤時通知我"。
(3)"我的電腦"->"屬性"->"高級"->"啟動和故障修復"中,點"設置",去掉"將事件寫入系統日志","發送管理警報","自動重新啟動"選項;將"寫入調試信息"設置為"無"。
(4)點擊"編輯",在彈出記事本文件中:
[Operating Systems]
timeout=30 //把缺省時間 30 秒改為 0 秒
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect //把缺省 fastdetect 改為 nodetect
注冊表修改方法:"HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control" ,SystemStartOptions鍵值改為NODETECT。
9、??? 加快Windows XP的重啟和關機:
按下CTRL+ALT+DELETE打開Windows 任務管理器,然后選擇關機(U),先按下CTRL,再按下關閉(U)或重新啟動(R),就可以快速地關機或重啟。
10、關閉計算機時自動結束任務:
在關機的時候,有時會彈出討厭的對話框,提醒某個程序仍在運行,是否結束任務。其實完全可以通過一點點修改讓Windows自動結束這些仍在運行的程序。在注冊表中打開HKEY_CURRENT_USER\Control Panel\Desktop 目錄,把里面的AugoEndTasks鍵值改為1
注:可能會找不到AutoEndTasks鍵值,如果是這樣的話,自己建一個串值并把它改為這個名字,值設為1就可以了。
11、優化程序運行:
程序運行有他們各自的優先次序,所有程序都要占用處理器資源,處理器處理任務有一個先后次序,一般的計算機中有31個優先等級,系統的內核占據了最高的一些等級,這樣就能保證系統的穩定,而普通的應用程序一般在比較后面的等級。在普通應用程序中間也有優先次序,他們本來在處理器面前是人人平等的,但還是有些細微的差別,前臺的程序(當前正在使用)的優先級要比后臺的程序高。你可以自己調節應用程序的優先級,打開任務管理器,點到“進程”選項卡,選一個應用程序的進程,點擊右鍵,會彈出一個快捷菜單,選擇“設置優先級”,這里有6個等級:實時,高,高與標準,標準,低于標準,低。你可以讓你的程序強行調度到更高或更低(自然為別的程序騰出了資源)的等級。如果你不知道某個應用程序的具體進程,可以如下操作:點到“應用程序”選項卡,右鍵點中一個任務,選擇“轉到進程”,就會轉到該程序的進程,這樣你就找到了該程序的進程了?! ?/p>
12、優化“啟動和故障恢復”設置:
如果在你的系統崩潰時發現你的硬盤使勁兒的響,那是因為Windows XP正在寫DUMP文件呢,對我們來說,如果你不打算把這個文件寄給微軟(浪費電話費),那么它又有什么用呢?所以我的建議是關閉。右鍵單擊“我的電腦”,點擊屬性,點擊“高級”,在“啟動和故障恢復”一欄中,點擊“設置”,其中的“系統失敗”一欄中,只選擇“自動重新啟動”,寫入調試信息選擇“無”。
13、禁用“錯誤匯報”功能:
這個功能可以在你的Windows XP發生錯誤的時候,系統自動收集一些錯誤資料然后發送給微軟公司,以便其完善他們的操作系統(又一個浪費電話費且沒用的功能),建議關掉它。如果這個功能對你沒有用,那又何必讓它占用著你的內存呢?右鍵單擊“我的電腦”,點擊屬性,點擊“高級”→“錯誤匯報”,選擇“禁用錯誤匯報”功能。
14、關閉“Internet時間同步”功能:
如果啟用了同步,你的計算機時鐘每周就會和 Internet 時間服務器進行一次同步,建議關掉它(一個沒多大用的功能)。請依次單擊“開始”→“控制面板”→“日期、時間、語言和區域選項”,然后單擊“日期和時間”→“Internet時間”。
15、關閉華醫生Dr.Watson:
在"開始"->"運行"中輸入"drwtsn32"命令,或者"開始"->"程序"->"附件"->"系統工具"->"系統信息"->"工具"->"Dr Watson",調出系統里的華醫生Dr.Watson ,只保留"轉儲全部線程上下文"選項,否則一旦程序出錯,硬盤會讀很久,并占用大量空間。如以前有此情況,請查找user.dmp文件,刪除后可節省幾十MB空間。
16、設置IDE設備的DMA模式:
出于某些原因,Windows XP有時會在IDE通道上使用PIO并行輸入輸出傳輸模式,而不是DMA模式。如果有這種情況,用戶可以手動把IDE通道改為DMA模式,這樣可以減少該設備占用的CPU周期。打開設備管理器(右鍵點擊我的電腦,選屬性,點選硬件選項卡,點擊“設備管理器”打開),然后點擊展開“IDE ATA/ATAPI 控制器”分支,雙擊“Primary IDE Channel”,點擊高級設置。檢查“傳輸模式”下拉菜單,把它們全部設為DMA If Available(允許情況下使用DMA),點擊確定。再用同樣的方式修改每一個IDE控制器。
17、取消對zip文件的支持:
這是一個相當好的優化,Windows XP內置了對.ZIP文件的支持,我們可以把zip文件當成文件夾瀏覽。不過,系統要使用部分資源來實現這一功能,因此禁用這一功能可以提升系統性能。實現方法非常簡單,只需取消zipfldr.dll的注冊就可以了,點擊開始—>運行,敲入:regsvr32 /u zipfldr.dll 然后回車即可。
18、關掉快速切換功能:
Win XP的一個很引人注目的功能叫做“快速切換”,這個功能為許多人在同一時間使用電腦提供了可能,但是要注意每一項功能總是伴隨著資源的損失,如果你的內存少與64M,Win XP在裝的時候就被自動禁止掉了,因為這樣會使本來就已捉襟見肘的內存的壓力更加大,對128M的用戶來說,開這個功能雖然沒什么關系,但是你又不是很需要這項功能,所以建議把這個功能給關掉。方法如下:控制面板-->用戶帳戶,點擊“更改用戶登陸或注銷方式”,去掉“使用快速用戶切換”就可以了。
19、為IRQ中斷請求排優先次序:
這是一項非常有效的優化。計算機的每一個主要部件都設了個IRQ中斷號。這里就是要通過修改每個IRQ請求的優先次序達到優化目的。這里主要的優化對象是系統/CMOS實時鐘,它通過主板來提升性能。首先,要確定你想要哪個組件獲得更高的性能,然后找到這個硬件正在使用的IRQ中斷號。怎么找呢?打開控制面板里的系統屬性(也可以按鍵盤上的Windows+Break熱鍵組合打開它)。選中“硬件”選項卡,然后點擊“設備管理器”按鈕。右鍵點擊要查IRQ號的組件,選擇“屬性”,然后點擊“資源”選項卡。 這里可以看到設備正在使用的IRQ中斷號(如果沒有IRQ中斷號,選擇另一個設備)。把中斷號記下來,然后運行注冊表編輯器regedit,找到注冊表中的HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\PriorityControl 位置。我們要在這里建立一個名為IRQ#Priority(其中“#”是具體的IRQ中斷號)的DWORD雙字節值,然后把它的值設為1。譬如說,我的系統CMOS實時鐘的IRQ中斷號是8,我要建立的鍵名就是IRQ8Priority。重新啟動計算機之后,就會發現剛優化過的組件性能有所提高。筆者強烈建議用這個方法優化系統CMOS實時鐘,因為它能改善整塊主板的性能。當然也可以把多個IRQ中斷號優先級提高,但這樣做的效果沒那么好,而且有可能造成系統不穩定。要把這個優化設置撤消的話,只要把剛才建立的注冊表鍵值刪掉就OK了。
。。。。。。
posted @
2007-04-13 23:26 jadmin 閱讀(51) |
評論 (0) |
編輯 收藏
???????? 裝過矮人Dos工具,卸載后發現argh目錄依舊存在,而且刪又刪不掉,打又打不開,在網上查了很多方法。最常見的是用 unlock ,還有就是用命令行:
???????? 在開始→運行→cmd里輸入:
???????? rd/s d:\argh~1
???????? rd/s e:\argh~1
???????? rd/s f:\argh~1
???????? ......
???????? 這樣就刪掉了argh目錄
posted @
2007-04-13 23:23 jadmin 閱讀(44) |
評論 (0) |
編輯 收藏