欧美综合激情网,中文字幕人成一区,在线国产日本http://www.aygfsteel.com/gump/category/5127.html生活就像一盒巧克力,你永遠(yuǎn)不知道你會得到什么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ā)布了一個名為Google Web Toolkit (GWT)的Web工具包,這個工具包可以讓java程序員不需要寫任何HTML和JS就可以輕松地構(gòu)建一個AJAX應(yīng)用程序。這個工具包可以把你的java轉(zhuǎn)換成瀏覽器上的js和html。當(dāng)然,如果你覺得GWT不能構(gòu)建出你所需要的客戶端腳本,你也可以通過JSNI來自己寫JS代碼。

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

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

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

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

下面是GWT自帶的幾個Demo:  (點擊相應(yīng)頁面進(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ā)表評論
]]>
(轉(zhuǎn))經(jīng)典的JBOSS入門文章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開發(fā)的讀者而寫的,在閱讀本文之前,你最好對EJB有一個基本了解。

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

  JBOSS的安裝與啟動

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

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

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

c:\ jboss-3.2.6

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

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

  遠(yuǎn)程接口

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

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

  Home接口

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

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

  EJB的實現(xiàn)

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

//HelloWorldBean.java
package?sample;
import?javax.ejb.SessionContext;
/*這個類具體實現(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方法是實際的業(yè)務(wù)邏輯,它可以在客戶端顯示“hello,world”這個字符串*/
 
public?String?hello()
 
{
  System.out.println(“hello()”);
  
return?“hello,world”;
 }

}
?

  好了,這個會話EJB的全部代碼編寫完畢,下一步我們要做的是編寫它的部署文件:

  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>?

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

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

cd F:\project\jboss-tutorial

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

jar cf HelloWorld.jar sample META-INF

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

  部署我們的EJB

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

 這時,你可以切換到JBOSS運行的那個DOS窗口下,你會發(fā)現(xiàn)屏幕上會新出現(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

  客戶端代碼

  如果沒有客戶端代碼的話,那么EJB對我們來說幾乎毫無用處。以下我們將編寫客戶端代碼來調(diào)用這個HelloWorld。

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

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

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

/*以下是客戶端源碼中修改后的行*/
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()?);
  }

 }

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

實例代碼下載

甘先生 2006-04-10 17:38 發(fā)表評論
]]>
在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
硬盤: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

下面是部分截圖:


點擊圖片查看原圖。




甘先生 2006-03-09 18:53 發(fā)表評論
]]>
(轉(zhuǎn))使用Java Servlet動態(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)常需要動態(tài)生成圖片,比如實時股市行情,各種統(tǒng)計圖等等,這種情況下,圖片只能在服務(wù)器內(nèi)存中動態(tài)生成并發(fā)送給用戶,然后在瀏覽器中顯示出來。

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

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

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

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

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

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

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

  我們先創(chuàng)建一個最簡單的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,這樣瀏覽器就可以正確識別。

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

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

接著,BufferedImage對象中獲取Graphics2D對象并繪圖:
Graphics2D g = bi.createGraphics(); // 創(chuàng)建Graphics2D對象
// 填充背景為白色:
g.setBackground(Color.BLUE);
g.clearRect(
00, width, height);
// 設(shè)置前景色:
g.setColor(Color.RED);
// 開始繪圖:
g.drawLine(009999); // 繪制一條直線
// 繪圖完成,釋放資源:
g.dispose();
bi.flush();
 然后,對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對象中,我們只要傳入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();
  }

 }

}

 最后將這個Servlet編譯,注冊到web.xml中,映射路徑為/CreateImage,寫一個簡單的index.html測試:

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


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



甘先生 2006-01-20 14:37 發(fā)表評論
]]>
(轉(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)證考試中的第一個,對于眾多程序員來說,它是成為優(yōu)秀 Java 開發(fā)人員的第一步。

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

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

  2.確定考試版本,明確考查的知識點及知識點的考查難度。目前SCJP考試有兩個版本1.2和1.4,兩個版本的比較如下表:

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

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

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

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

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

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

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

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

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

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

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

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

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



甘先生 2006-01-20 14:02 發(fā)表評論
]]>
(轉(zhuǎn))強烈推薦幾個比較好的Java代碼查詢網(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代碼查詢網(wǎng)站,希望在這里能起到拋磚引玉的效果,大家群策群力,一起分享Java快樂。
 
  1. java2s  http://www.java2s.com/
   這個網(wǎng)站非常好,分成三大類,分別是Example、Products、 Articles,每個大類下又分別設(shè)許多小類,還有搜索功能,這樣查找起來非常方便。。比如,如果要學(xué)習(xí)SWT/JFace,只要把Example下的SWT JFace Eclipse 研究一下也就可以了。另外,這個網(wǎng)站還有JavaScript DHTML、 C# / C Sharp、 C / ANSI-C、 SQL / MySQL等類。總之,非常好。

  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
   難得看見國產(chǎn)的,好歹也要支持一下,分類也算清楚。
 
  4. Koders  http://www.koders.com/
   是個綜合查詢的網(wǎng)站,不過它好像是從代碼中查找關(guān)鍵詞,包含的語言挺多的。
 
  5. Resources for Java server-side developers  http://www.java201.com/
   確切的說,它是一個資源收集的網(wǎng)站,代碼查詢并不多。不過它分類相當(dāng)細(xì),如Articles、Books、Examples、Extensions、Frameworks等類,你可以輸入Spring或Hibernate作為關(guān)鍵詞搜索一下看看。
 
   存貨不多,以后有了再補充。



甘先生 2006-01-20 13:44 發(fā)表評論
]]>
(轉(zhuǎn))組建J2EE開發(fā)團(tuán)隊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)用模型允許不同的開發(fā)人員同時進(jìn)行開發(fā)的各個元素。這里闡述一下對不同層次
的設(shè)計人員,開發(fā)人員的技術(shù)要求。對以下幾個分類進(jìn)行描述。
1、設(shè)計師組建團(tuán)隊
2、 表現(xiàn)邏輯層的團(tuán)隊角色
3、 業(yè)務(wù)邏輯層等團(tuán)隊角色
4、 數(shù)據(jù)庫訪問層的團(tuán)隊角色
團(tuán)隊的組成可以根據(jù)人員的數(shù)量和系統(tǒng)的范圍大小。例如,不一定所有的角色都要分配,有些人可以擔(dān)當(dāng)不能的角色。

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

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

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

Java Servlet 開發(fā)人員

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

JSP 開發(fā)人員

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

HTML 設(shè)計人員

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

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

美工人員

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

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

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

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

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

Session Bean 開發(fā)人員

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

Entity Bean 開發(fā)人員

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

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

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

團(tuán)隊組建之后,就可以開始設(shè)計用戶界面。

************
設(shè)計用戶界面
************

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



甘先生 2006-01-20 13:36 發(fā)表評論
]]>
一個Laszlo-Jspl簡單結(jié)合例子(Laszlo經(jīng)過jsp讀取數(shù)據(jù)庫數(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ù)庫表:tblMobile.sql
建立一個簡單的測試表。
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');



這里利用一個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ā)表評論
]]>
主站蜘蛛池模板: 道孚县| 会同县| 额尔古纳市| 茶陵县| 黄陵县| 萍乡市| 拜城县| 桂东县| 阳泉市| 饶河县| 深州市| 肇州县| 垦利县| 政和县| 上犹县| 台前县| 隆回县| 项城市| 修武县| 龙南县| 扎鲁特旗| 开原市| 庆阳市| 新宁县| 宁化县| 潞城市| 隆子县| 昌邑市| 琼中| 蓬安县| 如东县| 布尔津县| 遂溪县| 阿拉善右旗| 炎陵县| 开远市| 库车县| 司法| 太仆寺旗| 内黄县| 旺苍县|