日韩写真在线,精品91久久久久,色婷婷综合缴情免费观看http://www.aygfsteel.com/gump/category/5127.html生活就像一盒巧克力,你永遠(yuǎn)不知道你會(huì)得到什么zh-cnTue, 27 Feb 2007 12:18:18 GMTTue, 27 Feb 2007 12:18:18 GMT60Google發(fā)布Web工具包GWThttp://www.aygfsteel.com/gump/articles/50864.html甘先生甘先生Tue, 06 Jun 2006 10:19:00 GMThttp://www.aygfsteel.com/gump/articles/50864.htmlhttp://www.aygfsteel.com/gump/comments/50864.htmlhttp://www.aygfsteel.com/gump/articles/50864.html#Feedback1http://www.aygfsteel.com/gump/comments/commentRss/50864.htmlhttp://www.aygfsteel.com/gump/services/trackbacks/50864.htmlGoogle近期發(fā)布了一個(gè)名為Google Web Toolkit (GWT)的Web工具包,這個(gè)工具包可以讓java程序員不需要寫(xiě)任何HTML和JS就可以輕松地構(gòu)建一個(gè)AJAX應(yīng)用程序。這個(gè)工具包可以把你的java轉(zhuǎn)換成瀏覽器上的js和html。當(dāng)然,如果你覺(jué)得GWT不能構(gòu)建出你所需要的客戶(hù)端腳本,你也可以通過(guò)JSNI來(lái)自己寫(xiě)JS代碼。

是否還在為了實(shí)現(xiàn)AJAX的前進(jìn)后退而煩惱呢?除了使用dhtmlhistory這個(gè)解決方案,你現(xiàn)在還可以通過(guò)GWT來(lái)很容易地實(shí)現(xiàn)這些功能。再也不用擔(dān)心瀏覽器的前進(jìn)和后退按鈕成為擺設(shè)了。

AJAX提高了用戶(hù)的體驗(yàn),但是相應(yīng)的,開(kāi)發(fā)的復(fù)雜程度也提高了,debug也變得異常的困難。通過(guò)GWT,程序員們可以很容易地進(jìn)行debug工序。而且,這一切都是在java的環(huán)境中進(jìn)行。

瀏覽器兼容性問(wèn)題總是能困擾著web開(kāi)發(fā)人員。GWT構(gòu)建出來(lái)的Web程序,將會(huì)兼容Firefox,IE,Mozilla, Safari, 和Opera等主流瀏覽器。而兼容性的工作,不再需要程序員們來(lái)進(jìn)行。

在GWT中,遠(yuǎn)程通訊將會(huì)變得異常簡(jiǎn)單,程序員們需要做的,僅僅是建立一個(gè)可序列化的對(duì)象。序列化和解序列化,將會(huì)由GWT來(lái)進(jìn)行。

下面是GWT自帶的幾個(gè)Demo:  (點(diǎn)擊相應(yīng)頁(yè)面進(jìn)入)

Screenshot
A table of data that demonstrates paging over objects retrieved through RPCs.
 
Screenshot
A replica of the UI of a desktop email application.
 
Screenshot
An application that includes every UI widget GWT supports.

相關(guān)鏈接:
peacess關(guān)于GWT的一些文章


甘先生 2006-06-06 18:19 發(fā)表評(píng)論
]]>
(轉(zhuǎn))經(jīng)典的JBOSS入門(mén)文章http://www.aygfsteel.com/gump/articles/40283.html甘先生甘先生Mon, 10 Apr 2006 09:38:00 GMThttp://www.aygfsteel.com/gump/articles/40283.htmlhttp://www.aygfsteel.com/gump/comments/40283.htmlhttp://www.aygfsteel.com/gump/articles/40283.html#Feedback1http://www.aygfsteel.com/gump/comments/commentRss/40283.htmlhttp://www.aygfsteel.com/gump/services/trackbacks/40283.html
  本文是為想在JBOSS環(huán)境下進(jìn)行EJB開(kāi)發(fā)的讀者而寫(xiě)的,在閱讀本文之前,你最好對(duì)EJB有一個(gè)基本了解。

  JBOSS是一個(gè)開(kāi)放源碼的免費(fèi)EJB服務(wù)器,它實(shí)現(xiàn)了其它J2EE所規(guī)定的大多數(shù)功能,現(xiàn)在sun公司已經(jīng)把JBOSS作為J2EE1.4的標(biāo)準(zhǔn)實(shí)現(xiàn)服務(wù)器了,本文就帶領(lǐng)大家從Jboss3.2.6的安裝開(kāi)始,一直到開(kāi)發(fā)出一個(gè)完整的”hello,world”的ejb為止。

  JBOSS的安裝與啟動(dòng)

  如果你是第一次使用JBOSS,你一定會(huì)感到很沮喪,因?yàn)樗m然是開(kāi)放源碼,并可以免費(fèi)下載,但是它的文檔或技術(shù)培訓(xùn)卻是收費(fèi)的,而且對(duì)于國(guó)人來(lái)說(shuō)高不可及(幾天的培訓(xùn)大約要10000美元,文檔也要幾十至幾百美一份)!如果你試圖在網(wǎng)上找一些關(guān)于JBOSS下簡(jiǎn)單入門(mén)的文章,可只是那么寥寥可數(shù)的幾篇,而且很少有菜鳥(niǎo)級(jí)的文章。相反,對(duì)其核心設(shè)計(jì)等高深理論性的文章倒是居多,這樣反倒讓你越看越糊涂。因此,本文的目的就是:讓你的JBOSS盡快地跑起來(lái),并馬上可以在其之上開(kāi)發(fā)出簡(jiǎn)單的EJB!

  在安裝JBOSS之前,首先要確定你已經(jīng)安裝了jdk1.3或以上版本,由于JBOSS不像weblogic等其它應(yīng)用服務(wù)器捆綁了JDK,因此JBOSS非要jdk的支持才能運(yùn)行。然后在 http://www.jboss.org網(wǎng)站上下載一個(gè)jboss的發(fā)行版(我下載的是jboss-3.2.6.zip),在本文中我使用的其穩(wěn)定的發(fā)行版JBOSS3.2.6 (集成了tomcat4.1),需要附帶一句的是tomcat是apache基金會(huì)旗下著名的開(kāi)源jsp/servlet服務(wù)器,如果要更多的了解tomcat,請(qǐng)?jiān)L問(wèn)http://jakarta.apache.org 以獲得更詳細(xì)的信息。

  當(dāng)你把jboss-3.2.6.zip下載之后,下一步就是將它解壓縮,如果你是在windows上,可以用winzip或winrar;如果是在linux下,就用unzip命令,以我自己為例,假設(shè)我將它解壓到了如下目錄

c:\ jboss-3.2.6

  相對(duì)于weblogic,websphere等j2ee服務(wù)器來(lái)說(shuō),JBOSS的啟動(dòng)是簡(jiǎn)單得出乎意料,如果你是windows用戶(hù),只需要進(jìn)入c:\ jboss-3.2.6\bin下面,輸入run.bat命令,JBOSS就跑起來(lái)啦;如果是linux用戶(hù)的話,只需要進(jìn)入c:\ jboss-3.2.6\bin下面,輸入run.sh,那么JBOSS也同樣運(yùn)行。怎么樣?是挺簡(jiǎn)單的吧?
當(dāng)你輸入run.bat或run.sh后,你會(huì)發(fā)現(xiàn)屏幕上會(huì)不斷地滾動(dòng)一些提示信息,過(guò)大約1分鐘之后(依賴(lài)于你機(jī)器的配置,我的是P4 1.7G,128M),提示信息就會(huì)停止?jié)L動(dòng)。(注意:如果你是在windows下,那么請(qǐng)讓這個(gè)DOS窗口一直保持這種狀態(tài),千萬(wàn)不可將其中止!)等到它自己停止。
這樣,JBOSS就已經(jīng)處于運(yùn)行狀態(tài)了。和其它J2EE服務(wù)器一樣,JBOSS也提供了一個(gè)WEB方式控制臺(tái),使用方法是在IE瀏覽器中輸入http://127.0.0.1:8080/web-console/,看見(jiàn)歡迎界面,就成功了。
編寫(xiě)第一個(gè)EJB:”hello,world”

  下面我們正式開(kāi)始EJB編程。在編寫(xiě)我們的第一個(gè)EJB之前,你應(yīng)該對(duì)EJB有一個(gè)大致的了解,如果沒(méi)有的話,建議你先到網(wǎng)上找一些這方面的文章來(lái)看,否則你將無(wú)法理解下面要講述的內(nèi)容。

  遠(yuǎn)程接口

  遠(yuǎn)程接口是指對(duì)于客戶(hù)端而言所能看到了調(diào)用接口

//HelloWorld.java
package?sample;
/*這是一個(gè)遠(yuǎn)程接口,客戶(hù)端調(diào)用這個(gè)接口來(lái)使真正的ejb工作*/
public?interface?HelloWorld?extends?javax.ejb.EJBObject
{
 
public?String?hello()?throws?java.rmi.RemoteException;
}
?

  Home接口

  我們可以把Home接口看做是一個(gè)制造EJB的工廠,Home接口告訴EJB容器:“嗨,我的客戶(hù)要我生成一個(gè)EJB,現(xiàn)在我把這個(gè)任務(wù)交給你啦!”

//HelloWorldHome.java
package?sample;
/*Home接口告訴EJB容器怎樣生成或銷(xiāo)毀EJB的實(shí)例*/
public?interface?HelloWorldHome?extends?javax.ejb.EJBHome
{
 HelloWorld?create()?
throws?java.rmi.RemoteException,javax.ejb.CreateException;
}
?

  EJB的實(shí)現(xiàn)

  這里才是真正的EJB的實(shí)現(xiàn)

//HelloWorldBean.java
package?sample;
import?javax.ejb.SessionContext;
/*這個(gè)類(lèi)具體實(shí)現(xiàn)的遠(yuǎn)程接口HelloWorld*/
pubic?
class?HelloWorldBean?implements?javax.ejb.SessionBean
{
 
private?SessionContext?ctx;
 
public?void?setSessionContext(SessionContext?ctx)
 
{
  
this.ctx?=?ctx;
 }

 pubic?
void?ejbRemove()
 
{
  System.out.println(“ejbRemove()”);
 }

 
public?void?ejbActivate()
 
{
  System.out.println(“ejbActivate()”);
 }

 
public?void?ejbPassivate()
 
{
  System.out.println(“ejbPassivate()”);
 }

 
/*hello方法是實(shí)際的業(yè)務(wù)邏輯,它可以在客戶(hù)端顯示“hello,world”這個(gè)字符串*/
 
public?String?hello()
 
{
  System.out.println(“hello()”);
  
return?“hello,world”;
 }

}
?

  好了,這個(gè)會(huì)話EJB的全部代碼編寫(xiě)完畢,下一步我們要做的是編寫(xiě)它的部署文件:

  ejb-jar.xml
<?xml?version="1.0"?encoding="UTF-8"?>
<ejb-jar>
 
<description>JBoss?Hello?World?Application</description>
 
<display-name>Hello?World?EJB</display-name>
 
<enterprise-beans>
 
<session>
  
<ejb-name>Hello</ejb-name>
  
<home>sample.HelloHome</home>
  
<remote>sample.Hello</remote>
  
<ejb-class>sample.HelloBean</ejb-class>
  
<session-type>Stateless</session-type>
  
<transaction-type>Bean</transaction-type>
 
</session>
</enterprise-beans>
</ejb-jar>?

這樣我們就完成了一個(gè)簡(jiǎn)單的會(huì)話EJB的編寫(xiě),但其實(shí)JBOSS還提供了一個(gè)額外的配置文件:JBoss.xml,利用它可以對(duì)JBOSS服務(wù)器進(jìn)行更多的定制,但由于本例實(shí)在是太簡(jiǎn)單了,因此我們可以將它省略不寫(xiě)。

  雖然我們完成了這個(gè)會(huì)話EJB的編寫(xiě),但還有最后的一步工作要做:打包。首先我們進(jìn)入當(dāng)前項(xiàng)目的根目錄:

cd F:\project\jboss-tutorial

  然后執(zhí)行jar命令將所有的類(lèi)及ejb-jar.xml打包:

jar cf HelloWorld.jar sample META-INF

  這時(shí)你會(huì)發(fā)現(xiàn),在當(dāng)前目錄下多了一個(gè)名為HelloWorld.jar的文件,這就是我們的最終成品。

  部署我們的EJB

  部署EJB在JBOSS中是一件非常容易的事,你只需簡(jiǎn)單將HelloWorld.jar拷貝到c:\ jboss-3.2.6\server\default\deploy目錄下就可以了。

 這時(shí),你可以切換到JBOSS運(yùn)行的那個(gè)DOS窗口下,你會(huì)發(fā)現(xiàn)屏幕上會(huì)新出現(xiàn)如下提示信息:

15:09:21,184 INFO [MainDeployer] Starting deployment of
package: file:/F:/jboss
-3.2.3/server/default/deploy/HelloWorld.jar
15:09:21,324 INFO [EjbModule] Creating
15:09:21,354 INFO [EjbModule] Deploying HelloWorld
15:09:21,464 INFO [EjbModule] Created
15:09:21,484 INFO [EjbModule] Starting
15:09:21,555 INFO [EjbModule] Started
15:09:21,555 INFO [MainDeployer] Successfully completed
deployment of package: file:/F:/jboss-3.2.6/server/default/deploy/HelloWorld.jar

  客戶(hù)端代碼

  如果沒(méi)有客戶(hù)端代碼的話,那么EJB對(duì)我們來(lái)說(shuō)幾乎毫無(wú)用處。以下我們將編寫(xiě)客戶(hù)端代碼來(lái)調(diào)用這個(gè)HelloWorld。

  如果你在同一臺(tái)機(jī)器上運(yùn)行客戶(hù)端代碼和JBOSS服務(wù)器的話,那以下代碼無(wú)須任何修改就可以運(yùn)行,但你的客戶(hù)端在另一臺(tái)機(jī)器上運(yùn)行的話,那你要將源碼中的相應(yīng)行改變一下:

/*以下是客戶(hù)端源碼中需要修改的行*/
env.put(Context.PROVIDER_URL, "localhost:1099");

  假設(shè)EJB部署在一臺(tái)IP地址為192.168.0.1的機(jī)器上,那么就應(yīng)該將以上源碼改為如下:

/*以下是客戶(hù)端源碼中修改后的行*/
env.put(Context.PROVIDER_URL, "192.168.0.1:1099");

/*HelloWorldClient.java*/
package?sample;
import?javax.naming.Context;
import?javax.naming.InitialContext;
import?java.util.Hashtable;
public?class?HelloWorldClient
{
 
public?static?void?main(?String?[]?args?)
 
{
  Hashtable?env?
=?new?Hashtable();
  env.put(Context.INITIAL_CONTEXT_FACTORY,
"org.jnp.interfaces.NamingContextFactory");
  env.put(Context.PROVIDER_URL,?
"localhost:1099");
  env.put(
"java.naming.factory.url.pkgs","org.jboss.naming:org.jnp.interfaces");
  
try
  
{
   Context?ctx?
=?new?InitialContext(env);
   Object?obj?
=?ctx.lookup(?"HelloWorld"?);
   HelloWorldHome?home?
=(HelloWorldHome)javax.rmi.PortableRemoteObject.narrow(
obj,?HelloWorldHome.
class?);
   HelloWorld?helloWorld?
=?home.create();
   System.out.println(?helloWorld.hello());
   helloWorld.remove();
  }

  
catch?(?Exception?e?)
  
{
   e.printStackTrace();
   System.out.println(?
"Exception:?"?+?e.getMessage()?);
  }

 }

}
?
 好了,下面我就就可以編譯并運(yùn)行這個(gè)客戶(hù)端了,如果你在編譯的時(shí)候JVM報(bào)告找不到某些類(lèi)的話,則可能是你沒(méi)有將j2ee.jar這個(gè)包放在CLASSPATH這個(gè)路徑變量中。客戶(hù)端的執(zhí)行結(jié)果雖然只是簡(jiǎn)單的在屏幕上打印一行“hello,world”,但它是來(lái)自于另一個(gè)世界
——JBOSS的聲音!

實(shí)例代碼下載

甘先生 2006-04-10 17:38 發(fā)表評(píng)論
]]>
在C4-1.7G 256M配置上安裝Redhat Linux EL3安裝Oracle 10G R2 http://www.aygfsteel.com/gump/articles/34529.html甘先生甘先生Thu, 09 Mar 2006 10:53:00 GMThttp://www.aygfsteel.com/gump/articles/34529.htmlhttp://www.aygfsteel.com/gump/comments/34529.htmlhttp://www.aygfsteel.com/gump/articles/34529.html#Feedback1http://www.aygfsteel.com/gump/comments/commentRss/34529.htmlhttp://www.aygfsteel.com/gump/services/trackbacks/34529.htmlCPU: C4-1.7G
內(nèi)存:256M
硬盤(pán):40G空了10G給Linux

OS: Redhat Linux EL3
Broswer: FireFox+Opera
QQ: LumaQQ
JDK: Sun JDK 1.5
java IDE: Eclipse3.12+MyEclipse4.
Media Player: XMMS+ Realplayer
Input Mothod: Fcitx
Database: Oracle10G2R+Mysql5
Webserver: Apache
Other: PHP,Tomcat5

安裝Oracle最麻煩,我參考了OTN的一篇文章。
http://www.oracle.com/technology/global/cn/pub/articles/smiley_10gdb_install.html

下面是部分截圖:


點(diǎn)擊圖片查看原圖。




甘先生 2006-03-09 18:53 發(fā)表評(píng)論
]]>
(轉(zhuǎn))使用Java Servlet動(dòng)態(tài)生成圖片http://www.aygfsteel.com/gump/articles/28779.html甘先生甘先生Fri, 20 Jan 2006 06:37:00 GMThttp://www.aygfsteel.com/gump/articles/28779.htmlhttp://www.aygfsteel.com/gump/comments/28779.htmlhttp://www.aygfsteel.com/gump/articles/28779.html#Feedback0http://www.aygfsteel.com/gump/comments/commentRss/28779.htmlhttp://www.aygfsteel.com/gump/services/trackbacks/28779.html在Web應(yīng)用中,經(jīng)常需要?jiǎng)討B(tài)生成圖片,比如實(shí)時(shí)股市行情,各種統(tǒng)計(jì)圖等等,這種情況下,圖片只能在服務(wù)器內(nèi)存中動(dòng)態(tài)生成并發(fā)送給用戶(hù),然后在瀏覽器中顯示出來(lái)。

  本質(zhì)上,瀏覽器向服務(wù)器請(qǐng)求靜態(tài)圖片如jpeg時(shí),服務(wù)器返回的仍然是標(biāo)準(zhǔn)的http響應(yīng),只不過(guò)http頭的contentType不是text/html,而是image/jpeg而已,因此,我們?cè)赟ervlet中只要設(shè)置好contentType,然后發(fā)送圖像的數(shù)據(jù)流,瀏覽器就能正確解析并顯示出圖片。

  在Java中,java.awt和java.awt.image包提供了基本的繪制圖像的能力,我們可以在內(nèi)存中繪制好需要的圖形,然后編碼成jpeg或其他圖像格式,最后發(fā)送相應(yīng)給瀏覽器即可。下面是使用Servlet動(dòng)態(tài)創(chuàng)建圖像的詳細(xì)步驟:

  1.創(chuàng)建BufferedImage對(duì)象,該對(duì)象存在內(nèi)存中,負(fù)責(zé)保存繪制的圖像;

  2.創(chuàng)建Graphics2D對(duì)象,該對(duì)象負(fù)責(zé)繪制所需的圖像;

  3.當(dāng)繪制完成后,調(diào)用com.sun.image.codec.jpeg包的JPEG編碼器對(duì)其編碼;

  4.最后將編碼后的數(shù)據(jù)輸出至HttpResponse即可。

  注意com.sun.image.codec.jpeg包位于JDK目錄的rt.jar包中,它不是公開(kāi)的API,需要將rt.jar復(fù)制到web應(yīng)用程序的WEB-INF/lib下。

  我們先創(chuàng)建一個(gè)最簡(jiǎn)單的Servlet:

public class CreateImageServlet extends HttpServlet {
 
protected void doGet(HttpServletRequest request, HttpServletResponse response)
 
throws ServletException, IOException
 
{
  response.setContentType(
"image/jpeg");
 }

}

 我們首先設(shè)置了response的contentType為image/jpeg,這樣瀏覽器就可以正確識(shí)別。

  然后,創(chuàng)建一個(gè)大小為100x100的BufferedImage對(duì)象,準(zhǔn)備繪圖:

int width = 100;
int height = 100;
BufferedImage bi 
= new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);

接著,BufferedImage對(duì)象中獲取Graphics2D對(duì)象并繪圖:
Graphics2D g = bi.createGraphics(); // 創(chuàng)建Graphics2D對(duì)象
// 填充背景為白色:
g.setBackground(Color.BLUE);
g.clearRect(
00, width, height);
// 設(shè)置前景色:
g.setColor(Color.RED);
// 開(kāi)始繪圖:
g.drawLine(009999); // 繪制一條直線
// 繪圖完成,釋放資源:
g.dispose();
bi.flush();
 然后,對(duì)BufferedImage進(jìn)行JPEG編碼:
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
JPEGEncodeParam param 
= encoder.getDefaultJPEGEncodeParam(bi);
param.setQuality(
1.0ffalse);
encoder.setJPEGEncodeParam(param);
try {
 encoder.encode(bi);
}

catch(IOException ioe) {
 ioe.printStackTrace();
}

 編碼后的JPEG圖像直接輸出到了out對(duì)象中,我們只要傳入response. getOutputStream()就可以直接輸出到HttpResponse中。

  下面是完整的代碼:

package com.crackj2ee.web.util;

import java.io.*;
import java.awt.*;
import java.awt.image.*;

import javax.servlet.*;
import javax.servlet.http.*;

import com.sun.image.codec.jpeg.*;

/**
@author Liao Xue Feng
*/

public class CreateImageServlet extends HttpServlet {

 
protected void doGet(HttpServletRequest request, HttpServletResponse response)
 
throws ServletException, IOException
 
{
  response.setContentType(
"image/jpeg");
  createImage(response.getOutputStream());
 }


 
private void createImage(OutputStream out) {
  
int width = 100;
  
int height = 100;
  BufferedImage bi 
= new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
  Graphics2D g 
= bi.createGraphics();
  
// set background:
  g.setBackground(Color.BLUE);
  g.clearRect(
00, width, height);
  
// set fore color:
  g.setColor(Color.RED);
  
// start draw:
  g.drawLine(0099199);
  
// end draw:
  g.dispose();
  bi.flush();
  
// encode:
  JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
  JPEGEncodeParam param 
= encoder.getDefaultJPEGEncodeParam(bi);
  param.setQuality(
1.0ffalse);
  encoder.setJPEGEncodeParam(param);
  
try {
   encoder.encode(bi);
  }

  
catch(IOException ioe) {
   ioe.printStackTrace();
  }

 }

}

 最后將這個(gè)Servlet編譯,注冊(cè)到web.xml中,映射路徑為/CreateImage,寫(xiě)一個(gè)簡(jiǎn)單的index.html測(cè)試:

<html><head></head>
<body>
<img src="CreateImage">
</body></html>


如能正確顯示,大功告成!



甘先生 2006-01-20 14:37 發(fā)表評(píng)論
]]>
(轉(zhuǎn))SCJP 1.4 考試的詳細(xì)介紹http://www.aygfsteel.com/gump/articles/28777.html甘先生甘先生Fri, 20 Jan 2006 06:02:00 GMThttp://www.aygfsteel.com/gump/articles/28777.htmlhttp://www.aygfsteel.com/gump/comments/28777.htmlhttp://www.aygfsteel.com/gump/articles/28777.html#Feedback0http://www.aygfsteel.com/gump/comments/commentRss/28777.htmlhttp://www.aygfsteel.com/gump/services/trackbacks/28777.html SCJP 1.4 考試是 Sun Microsystems 推出的系列 Java 認(rèn)證考試中的第一個(gè),對(duì)于眾多程序員來(lái)說(shuō),它是成為優(yōu)秀 Java 開(kāi)發(fā)人員的第一步。

該考試測(cè)試 Java 的基礎(chǔ)知識(shí)并需要對(duì)該語(yǔ)言的語(yǔ)法和語(yǔ)義有深入理解。

  1.參加培訓(xùn)或自學(xué)Java經(jīng)典課程。如果有C語(yǔ)言和面向?qū)ο蟮幕A(chǔ),只需自學(xué)SL275課程以及JDK1.4API,否則應(yīng)該參加相應(yīng)的培訓(xùn)班進(jìn)行學(xué)習(xí)。我對(duì)C語(yǔ)言和面向?qū)ο蠖加幸恍┗A(chǔ),同時(shí)又參加了SL275+Weblogic+JSP課程的學(xué)習(xí)。

  2.確定考試版本,明確考查的知識(shí)點(diǎn)及知識(shí)點(diǎn)的考查難度。目前SCJP考試有兩個(gè)版本1.2和1.4,兩個(gè)版本的比較如下表:

  其中選擇題有兩種形式:(1)給出一段代碼讓選擇其運(yùn)行結(jié)果;(2)給出關(guān)于某基本概念的一些描述語(yǔ)句讓選擇正確的答案。填空題一般是給出一段正確的代碼,不提供選擇項(xiàng),而讓你填寫(xiě)上運(yùn)行結(jié)果。

  兩個(gè)版本考查的知識(shí)點(diǎn)最大的差別在于310-025包含I/O、AWT,且對(duì)各個(gè)知識(shí)點(diǎn)的考查難度相對(duì)較容易,而310-035中去掉了I/O和AWT部分的內(nèi)容,但增加了對(duì)Assertion的考查,同時(shí)對(duì)Wrapper classes、Collections、hashcode( )和equals( )考查的難度有所加大。所以要根據(jù)自己的情況選擇合適的版本。我在復(fù)習(xí)時(shí)覺(jué)得I/O這一部分的內(nèi)容較多且不好記憶,就選擇了310-035,這個(gè)版本較難,也是對(duì)自己的一個(gè)挑戰(zhàn)。

  3.根據(jù)考查的知識(shí)點(diǎn)做練習(xí)題。由于認(rèn)證考試是以試題的形式來(lái)考查對(duì)知識(shí)點(diǎn)的掌握情況,所以多做題是通過(guò)考試的最有效方法之一,通過(guò)對(duì)SL275課程系統(tǒng)的學(xué)習(xí),掌握了有關(guān)知識(shí)點(diǎn)的基礎(chǔ)知識(shí)以后,必須通過(guò)做題來(lái)測(cè)試自己對(duì)知識(shí)點(diǎn)的掌握情況,書(shū)中寫(xiě)的有關(guān)知識(shí)點(diǎn)的內(nèi)容比較概括,有時(shí)自己覺(jué)得已經(jīng)掌握了這部分內(nèi)容,但做題時(shí)可能會(huì)出現(xiàn)各式各樣的錯(cuò)誤,比如在聲明main( )方法時(shí)應(yīng)為public static void main( String args[ ] ){……},如果在聲明時(shí)漏寫(xiě)了static,則在編譯時(shí)可以通過(guò),而運(yùn)行時(shí)會(huì)提示出錯(cuò)信息;如果main( )中的參數(shù)寫(xiě)string args[ ],則在編譯時(shí)會(huì)提示出錯(cuò),在考試時(shí)有類(lèi)似的題目,故意設(shè)一些陷阱,一不小心看似簡(jiǎn)單的問(wèn)題卻有可能失分。對(duì)于給出一段程序代碼要求選擇其運(yùn)行結(jié)果的題目,最好親手調(diào)試并分析其結(jié)果。

  對(duì)考查Wrapper classes、Collections、hashcode( )和equals( )方法的題目要認(rèn)真查看API文檔(Sun官方網(wǎng)站提供了下載的鏈接,也可以在Sun網(wǎng)站上在線查看)并做好筆記供以后查閱。通過(guò)做題鞏固知識(shí)點(diǎn)、適應(yīng)考試題型、找出容易出錯(cuò)的地方,同時(shí)對(duì)所學(xué)知識(shí)點(diǎn)也起到了查漏補(bǔ)缺的作用。

  4.下載相應(yīng)的模擬環(huán)境進(jìn)行實(shí)戰(zhàn)訓(xùn)練,或者在線測(cè)試。知識(shí)點(diǎn)和題型都掌握以后,還不要急于考試,應(yīng)該從網(wǎng)上下載一個(gè)模擬考試環(huán)境的軟件進(jìn)行實(shí)戰(zhàn)演練。我下載了Jcertify5.0,它需在JDK1.3環(huán)境下安裝運(yùn)行,該軟件可以設(shè)置考查的范圍進(jìn)行practice或者test,是一個(gè)很不錯(cuò)的模擬軟件,里面的題目與實(shí)際考試題目難易程度相當(dāng)。

  通過(guò)該軟件可以檢驗(yàn)?zāi)阍谝?guī)定的時(shí)間內(nèi)(120分鐘)完成題目的情況及各個(gè)知識(shí)點(diǎn)掌握的程度,這樣就可以根據(jù)測(cè)驗(yàn)結(jié)果有針對(duì)性的復(fù)習(xí)掌握的不太好的知識(shí)點(diǎn),反復(fù)測(cè)驗(yàn)、練習(xí),直到自己滿(mǎn)意為止。

  5.考前給自己足夠的信心。通過(guò)做練習(xí)和模擬軟件測(cè)驗(yàn),對(duì)各個(gè)知識(shí)點(diǎn)都比較有把握以后,其實(shí)這時(shí)參加考試已經(jīng)沒(méi)有問(wèn)題了,要相信自己的實(shí)力,給自己加油,此時(shí)切不可再做較難的題目,我當(dāng)時(shí)就犯了這樣的大忌,聽(tīng)說(shuō)310-035的考試比較難,目前通過(guò)的人數(shù)不多,我怕考試時(shí)的題目比我做的練習(xí)題難,在考試的前一天,又做了一套題目,共43題,通過(guò)率為僅為42%,這個(gè)結(jié)果令我很失望,也喪失了自信心,晚上做夢(mèng)一直考試且考試結(jié)果很糟糕,第二天醒來(lái)頭昏腦脹,本來(lái)預(yù)約好的考試不得不往后推遲,這是沉痛的教訓(xùn)。

  6.預(yù)約、考試。知名的IT認(rèn)證廠商在一些大城市都有指定的考試中心,Sun認(rèn)證也不例外,考試前三天到Sun指定的考試中心報(bào)名,由他們幫你注冊(cè),除了考試做題,其他的事情你盡管交給考試中心去做就行了。

  7.考試注意事項(xiàng)。按預(yù)約的時(shí)間提前到達(dá)考試中心,熟悉考試環(huán)境,穩(wěn)定情緒,考試中心在考場(chǎng)里設(shè)置有監(jiān)視器,你的一舉一動(dòng)都會(huì)被錄制下來(lái),所以考試來(lái)不得半點(diǎn)虛假,盡早打消“打小抄”的念頭。考務(wù)人員幫你進(jìn)入考試系統(tǒng)后,開(kāi)始進(jìn)行考試,考試分三個(gè)階段:

  (1)正式考試前的問(wèn)卷調(diào)查,給定時(shí)間為15分,有10來(lái)個(gè)問(wèn)題,給出四個(gè)選項(xiàng)供你選擇,主要調(diào)查你對(duì)SCJP要考查的知識(shí)點(diǎn)的掌握情況,如對(duì)數(shù)組、類(lèi)的定義是精通、是了解但需要?jiǎng)e人幫助還是不懂等,這部分內(nèi)容的回答不影響你的考試成績(jī),如果你讀懂問(wèn)題的意思了,你可以根據(jù)自己的實(shí)際情況進(jìn)行選擇,否則你盡管隨意選一個(gè),一路Next下去,直到所有的問(wèn)題做完;

  (2)正式考試,共120分鐘,選擇題在題面中注明了正確答案的數(shù)目(如:choose two),按Next做下一題,單擊exhibit按鈕查看題目提供的代碼;

  (3)題目做完后的問(wèn)卷調(diào)查,同樣也不影響你的考試結(jié)果。問(wèn)卷結(jié)束后緊張、激動(dòng)的時(shí)刻就要到了,此時(shí)你可以查看考試結(jié)果,考試系統(tǒng)列出你對(duì)各個(gè)知識(shí)點(diǎn)答題情況的一覽表,如果你的成績(jī)超過(guò)指定的分?jǐn)?shù)底線,則Result即為Pass。

  拿到考試結(jié)果通知單的一刻是令人興奮的,考后的總體感覺(jué)是SCJP認(rèn)證并不像自己想象的那么難,只要你做好了充分的準(zhǔn)備,拿到SCJP認(rèn)證證書(shū)不成問(wèn)題。



甘先生 2006-01-20 14:02 發(fā)表評(píng)論
]]>
(轉(zhuǎn))強(qiáng)烈推薦幾個(gè)比較好的Java代碼查詢(xún)網(wǎng)站http://www.aygfsteel.com/gump/articles/28771.html甘先生甘先生Fri, 20 Jan 2006 05:44:00 GMThttp://www.aygfsteel.com/gump/articles/28771.htmlhttp://www.aygfsteel.com/gump/comments/28771.htmlhttp://www.aygfsteel.com/gump/articles/28771.html#Feedback3http://www.aygfsteel.com/gump/comments/commentRss/28771.htmlhttp://www.aygfsteel.com/gump/services/trackbacks/28771.html這些是我經(jīng)常使用的一些Java代碼查詢(xún)網(wǎng)站,希望在這里能起到拋磚引玉的效果,大家群策群力,一起分享Java快樂(lè)。
 
  1. java2s  http://www.java2s.com/
   這個(gè)網(wǎng)站非常好,分成三大類(lèi),分別是Example、Products、 Articles,每個(gè)大類(lèi)下又分別設(shè)許多小類(lèi),還有搜索功能,這樣查找起來(lái)非常方便。。比如,如果要學(xué)習(xí)SWT/JFace,只要把Example下的SWT JFace Eclipse 研究一下也就可以了。另外,這個(gè)網(wǎng)站還有JavaScript DHTML、 C# / C Sharp、 C / ANSI-C、 SQL / MySQL等類(lèi)。總之,非常好。

  2. codeZoo http://www.codezoo.com/
   這是O'Reily旗下的,除了Java之外,還有Ruby、Python。
 
  3. Java學(xué)習(xí)源代碼檢索系統(tǒng)  http://www.chinaitlab.com/www/school/codesearch/index.html
   難得看見(jiàn)國(guó)產(chǎn)的,好歹也要支持一下,分類(lèi)也算清楚。
 
  4. Koders  http://www.koders.com/
   是個(gè)綜合查詢(xún)的網(wǎng)站,不過(guò)它好像是從代碼中查找關(guān)鍵詞,包含的語(yǔ)言挺多的。
 
  5. Resources for Java server-side developers  http://www.java201.com/
   確切的說(shuō),它是一個(gè)資源收集的網(wǎng)站,代碼查詢(xún)并不多。不過(guò)它分類(lèi)相當(dāng)細(xì),如Articles、Books、Examples、Extensions、Frameworks等類(lèi),你可以輸入Spring或Hibernate作為關(guān)鍵詞搜索一下看看。
 
   存貨不多,以后有了再補(bǔ)充。



甘先生 2006-01-20 13:44 發(fā)表評(píng)論
]]>
(轉(zhuǎn))組建J2EE開(kāi)發(fā)團(tuán)隊(duì)http://www.aygfsteel.com/gump/articles/28768.html甘先生甘先生Fri, 20 Jan 2006 05:36:00 GMThttp://www.aygfsteel.com/gump/articles/28768.htmlhttp://www.aygfsteel.com/gump/comments/28768.htmlhttp://www.aygfsteel.com/gump/articles/28768.html#Feedback2http://www.aygfsteel.com/gump/comments/commentRss/28768.htmlhttp://www.aygfsteel.com/gump/services/trackbacks/28768.htmlJ2EE這種應(yīng)用模型允許不同的開(kāi)發(fā)人員同時(shí)進(jìn)行開(kāi)發(fā)的各個(gè)元素。這里闡述一下對(duì)不同層次
的設(shè)計(jì)人員,開(kāi)發(fā)人員的技術(shù)要求。對(duì)以下幾個(gè)分類(lèi)進(jìn)行描述。
1、設(shè)計(jì)師組建團(tuán)隊(duì)
2、 表現(xiàn)邏輯層的團(tuán)隊(duì)角色
3、 業(yè)務(wù)邏輯層等團(tuán)隊(duì)角色
4、 數(shù)據(jù)庫(kù)訪問(wèn)層的團(tuán)隊(duì)角色
團(tuán)隊(duì)的組成可以根據(jù)人員的數(shù)量和系統(tǒng)的范圍大小。例如,不一定所有的角色都要分配,有些人可以擔(dān)當(dāng)不能的角色。

******
設(shè)計(jì)師
******
在基于組件的應(yīng)用系統(tǒng)開(kāi)發(fā)中,一個(gè)或幾個(gè)人必須對(duì)這個(gè)系統(tǒng)的整體需求有全面的了解,比如系統(tǒng)的控制流程,和其他的接口等等。有些公司稱(chēng)這個(gè)角色為總工程師,不管怎么叫,這個(gè)角色非常重要,他承擔(dān)協(xié)調(diào)不同開(kāi)發(fā)小組之間的工作,幫助他們考慮系統(tǒng)這個(gè)“大圖”。

********************
表現(xiàn)邏輯層的團(tuán)隊(duì)角色
********************

在表現(xiàn)層,用戶(hù)界面是動(dòng)態(tài)生成的。需要如下開(kāi)發(fā)人員:
1、 Java servlet 開(kāi)發(fā)人員
2、 JSP 開(kāi)發(fā)人員
3、 HTML 設(shè)計(jì)人員
4、 美工人員
5、 客戶(hù)端的JavaScript 開(kāi)發(fā)人員
Servlet 開(kāi)發(fā)人員建立表現(xiàn)層的邏輯,而其他人員建立表現(xiàn)的形式。

Java Servlet 開(kāi)發(fā)人員

Servlet處理頁(yè)和頁(yè)之間的瀏覽,會(huì)話管理,簡(jiǎn)單的輸入驗(yàn)證。Servlet也將業(yè)務(wù)邏輯的元素連接起來(lái)。
Servlet開(kāi)發(fā)人員必須理解一些相關(guān)事宜,HTTP請(qǐng)求,安全,多語(yǔ)言,和一些頁(yè)面元素如session, cookie,超時(shí)等等。J2EE的應(yīng)用里面,servlet必須用Java來(lái)寫(xiě),Servlet可能會(huì)調(diào)用JSP, EJB, JDBC等等。因此,servlet開(kāi)發(fā)人員要與應(yīng)用系統(tǒng)的其他人員緊密合作。

JSP 開(kāi)發(fā)人員

JSP開(kāi)發(fā)人員與servlet開(kāi)發(fā)人員密切合作來(lái)定義系統(tǒng)的表現(xiàn)層頁(yè)面。即使在復(fù)雜的開(kāi)發(fā)項(xiàng)目里,JSP和servlet的開(kāi)發(fā)人員也可能是一個(gè)人。
然而,如果一個(gè)系統(tǒng)中大部分Java在servlet而不是在JSP里,JSP人員就不必對(duì)Java非常熟悉。

HTML 設(shè)計(jì)人員

HTML 設(shè)計(jì)人員對(duì)HTML頁(yè)面進(jìn)行優(yōu)化。例如,他可能要完成以下任務(wù):

1、保證在不同的瀏覽器中所有的頁(yè)面都能正常顯示
2、 保證低速的調(diào)制解調(diào)器訪問(wèn)也不受影響
3、 對(duì)JSP設(shè)計(jì)人員的頁(yè)面進(jìn)行進(jìn)一步的優(yōu)化

美工人員

美工人員創(chuàng)建圖片等等。這些圖片要能小體積,快速下載。美工與HTML頁(yè)面人員緊密合作。

客戶(hù)端的JavaScript 開(kāi)發(fā)人員
使用客戶(hù)端的JavaScript有很多原因。比如,可以處理簡(jiǎn)單的輸入驗(yàn)證,不必提交給服務(wù)器,還可以讓用戶(hù)界面更生動(dòng)。這個(gè)角色和servlet, JSP人員緊密合作。

********************
業(yè)務(wù)邏輯層的團(tuán)隊(duì)角色
********************

業(yè)務(wù)邏輯層包含業(yè)務(wù)規(guī)則和業(yè)務(wù)實(shí)體。需要以下人員:

1、Session bean 開(kāi)發(fā)人員
2、 Entity bean 開(kāi)發(fā)人員

Session Bean 開(kāi)發(fā)人員

Session beans包含業(yè)務(wù)處理和業(yè)務(wù)規(guī)則的邏輯。比如,一個(gè)session bean 可能設(shè)計(jì)成計(jì)算一個(gè)支票的稅率。如果一個(gè)系統(tǒng)面臨處理經(jīng)常變化的復(fù)雜邏輯,而又大量使用session bean,結(jié)果是,session bean就需要不斷的更新。
Session bean 的開(kāi)發(fā)人員一般是一個(gè)領(lǐng)域的專(zhuān)家,理解復(fù)雜的,專(zhuān)門(mén)領(lǐng)域的邏輯,還有數(shù)據(jù)驗(yàn)證的規(guī)則。這個(gè)人員與servlet和entity bean開(kāi)發(fā)人員緊密合作。
Session bean可能需要調(diào)用JDBC接口,和其他的EJB。無(wú)狀態(tài)的session bean系統(tǒng)運(yùn)行的會(huì)更好一些。因?yàn)椋绻?jì)算費(fèi)率是一個(gè)有狀態(tài)的session bean,系統(tǒng)就必須訪問(wèn)一個(gè)保存bean的狀態(tài)信息的服務(wù)器。如果那個(gè)服務(wù)器恰巧出現(xiàn)問(wèn)題,整個(gè)流程就會(huì)受阻。

Entity Bean 開(kāi)發(fā)人員

Entity bean代表永久的對(duì)象,如一個(gè)數(shù)據(jù)庫(kù)中的一條記錄。Entity bean開(kāi)發(fā)人員的任務(wù)是設(shè)計(jì)一個(gè)面向?qū)ο蟮乃袠I(yè)務(wù)數(shù)據(jù)的組織圖。建立面向?qū)ο蟮脑噲D意味著要將數(shù)據(jù)庫(kù)中的表(關(guān)系型的)映射成entity bean。例如,開(kāi)發(fā)人員需要將客戶(hù)表,發(fā)票表,和訂單表轉(zhuǎn)換成相應(yīng)的客戶(hù),發(fā)票,和訂單對(duì)象。
一個(gè)entity bean 開(kāi)發(fā)人員與session bean, Servlet開(kāi)發(fā)人員密切合作,保證應(yīng)用系統(tǒng)提供快速的,靈活的,可擴(kuò)展的對(duì)業(yè)務(wù)數(shù)據(jù)的訪問(wèn)。
Entity bean 可能會(huì)大量的調(diào)用JDBC接口。而entity bean 之間的調(diào)用會(huì)很少。

**********************
數(shù)據(jù)庫(kù)訪問(wèn)層的團(tuán)隊(duì)角色
**********************

在數(shù)據(jù)庫(kù)訪問(wèn)層,開(kāi)發(fā)人員需要建立關(guān)系型數(shù)據(jù)庫(kù)的ER圖,數(shù)據(jù)字典等等相關(guān)文檔。所有對(duì)數(shù)據(jù)庫(kù)的修改,訪問(wèn)等等權(quán)限操作都要經(jīng)過(guò)數(shù)據(jù)庫(kù)訪問(wèn)層開(kāi)發(fā)人員。這個(gè)角色在大部分項(xiàng)目中擔(dān)當(dāng)DBA的角色。

團(tuán)隊(duì)組建之后,就可以開(kāi)始設(shè)計(jì)用戶(hù)界面。

************
設(shè)計(jì)用戶(hù)界面
************

建議從前到后開(kāi)始設(shè)計(jì)應(yīng)用系統(tǒng)。就是說(shuō),先設(shè)計(jì)用戶(hù)界面,再設(shè)計(jì)EJB,這樣效率最高。
安博公司已經(jīng)做了大量的界面設(shè)計(jì)工作,以后的工作完全可以參照已有的設(shè)計(jì)。下面提一些常用的建議性問(wèn)題:
1、頁(yè)面流程是什么?
2、 每個(gè)頁(yè)面上的命令按鈕是什么?
3、是否適用frame?
4、是否有公司標(biāo)準(zhǔn)的Logo,廣告條幅?
5、 在什么地方需要登錄過(guò)程?
6、 多語(yǔ)言的問(wèn)題?
這些和設(shè)計(jì)servlet, JSP相關(guān)。



甘先生 2006-01-20 13:36 發(fā)表評(píng)論
]]>
一個(gè)Laszlo-Jspl簡(jiǎn)單結(jié)合例子(Laszlo經(jīng)過(guò)jsp讀取數(shù)據(jù)庫(kù)數(shù)據(jù)) http://www.aygfsteel.com/gump/articles/21610.html甘先生甘先生Mon, 28 Nov 2005 01:59:00 GMThttp://www.aygfsteel.com/gump/articles/21610.htmlhttp://www.aygfsteel.com/gump/comments/21610.htmlhttp://www.aygfsteel.com/gump/articles/21610.html#Feedback2http://www.aygfsteel.com/gump/comments/commentRss/21610.htmlhttp://www.aygfsteel.com/gump/services/trackbacks/21610.html  數(shù)據(jù)庫(kù)表:tblMobile.sql
建立一個(gè)簡(jiǎn)單的測(cè)試表。
create table tblMobile (id int, name varchar(20), price decimal(10,2), image varchar(50), categoryid varchar(20)) ;
insert into tblMobile(1,'hello',200,'1.jpg','moto');



這里利用一個(gè)jsp文件生成xml文件。
phonelist.jsp



<?xml version="1.0" encoding="utf-8"?> 
<%@ page contentType="text/html;charset=utf-8"%> 
<%@ page import="java.sql.*"%> 
<phonelist> 
<% 
    String sql 
= ""
    String url 
= ""
 
    String categoryID 
= request.getParameter("categoryID"); 
     
    
try 


        Class.forName(
"org.hsqldb.jdbcDriver").newInstance();
        String URL
="jdbc:hsqldb:hsql://localhost/xdb";
        String user
="sa";
        String password
="";
        Connection conn 
= DriverManager.getConnection(URL,user,password);

        
        Statement stmt 
= conn.createStatement(); 
 
         
        String strOut 
= new String(categoryID.getBytes("ISO8859-1"), "GBK");  
 
        System.out.println(
"categoryID="+categoryID); 
        System.out.println(
"categoryID="+strOut); 
 
        sql 
= "select id, name, price, image from tblMobile where categoryid='" + strOut + "'"
        ResultSet rs 
= stmt.executeQuery(sql); 
 
        
while (rs.next())
            out.println(
"<phone id=\"" + rs.getString(1) + "\">"); 
            out.println(
"<id>" + rs.getString(1+ "</id>"); 
            out.println(
"<name>" + rs.getString(2+ "</name>"); 
            out.println(
"<price>" + rs.getString(3+ "</price>"); 
            out.println(
"<image>" + rs.getString(4+ "</image>"); 
            out.println(
"</phone>"); 
        }
 
 
        rs.close(); 
        stmt.close(); 
        conn.close(); 
 
    }
 catch (Exception e) 
        out.println(e); 
    }
 
%> 
</phonelist> 


test.lzx

<canvas height="100" width="500" >
  
<dataset name="myData" autorequest="true" type="http" src="phonelist.jsp?categoryID=moto"/>

  
<simplelayout axis="y"/>

    
<view datapath="myData:/phonelist/phone">
        
<simplelayout axis="x"/>
      
<text datapath="image/text()" /> 
      
<text datapath="name/text()" />
    
</view>

</canvas>





甘先生 2005-11-28 09:59 發(fā)表評(píng)論
]]>
主站蜘蛛池模板: 女性| 如东县| 丰台区| 峨山| 来安县| 张家川| 黎川县| 湄潭县| 岗巴县| 尚志市| 德兴市| 垦利县| 华安县| 桐乡市| 呼和浩特市| 台东县| 论坛| 石棉县| 竹山县| 友谊县| 东城区| 来宾市| 中西区| 洪泽县| 理塘县| 梨树县| 雅江县| 邯郸市| 贵溪市| 云阳县| 三江| 七台河市| 汕尾市| 墨玉县| 朝阳区| 鞍山市| 集贤县| 孙吴县| 镶黄旗| 黄骅市| 莫力|