<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    skyful

      BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
      16 Posts :: 0 Stories :: 45 Comments :: 0 Trackbacks

    #

    實際用在HTML中的標(biāo)簽有forminputtextareaselectoption。

    表單標(biāo)簽form定義的表單里頭,必須有行為屬性action,它告訴表單當(dāng)提交的時候?qū)?nèi)容發(fā)往何處。

    可選的方法屬性method告訴表單數(shù)據(jù)將怎樣發(fā)送,有get(默認(rèn)的)和post兩個值。常用到的是設(shè)置post值,它可以隱藏信息(get的信息會暴露在URL中)。

    所以一個表單元素看起來是這樣子的:

    				
    						<form action="processingscript.php" method="post">
    				
    				
    						</form>
    				
    		

    input標(biāo)簽是表單世界中的“老大”。有10種形式,概括如下:

    • <input type="text" />是標(biāo)準(zhǔn)的文本框。它可以有一個值屬性value,用來設(shè)置文本框里的默認(rèn)文本。
    • <input type="password" /> 像文本框一樣,但是會以星號代替用戶所輸入的實際字符。
    • <input type="checkbox" />復(fù)選框,用戶可以快速的選擇或者不選一個條目。它可以有一個預(yù)選屬性checked,像這樣的格式<input type="checkbox" checked="checked" />.
    • <input type="radio" /> 與復(fù)選框相似,但是用戶只可在一個組中選擇一個單選按鈕。它也有一個預(yù)選屬性checked,使用方法跟復(fù)選框一樣。
    • <input type="file" /> 是展示你電腦上的文件的一個區(qū)域,就像你在一個軟件中打開或者保存一個文檔一樣。
    • <input type="submit" /> 是一個被點擊后提交表單的按鈕。你可以用值屬性value來控制按鈕上顯示的文本(下面的buttonreset類型也可以這樣,稍后介紹),如下: <input type="submit" value="Ooo. Look. Text on a button. Wow" />.
    • <input type="image" />以圖像代替按鈕文本,src屬性是必須的,像img標(biāo)簽一樣。
    • <input type="button" />是一個如果沒有其他代碼的話什么都不做的按鈕。
    • <input type="reset" /> 是一個點擊后會重置表單內(nèi)容的按鈕。
    • <input type="hidden" /> 不會顯示任何東西,它用來傳輸諸如用戶正在用的頁面的名字或者Email地址等表單必須傳輸?shù)臇|西。

    注意輸入標(biāo)簽input也是用“/>”自關(guān)閉的。

    多行文本輸入框標(biāo)簽textarea基本上就是一個比較大的文本框。它必須有行屬性rows和列屬性cols,用法像這樣:

    <textarea rows="5" cols="20">A big load of text here</textarea>

    選定標(biāo)簽select與選項標(biāo)簽option一起可以制作一個下拉選框。是這樣工作的:

    				
    						<select>
    				
    				
    						<option value="first option">Option 1</option>
    				
    				
    						<option value="second option">Option 2</option>
    				
    				
    						<option value="third option">Option 3</option>
    				
    				
    						</select>
    				
    		

    當(dāng)表單被提交時,被選中選項的值將被發(fā)送。

    與復(fù)選框和單選按鈕的預(yù)選屬性checked一樣,選項標(biāo)簽option也有一個預(yù)選屬性selected,它可以用在這樣的格式中:<option value="mouse" selected="selected">Rodent</option>。

    上述的標(biāo)簽中在網(wǎng)頁中看起來都不錯,但是,如果你有一個程序來處理這個表單,這些標(biāo)簽都不起作用。這是因為,表單字段需要名稱。所以所有的字段中都需要增加名稱屬性name,比如 <input type="text" name="talkingsponge" />

    一個表單看起來應(yīng)該像下面這樣(注意:這個表單不會工作,除非有一個用來提交數(shù)據(jù)的“contactus.php”的文件,它位于表單標(biāo)簽form的行為屬性action中。)

    				
    						<form action="contactus.php" method="post">
    				
    				
    						<p>Name:</p>
    				
    				
    						<p><input type="text" name="name" value="Your name" /></p>
    				
    				
    						<p>Comments: </p>
    				
    				
    						<p><textarea name="comments" rows="5" cols="20">Your comments</textarea></p>
    				
    				
    						<p>Are you:</p>
    				
    				
    						<p><input type="radio" name="areyou" value="male" /> Male</p>
    				
    				
    						<p><input type="radio" name="areyou" value="female" /> Female</p>
    				
    				
    						<p><input type="radio" name="areyou" value="hermaphrodite" /> An hermaphrodite</p>
    				
    				
    						<p><input type="radio" name="areyou" value="asexual" checked="checked" /> Asexual</p>
    				
    				
    						<p><input type="submit" /></p>
    				
    				
    						<p><input type="reset" /></p>
    				
    				
    						</form>
    				
    		

    HTML高級指南中還有更復(fù)雜的高階水平教程等著你,如果你想進(jìn)一步了解和學(xué)習(xí)。

    posted @ 2006-04-27 10:59 氓氓 閱讀(248) | 評論 (0)編輯 收藏

    在頁面中有8個復(fù)選框,名字都是checkbox,在這里這些checkbox組成了一個復(fù)選框組,可以通過checkbox[x]來調(diào)用具體的某一個復(fù)選框。

    <form name="form1" onSubmit="return check()" action="/alws/orgcodeapply.do" method="post">

    ?????? <td width="69" bgcolor="#FFFFFF"><span class="style5">
    ????????????? <input type="checkbox" name="checkbox" value=" 延期">
    ????????????? 延期</span></td>
    ????????????? <td width="70" bgcolor="#FFFFFF"><span class="style5">
    ????????????? <input type="checkbox" name="checkbox" value=" 遷址">
    ????????????? 遷址</span></td>
    ????????????? <td width="71" bgcolor="#FFFFFF"><span class="style5">
    ????????????? <input type="checkbox" name="checkbox" value=" 名稱">
    ????????????? 名稱</span></td>
    ????????????? <td width="70" bgcolor="#FFFFFF"><span class="style5">
    ????????????? <input type="checkbox" name="checkbox" value=" 地址">
    ????????????? 地址</span></td>
    ????????????? <td width="70" bgcolor="#FFFFFF"><span class="style5">
    ????????????? <input type="checkbox" name="checkbox" value=" 法人">???????????????
    ????????????? 法人</span></td>
    ????????????? <td width="70" bgcolor="#FFFFFF"><span class="style5">
    ????????????? <input type="checkbox" name="checkbox" value=" 資金">???????????????
    ????????????? 資金</span></td>
    ????????????? <td width="70" bgcolor="#FFFFFF"><span class="style5">
    ????????????? <input type="checkbox" name="checkbox" value=" 性質(zhì)">
    ????????????? 性質(zhì)</span></td>
    ????????????? <td width="70" bgcolor="#FFFFFF"><span class="style5">
    ????????????? <input type="checkbox" name="checkbox" value=" 其他">???????????????
    ????????????? 其它</span></td>

    </form>

    在form標(biāo)簽中,有onSubmit方法,通過在form中申明這個方法,可以實現(xiàn)在點擊submit按鈕時,先調(diào)用這個return check()方法,然后再執(zhí)行
    action。
    下面是這個check()函數(shù)有關(guān)語句:

    <script language="JavaScript" type="text/JavaScript">
    function check()
    {
    ?<!--可以在這里檢驗表單的完整性-->

    ??? ?if(document.form1.checkbox[0].checked==true)
    ?? {
    ? ? ?document.form1.test.value=document.form1.checkbox[0].value;
    ? }
    ???? if(document.form1.checkbox[1].checked==true)
    ?? {
    ? ? ?document.form1.test2.value=document.form1.checkbox[1].value;
    ? }
    ????? if(document.form1.checkbox[2].checked==true)
    ?? {
    ? ? ?document.form1.test3.value=document.form1.checkbox[2].value;
    ? }
    ????? if(document.form1.checkbox[3].checked==true)
    ?? {
    ? ? ?document.form1.test4.value=document.form1.checkbox[3].value;
    ? }
    ????? if(document.form1.checkbox[4].checked==true)
    ?? {
    ? ? ?document.form1.test5.value=document.form1.checkbox[4].value;
    ? }
    ????? if(document.form1.checkbox[5].checked==true)
    ?? {
    ? ? ?document.form1.test6.value=document.form1.checkbox[5].value;
    ? }
    ????? if(document.form1.checkbox[6].checked==true)
    ?? {
    ? ? ?document.form1.test7.value=document.form1.checkbox[6].value;
    ? }
    ????? if(document.form1.checkbox[7].checked==true)
    ?? {
    ? ? ?document.form1.test8.value=document.form1.checkbox[7].value;
    ? }
    }
    </script>
    在上面這個函數(shù)中,如果某一個checkbox[x]被選中,則document.form1.checkbox[x].checked==true,執(zhí)行賦值操作,這些復(fù)選框的值value被賦給test x,然后將test x的值傳入ActionForm中,就可以得到復(fù)選框的相對應(yīng)的值了,如果test x,沒有被賦值,則為NULL
    下面是test相關(guān)語句,type=hidden,隱藏表單控件??????

    ?????? <input name="test" type="hidden" class="input" id="test" size="20">
    ????????????? <input name="test2" type="hidden" class="input" id="test2" size="20">
    ????????????? <input name="test3" type="hidden" class="input" id="test3" size="20">
    ????????????? <input name="test4" type="hidden" class="input" id="test4" size="20">
    ????????????? <input name="test5" type="hidden" class="input" id="test5" size="20">
    ????????????? <input name="test6" type="hidden" class="input" id="test6" size="20">
    ????????????? <input name="test7" type="hidden" class="input" id="test7" size="20">
    ????????????? <input name="test8" type="hidden" class="input" id="test8" size="20">

    posted @ 2006-04-27 10:55 氓氓 閱讀(711) | 評論 (0)編輯 收藏

    轉(zhuǎn)自: csdn.net

    JEE5到底有什么系列

    Java EE5作為新一代Java企業(yè)開發(fā)平臺的規(guī)范,從開始設(shè)計就引來了整個java開發(fā)社區(qū)的注目,引起無數(shù)的辯論和帶來了眾多的期盼。Java EE5作為J2EE平臺誕生幾近6年后的第4代規(guī)范重點關(guān)注的是目前java開發(fā)的幾個熱點:開發(fā)效率,運(yùn)行效率和企業(yè)應(yīng)用整合。目標(biāo)也是讓J2EE開發(fā)簡單,簡單再簡單。那我們就看看J2EE5規(guī)范到底有什么,是否真的能給開發(fā)者/企業(yè)帶來真正的實惠?

    Java EE5規(guī)范是一個所謂的雨傘規(guī)范(Umbrella),在其下是一系列的子規(guī)范,主要包括:
    EJB 3.0 (JSR 220)
    Java Persistence API 1.0 (JSR 220)
    JSP 2.1 (JSR 245)
    JSF 1.2 (JSR 252)
    JAX-WS 2.0 (JSR 224)
    StAX 1.0 (JSR 173)
    JAXB 2.0 (JSR 222)
    Web Services Annotations 1.0 (JSR 181)
    Common Annotations 1.0 (JSR 250)
    SAAJ 1.3 maintenance
    JTA 1.1 maintenance
    JavaMail 1.4 & JAF 1.1 maintenance
    JSTL 1.2 maintenance
    Java EE Mgmt maintenance
    JACC maintenance
    Servlet maintenance
    Java EE Deployment maintenance
    WSEE maintenance

    Java Persistence API 1.0( EJB3 Entity Bean) 在Java EE5中, Entity Bean做為EJB規(guī)范中負(fù)責(zé)持久化的組件將逐漸成為一個歷史名詞了,作為J2EE 4規(guī)范中最為人所垢病的Entity Bean在Java EE5中被推到重來,取而代之的是java開發(fā)的通用持久化規(guī)范Java Persistence API 1.0, 其實就是完全重新定義了的Entity Bean規(guī)范(目前在很多場合中,由于歷史原因我們?nèi)匀皇褂胑jb3持久化來稱呼這個規(guī)范)。JPA作為java中負(fù)責(zé)關(guān)系數(shù)據(jù)持久化的組件已經(jīng)完全獨立出來成為一個單獨的規(guī)范,而不再屬于Enterprise Java Bean的范疇(EJB更多的是指Stateless/Stateful session bean和Message Driven Bean)。

    Java Persistence AP(JPA)可以說是java持久化技術(shù)的一個集大成者,它吸取了Hiberante,JDO,TopLink等優(yōu)秀技術(shù)和框架,將這幾年發(fā)展成熟起來的基于POJO模型的O/R Mapping技術(shù)標(biāo)準(zhǔn)化,成為在J2EE和J2SE環(huán)境中通用的java持久化API。值得注意的是Java Persistence API并不是J2EE環(huán)境專用,而是在java中的通用API。意味著我們可以在任何需要訪問關(guān)系數(shù)據(jù)庫的地方使用JPA,甚至包括swing開發(fā)的桌面應(yīng)用。JPA也不要求一定在J2EE容器中才能運(yùn)行,而是任何有JVM的環(huán)境都可以運(yùn)用。 這就使得我們可以很容易的把JPA作為一個持久化組件自由地和各種容器/框架(EJB3容器, Spring等等)組合。

    JPA如何簡化原來EJB2中Entity Bean的開發(fā),看一個簡單對比:

    ?EJB2.0EJB3.0(JPA)
    Business Interface
    public inerface HelloWold extends EJBLocalObject{
        Public String getResult();
    }
          
    無需定義接口
    映射配置文件編寫EJB3 Deployment descriptor可選
    EJB實現(xiàn)
    public class HelloWorldEntityBean 
             implements HelloWold, EntityBean{
        private int id;
        private String result;
        private EntityContext txt;
       
        public HelloWorldEntityBean(){}
        public void setEntityContext( EntityContext text ){ 
            txt = text;
        }
       
        public String getResult(){ 
            Return result; 
        }
            
        public int getId(){
            return id; 
        }
        
        public void setResult( String result ){ 
            this.result = result;
        }
        
        public String cretaeByName( String name ) throws EJBException{
            .....
        }
       
     }      
          
    @Entity
    @Table(name=”hellotable”)
    public class HelloWoldEntity{   
        @Id
        private int id; p
        private String result; 
        
        public HelloWoldEntity(){} 
        
        public String getResult(){ 
            return result;
        }
        
        public int getId(){
            return id;
        }  
        
        public void setResult( String result ){ 
            this.result = result;
        }
    }      
       

    在JPA 中,ejb3的Entity Bean就是一個簡單的java bean,即POJO( Plain Old Java Object)。不象EJB2中的EntityBean需要跟容器有密切的關(guān)聯(lián)(EJB2中必須有EntityContext),EJB3 中的entityBean和容器無關(guān),事實上在JPA中,EntityBean也不再稱為EntityBean,而是Entity,和Session Bean/Message Driven Bean的仍然存在的EJB區(qū)別開來。

    為了簡化O/R Mapping的配置,JPA大量采用JDK1.5的最重要的新特性annotaion直接在java代碼中進(jìn)行配置的標(biāo)注。 采用annotation標(biāo)注O/R Mapping配置可以大幅度減少以往使用xml配置O/R Mapping工作量,提高效率和可維護(hù)性。

    下面是一個最簡單的一對一關(guān)聯(lián)關(guān)系采用annotation和xml的配置比較。

    ?Java Persistence API(EJB3 Persistence)Hiberante
    配置文件可選需要
    One-To-One配置可選
    <one-to-one        
        name="address"        
        class="com.foo.Address"        
        cascade="All"        
        lazy="false"/>
    
    Java代碼
    public class Order{     
     @OneToOne(cascade=CascadeType.ALL,fetch=FetchType.LAZYL)    
     Address address;
        ...... 
    }
          
    public class Order{    
        Address address;
        ......   
    }
    

    采用annotation的優(yōu)勢在于:

    • 減少了配置文件的數(shù)量,特別是在實體(Entity)比較多的系統(tǒng)中,維護(hù)大量的O/R Mapping xml配置文件是不少的工作量。
    • 減少了配置需要標(biāo)注的內(nèi)容。由于annotation由java compiler來編譯解析,很多需要在xml配置中顯式聲明的內(nèi)容不再需要(比如變量名稱,類型,集合中的對象類型等)。
    • Annotation的編譯期檢查可以避免xml文件中容易出現(xiàn)的配置語法錯誤,在IDE中及時發(fā)現(xiàn)和糾正。
    • 無需在xml配置文件和java代碼中切換,較少思維的跳躍,提高了開發(fā)效率。
    • annotation被編譯到j(luò)ava bytecode中,省略了xml的解析過程,極大的提升應(yīng)用的啟動速度和內(nèi)存占用(特別是Entity多的情況)。

    JPA在啟動上做了很多程度的簡化,使我們能夠很容易地在容器內(nèi)(container)和J2SE環(huán)境中使用JPA。JPA擁有一個最基本的工廠類EntityManagerFactory。通過調(diào)用這個工廠類的createEntityManager()方法獲得EntityManager。所有對實體(Entity)的操作包括持久化,查詢,刪除等等操作都都定義EntityManager上。

    public interface EntityManager {
        public void persist(Object entity);
        public  T merge(T entity);
        public void remove(Object entity);
        public  T find(Class entityClass, Object primaryKey);
        public  T getReference(Class entityClass, Object primaryKey);
        public void flush();
        public void setFlushMode(FlushModeType flushMode);
        public FlushModeType getFlushMode();
        public void lock(Object entity, LockModeType lockMode);
        public void refresh(Object entity);
        public void clear();
        public boolean contains(Object entity);
        public Query createQuery(String ejbqlString);
        public Query createNamedQuery(String name);
        public Query createNativeQuery(String sqlString);
        public Query createNativeQuery(String sqlString, Class result-
        Class);
        public Query createNativeQuery(String sqlString, String result-
        SetMapping);
        public void close();
        public boolean isOpen();
        public EntityTransaction getTransaction();
    }
        
        

    那又如何獲得EntityManagerFactory呢?不管是在J2EE或者J2SE中,都需要通過一個persistence.xml配置文件對EntityMangaerFactory進(jìn)行配置。下面是一個最簡單的persistence.xml的范例。

    <entity-manager>
        <name>myEntityManager>/name>
        <provider>com.redsoft.ejb3.PersistenceProviderImpl>/provider>
        <class>com.redsoft.samples.HelloEntityBean>/class>
        <properties>
            <property name="ConnectionDriverName" value="/"com.mysql.jdbc.Driver"/>
    "        <property name="ConnectionURL" value="jdbc:mysql://localhost/EJB3Test"/>
            <property name="ConnectionUserName" value="ejb3"/>
            <property name="ConnectionPassword" value="ejb3"/>
       >/properties>
    </entity-manager> 

    name – 定了當(dāng)前這個EntityMangaerFactory的名字,我們可以在一個persistence.xml中定義多個EntityManagerFactory。

    Provider – 定了提供EntityManagerFactory的具體實現(xiàn)類。這個實現(xiàn)類由不同的持久化產(chǎn)品開發(fā)商提供。例子中采用的是國產(chǎn)紅工場的ejb3持久化實現(xiàn)的 EntityManagerFactory實現(xiàn)類。如如果我們需要更換成其他廠商的產(chǎn)品,就需要更換具體的實現(xiàn)類。

    class – 列出所有需要被JPA管理的實體類。為了保證在J2SE/J2EE中的通用性和可移植性,JPA要求這里必須列出所有被JPA管理的實體類。

    properties – 由持久化廠商自行定義的屬性。

    如果使用JTA事務(wù),也可以使用 <jta-data-source>myDataSource</ jta-data-source>來定義連接池。

    在J2EE容器環(huán)境中和J2SE環(huán)境中,都是通過讀取這個配置文件來初始化EntityMangaerFactory。在J2EE容器環(huán)境下,ejb3容器負(fù)責(zé)讀取persistence.xml并初始化EntityManagerFactory,并將EntityManagerFactory幫定到JDNI中,這樣我們就可以通過訪問JNDI獲得EntityManagerFactory, 進(jìn)而獲得EntityManager。由于EJB3容器支持IOC模式,我們也可以通過IOC將EntityMangerFactory直接注射給需要的使用JPA持久化的java類。通過IOC注射的方式獲得EntityManagerFactory或者EntityManager是更方便,合理和推薦的方式。

    而在J2SE環(huán)境中,我們可以通過標(biāo)準(zhǔn)的javax.persistence.Persistence類來獲得EntityManagerFactory。Javax.persistence.Persistence會在當(dāng)前classpath或者jar包的META-INF/下搜索并讀persistence.xml后初始化EntityManagerFactory。

    下面是一個簡單的示例如何在J2SE環(huán)境中獲得EntityManagerFactory并獲得EntityManager,運(yùn)用EntityManager持久化HelloWorldEntityBean.

    public class HelloWorld {
        public static void main( final String[] args ){
            /*
             * Obtain an EJB3 entity manager
             */
            final EntityManagerFactory emf = Persistence.createEntityManagerFactory();
            final EntityManager entityManager = emf.createEntityManager();
            // Construct a HelloEntityBean
            final HelloEntityBean hello = new HelloEntityBean( 1, "foo" );
            EntityTransaction trans = entityManager.getTransaction();
            trans.begin();
            entityManager.persist( hello );
            trans.commit();
            System.out.println( "Successfully persist hello: " + hello );
            // Look up the HelloEntityBean by primarky key
            final HelloEntityBean anotherHello = entityManager.find( HelloEntityBean.class, new Integer( hello.getId() ) );
            System.out.println( "Found hello: " + anotherHello );
            // close the EntityManager
            entityManager.close();
            emf.close();
        }
    }
        

    事實上不管是在J2SE還是J2EE中我們都可以這樣通過javax.persistence.Persistence來初始化EntityManagerFactory。

    在上面HelloWorld的例子中我們需要顯式調(diào)用javax.persistence.Persistence.createEntityManagerFactory, 并且顯式地開始事務(wù)和關(guān)閉事務(wù)。在今天大量使用IOC托管容器的時代,這樣的編碼已經(jīng)顯得落后。

    作為J2EE一個部分的JPA自然可以利用EJB3的IOC容器托管事務(wù)和注射資源,同樣的也可以使用開源IOC容器spring來托管事務(wù)和注射資源。紅工場也提供了一個開源的spring DAO擴(kuò)展 http://sourceforge.net/projects/ejb3daosupport 是來支持JPA和Spring的結(jié)合。

    下面是一個如何在Spring中托管事務(wù)和在DAO中注入EntityManager的配置范例:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "file://spring-beans.dtd">
    <beans>
     <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
      <property name="driverClassName"><value>com.mysql.jdbc.Driver</value></property>
      <property name="url"><value>jdbc:mysql://localhost/EJB3Test</value></property>
      <property name="username"><value>ejb3</value></property>
      <property name="password"><value>ejb3</value></property>
     </bean>
     <bean id="entityManagerFactory"
      class="org.springframework.orm.ejb3.LocalEntityManagerFactoryBean">
      <property name="persistenceInfo"><ref local="persistenceInfo"/></property>
      
     </bean>
     <bean id="persistenceInfo" class="com.redsoft.ejb3.PersistenceInfoImpl">
      <property name="nonJtaDataSource"><ref local="dataSource"/></property>
      <property name="entityManagerName"><value>myEntityManager</value></property>
      <property name="persistenceProviderClassName">
       <value>
        com.redsoft.ejb3.PersistenceProviderImpl
       </value>
      </property>
      <property name="entityClassNames">
      <list>
       <value>com.redsoft.ejb3.spring.Child</value>
       <value>com.redsoft.ejb3.spring.Father</value>
      </list>
      </property>
      <property name="properties">
       <props>
       <prop key="javax.jdo.PersistenceManagerFactoryClass">
        com.redsoft.jdo.PersistenceManagerFactoryImpl
       </prop>
       </props>
      </property>
     </bean>
     <bean id="transactionManager" class="org.springframework.orm.ejb3.EJB3TransactionManager"
      singleton="true">
      <property name="entityManagerFactory">
       <ref local="entityManagerFactory" />
      </property>
     </bean>
     
     <bean id="dao"
      class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"
      singleton="true">
      <property name="transactionManager">
       <ref local="transactionManager" />
      </property>
      <property name="target">
       <bean class="com.redsoft.ejb3.spring.DAOImpl">
        <property name="entityManagerFactory">
         <ref local="entityManagerFactory" />
        </property>
       </bean>
      </property>
      <property name="transactionAttributes">
       <props>
        <prop key="save*">PROPAGATION_REQUIRED</prop>
        <prop key="remove*">PROPAGATION_REQUIRED</prop>
        <prop key="del*">PROPAGATION_REQUIRED</prop>
        <prop key="update*">PROPAGATION_REQUIRED</prop>
        <prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
        <prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>
        <prop key="query*">PROPAGATION_REQUIRED,readOnly</prop>
       </props>
      </property>
     </bean>
    </beans>
        

    文中的例子可以從紅工場主頁下載 http://www.redsoftfactory.com/chinese/index.html

    posted @ 2006-03-20 16:09 氓氓 閱讀(458) | 評論 (0)編輯 收藏

    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 SharpC / ANSI-C、 SQL / MySQL等類??傊浅:谩?br />
    ?? 這是O'Reily旗下的,除了Java之外,還有Ruby、Python。
    ?
    ? 3. Java學(xué)習(xí)源代碼檢索系統(tǒng)? http://www.chinaitlab.com/www/school/codesearch/index.html
    ?? 難得看見國產(chǎn)的,好歹也要支持一下,分類也算清楚。
    ?
    ???是個綜合查詢的網(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)鍵詞搜索一下看看。
    posted @ 2006-03-20 16:07 氓氓 閱讀(185) | 評論 (0)編輯 收藏

    JSP數(shù)據(jù)庫數(shù)據(jù)分頁顯示 ???[ 日期:2005-05-14 ]???[ 來自:轉(zhuǎn)載 ]

    <%--??
    功能:JSP數(shù)據(jù)庫操作例程?-?數(shù)據(jù)分頁顯示?-?JDBC?2.0?-?Oracle??
    --%>??

    <%@?page?contentType=\"text/html;charset=8859_1\"?%>??

    <%??
    //變量聲明??
    java.sql.Connection?sqlCon;?//數(shù)據(jù)庫連接對象??
    java.sql.Statement?sqlStmt;?//SQL語句對象??
    java.sql.ResultSet?sqlRst; //結(jié)果集對象??

    java.lang.String?strCon;  //數(shù)據(jù)庫連接字符串??
    java.lang.String?strSQL;  //SQL語句??

    int?intPageSize;     ?//一頁顯示的記錄數(shù)??
    int?intRowCount;     ?//記錄總數(shù)??
    int?intPageCount;     //總頁數(shù)??
    int?intPage;       ?//待顯示頁碼??
    java.lang.String?strPage;??

    int?i;??

    //設(shè)置一頁顯示的記錄數(shù)??
    intPageSize?=?2;??

    //取得待顯示頁碼??
    strPage?=?request.getParameter(\"page\");??
    if(strPage==null){//表明在QueryString中沒有page這一個參數(shù),此時顯示第一頁數(shù)據(jù)??
     ?intPage?=?1;??
    }??
    else{//將字符串轉(zhuǎn)換成整型??
     ?intPage?=?java.lang.Integer.parseInt(strPage);??
     ?if(intPage<1)?intPage?=?1;??
    }??

    //裝載JDBC驅(qū)動程序??
    java.sql.DriverManager.registerDriver(new?oracle.jdbc.driver.OracleDriver());??

    //設(shè)置數(shù)據(jù)庫連接字符串??
    strCon?=?\"jdbc:oracle:thin:@linux:1521:ora4cweb\";??

    //連接數(shù)據(jù)庫??
    sqlCon?=?java.sql.DriverManager.getConnection(strCon,\"hzq\",\"hzq\");??

    //創(chuàng)建一個可以滾動的只讀的SQL語句對象??
    sqlStmt?=?sqlCon.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY);??

    //準(zhǔn)備SQL語句??
    strSQL?=?\"select?name,age?from?test\";??

    //執(zhí)行SQL語句并獲取結(jié)果集??
    sqlRst?=?sqlStmt.executeQuery(strSQL);??

    //獲取記錄總數(shù)??
    sqlRst.last();??
    intRowCount?=?sqlRst.getRow();??

    //記算總頁數(shù)??
    intPageCount?=?(intRowCount+intPageSize-1)?/?intPageSize;??

    //調(diào)整待顯示的頁碼??
    if(intPage>intPageCount)?intPage?=?intPageCount;??
    %>??

    <html>??
    <head>??
    <meta?http-equiv=\"Content-Type\"?content=\"text/html;?charset=gb2312\">??
    <title>JSP數(shù)據(jù)庫操作例程?-?數(shù)據(jù)分頁顯示?-?JDBC?2.0?-?Oracle</title>??
    </head>??

    <body>??

    <table?border=\"1\"?cellspacing=\"0\"?cellpadding=\"0\">??
    <tr>??
     ?<th>姓名</th>??
     ?<th>年齡</th>??
    </tr>??

    <%??
    if(intPageCount>0){??
     ?//將記錄指針定位到待顯示頁的第一條記錄上??
     ?sqlRst.absolute((intPage-1)?*?intPageSize?+?1);??

     ?//顯示數(shù)據(jù)??
     ?i?=?0;??
     ?while(i<intPageSize?&&?!sqlRst.isAfterLast()){??
       %>??
    <tr>??
     ?<td><%=sqlRst.getString(1)%></td>??
     ?<td><%=sqlRst.getString(2)%></td>??
    </tr>??
       <%??
       sqlRst.next();??
       i++;??
     ?}??
    }??
    %>??

    </table>??

    第<%=intPage%>頁??共<%=intPageCount%>頁??<%if(intPage<intPageCount){%><a?href=\"jdbc20-oracle.jsp?page=<%=intPage+1%>\">下一頁</a><%}%>??<%if(intPage>1){%><a?href=\"jdbc20-oracle.jsp?page=<%=intPage-1%>\">上一頁</a><%}%>??

    </body>??
    </html>??

    <%??
    //關(guān)閉結(jié)果集??
    sqlRst.close();??

    //關(guān)閉SQL語句對象??
    sqlStmt.close();??

    //關(guān)閉數(shù)據(jù)庫??
    sqlCon.close();
    posted @ 2006-03-20 16:06 氓氓 閱讀(964) | 評論 (2)編輯 收藏

    一、JDK安裝環(huán)境配置
    Java環(huán)境配置大全
    安裝JDK

    http://Java.sun.com/ 下載jdk-1_5_0_04-windows-i586-p.exe

    安裝到指定路徑,我選擇D:\jdk1.5.0

    配置環(huán)境變量:

    Java_HOME: D:\jdk1.5.0? (注意不能有;也不能有\(zhòng))
    PATH: D:\jdk1.5.0\bin;
    CLASSPATH: .;D:\jdk1.5.0\lib\tools.jar;
    D:\jdk1.5.0\jre\lib\rt.jar;

    安裝WTK

    http://Java.sun.com/ 下載j2me_wireless_toolkit-2_2-windows.exe

    安裝到指定路徑,我選擇D:\WTK22

    安裝Eclipse

    http://www.eclipse.org/ 下載eclipse-SDK-3.0.1-win32.zip和

    NLpack-eclipse-SDK-3.0.x-win32.zip(語言包)

    解壓縮eclipse-SDK-3.0.1-win32.zip即可,我的路徑:D:\MyDevelopTools\eclipse

    解壓縮NLpack-eclipse-SDK-3.0.x-win32.zip,得到features和plugins兩個文件夾,把里面的文件分別拷

    入eclipse中相應(yīng)的目錄下即可

    安裝Tomcat

    http://jakarta.apache.org/ 下載jakarta-tomcat-5.5.9.zip

    解壓縮jakarta-tomcat-5.5.9.zip即可

    配置環(huán)境變量:

    Tomcat_Home: D:\MyDevelopTools\tomcat-5.5.9

    PATH: D:\MyDevelopTools\tomcat-5.5.9;

    在eclipse中配置J2ME開發(fā)環(huán)境:

    安裝eclipseme:

    http://www.eclipseme.org/ 下載eclipseme.feature_0.9.4_site.zip,在eclipse中選擇幫助-〉軟件

    更新-〉查找并安裝-〉搜索要安裝的新功能部件-〉新建已歸檔的站點。選擇

    eclipseme.feature_0.9.4_site.zip,打開-〉選擇eclipseme.feature_0.9.4_site.zip,剩下的一直下

    一步就可以了。安裝完成會在窗口-〉首選項中出現(xiàn)J2ME

    修改Java-〉調(diào)試:

    選中Java-〉調(diào)試,把暫掛執(zhí)行的前兩項點去,通信中的調(diào)試器超時改為15000

    配置WTK

    窗口-〉首選項-〉J2ME-〉Platform Components

    右鍵單擊對話框右側(cè)的Wireless Toolkit,選擇Add Wireless Toolkit,

    選擇WTK安裝目錄,eclipse會自動匹配。

    在eclipse中配置J2EE開發(fā)環(huán)境(Tomcat5.5.9):

    安裝EMF-RunTime:

    http://www.eclipseme.org/ 下載emf-sdo-runtime-2.0.1.zip

    解壓縮emf-sdo-runtime-2.0.1.zip,得到features和plugins兩個文件夾,把里面的文件分別拷入eclipse

    中相應(yīng)的目錄下即可。

    安裝Lomboz:

    http://forge.objectweb.org 下載org.objectweb.lomboz_3.0.1.N20050106.zip解壓縮

    org.objectweb.lomboz_3.0.1.N20050106.zip,得到features和plugins兩個文件夾,把里面的文件分別拷

    入eclipse中相應(yīng)的目錄下。如果在窗口-〉首選項中有Lomboz選項就安裝正確,如果沒有,在

    D:\eclipse\configuration\下刪除org.eclipse.update這個文件夾,再重起eclipse就可以了。

    配置Lomboz:

    在D:\eclipse\plugins\com.objectlearn.jdt.j2ee_3.0.1\servers下新建一個文件tomcat559.server,

    里面的內(nèi)容從tomcat50x.server全部復(fù)制過來,把name="Apache Tomcat v5.0.x"替換成name="Apache

    Tomcat v5.5.9",然后把所有的

    “${serverRootDirectory}/bin;${serverRootDirectory}/common/endorsed”替換成

    “${serverRootDirectory}/common/endorsed”就可以了。然后進(jìn)入eclipse,窗口-〉首選項-〉Lomboz

    ,把JDK Tools.jar改為:D:\jdk1.5.0\lib\tools.jar,窗口-〉首選項-〉Lomboz-〉Server

    Definitions,在Server types中選擇Tomcat5.5.9在Application Server Directory和Classpath

    Variable的路徑改為D:/MyDevelopTools/tomcat-5.5.9先應(yīng)用,再確定就可以了。
    ?

    ----------------------------------------------

    -------
    二、tomcat + jsp/ servlet/ javabean 環(huán)境配置
    第一步:下載j2sdk和tomcat:到sun官方站點(
    http://java.sun.com/j2se/1.4.2/download.html)下載

    j2sdk,注意下載版本為Windows Offline Installation的SDK,同時最好下載J2SE 1.4.2 Documentation

    ,然后到tomcat官方站點( http://www.apache.org/dist/jakarta/tomcat-4/ )下載tomcat(下載最新

    4.1.x版本的tomcat);

    第二步:安裝和配置你的j2sdk和tomcat:執(zhí)行j2sdk和tomcat的安裝程序,然后按默認(rèn)設(shè)置進(jìn)行安裝即可

    。
    1.安裝j2sdk以后,需要配置一下環(huán)境變量,在我的電腦->;屬性->;高級->;環(huán)境變量->;系統(tǒng)變量中添加

    以下環(huán)境變量(假定你的j2sdk安裝在c:\j2sdk1.4.2):
    JAVA_HOME=c:\j2sdk1.4.2
    classpath=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;(.;一定不能少,因為它代表當(dāng)前

    路徑)
    path=%JAVA_HOME%\bin
    接著可以寫一個簡單的java程序來測試J2SDK是否已安裝成功:
    public class Test{
    public static void main(String args[]){
    System.out.println("This is a test program.");
    }
    }
    將上面的這段程序保存為文件名為Test.java的文件。
    然后打開命令提示符窗口,cd到你的Test.java所在目錄,然后鍵入下面的命令?
    javac Test.java
    java Test?
    此時如果看到打印出來This is a test program.的話說明安裝成功了,如果沒有打印出這句話,你需要

    仔細(xì)檢查一下你的配置情況。

    2.安裝Tomcat后,在我的電腦->;屬性->;高級->;環(huán)境變量->;系統(tǒng)變量中添加以下環(huán)境變量(假定你的

    tomcat安裝在c:\tomcat):
    CATALINA_HOME=c:\tomcat;
    CATALINA_BASE=c:\tomcat;
    然后修改環(huán)境變量中的classpath,把tomat安裝目錄下的common\lib下的servlet.jar追加到classpath中

    去,修改后的classpath如下:
    classpath=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;%CATALINA_HOME%

    \common\lib\servlet.jar;
    接著可以啟動tomcat,在IE中訪問
    http://localhost:8080 ,如果看到tomcat的歡迎頁面的話說明安裝成

    功了。

    第三步:建立自己的jsp app目錄
    1.到Tomcat的安裝目錄的webapps目錄,可以看到ROOT,examples, tomcat-docs之類Tomcat自帶的的目錄


    2.在webapps目錄下新建一個目錄,起名叫myapp;
    3.myapp下新建一個目錄WEB-INF,注意,目錄名稱是區(qū)分大小寫的;
    4.WEB-INF下新建一個文件web.xml,內(nèi)容如下:
    <?xml version="1.0" encoding="ISO-8859-1"?>;

    <!DOCTYPE web-app
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    "
    http://java.sun.com/dtd/web-app_2_3.dtd ">;

    <web-app>;
    <display-name>;My Web Application</display-name>;
    <description>;
    A application for test.
    </description>;
    </web-app>;
    5.在myapp下新建一個測試的jsp頁面,文件名為index.jsp,文件內(nèi)容如下:
    <html>;<body>;<center>;
    Now time is: <%=new java.util.Date()%>;
    </center>;</body>;</html>;
    6.重啟Tomcat
    7.打開瀏覽器,輸入
    http://localhost:8080/myapp/index.jsp 看到當(dāng)前時間的話說明就成功了。

    第四步:建立自己的Servlet:
    1.用你最熟悉的編輯器(建議使用有語法檢查的java ide)新建一個servlet程序,文件名為Test.java,

    文件內(nèi)容如下:
    package test;
    import java.io.IOException;
    import java.io.PrintWriter;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    public class Test extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
    PrintWriter out=response.getWriter();
    out.println("<html>;<body>;<h1>;This is a servlet test.</h1>;</body>;</html>;");
    out.flush();
    }
    }
    2 .編譯
    將Test.java放在c:\test下,使用如下命令編譯:
    C:\Test>;javac Test.java
    然后在c:\Test下會產(chǎn)生一個編譯后的servlet文件:Test.class
    3 .將結(jié)構(gòu)test\Test.class剪切到%CATALINA_HOME%\webapps\myapp\WEB-INF\classes下,也就是剪切那

    個test目錄到classes目錄下,如果classes目錄不存在,就新建一個。 現(xiàn)在webapps\myapp\WEB-

    INF\classes下有test\Test.class的文件目錄結(jié)構(gòu)
    4 .修改webapps\myapp\WEB-INF\web.xml,添加servlet和servlet-mapping
    編輯后的web.xml如下所示,紅色為添加的內(nèi)容:
    <?xml version="1.0" encoding="ISO-8859-1"?>;

    <!DOCTYPE web-app
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    "
    http://java.sun.com/dtd/web-app_2_3.dtd ">;

    <display-name>;My Web Application</display-name>;
    <description>;
    A application for test.
    </description>;
    <servlet>;
    <servlet-name>;Test</servlet-name>;
    <display-name>;Test</display-name>;
    <description>;A test Servlet</description>;
    <servlet-class>;test.Test</servlet-class>;
    </servlet>;
    <servlet-mapping>;
    <servlet-name>;Test</servlet-name>;
    <url-pattern>;/Test</url-pattern>;
    </servlet-mapping>;
    </web-app>;
    這段話中的servlet這一段聲明了你要調(diào)用的Servlet,而servlet-mapping則是將聲明的servlet“映射”

    到地址/Test上
    5 .好了,啟動Tomcat,啟動瀏覽器,輸入
    http://localhost:8080/myapp/Test 如果看到輸出This is a

    servlet test.就說明編寫的servlet成功了。
    注意:修改了web.xml以及新加了class,都要重啟Tomcat

    第四步:建立自己的Bean:
    1.用你最熟悉的編輯器(建議使用有語法檢查的java ide)新建一個java程序,文件名為TestBean.java

    ,文件內(nèi)容如下:
    package test;
    public class TestBean{
    private String name = null;
    public TestBean(String strName_p){
    this.name=strName_p;
    }?
    public void setName(String strName_p){
    this.name=strName_p;
    }
    public String getName(){
    return this.name;
    }?
    }
    2 .編譯
    將TestBean.java放在c:\test下,使用如下命令編譯:
    C:\Test>;javac TestBean.java
    然后在c:\Test下會產(chǎn)生一個編譯后的bean文件:TestBean.class
    3 .將TestBean.class文件剪切到 %CATALINA_HOME%\webapps\myapp\WEB-INF\classes\test下,
    4 .新建一個TestBean.jsp文件,文件內(nèi)容為:
    <%@ page import="test.TestBean" %>;?
    <html>;<body>;<center>;
    <%
    TestBean testBean=new TestBean("This is a test java bean.");
    %>;
    Java bean name is: <%=testBean.getName()%>;
    </center>;</body>;</html>;?
    5 .好了,重啟Tomcat,啟動瀏覽器,輸入
    http://localhost:8080/myapp/TestBean.jsp 如果看到輸出

    Java bean name is: This is a test java bean.就說明編寫的Bean成功了。

    這樣就完成了整個Tomcat下的jsp、servlet和javabean的配置。接下來需要做的事情就是多看書、多讀別

    人的好代碼,自己多動手寫代碼以增強(qiáng)自己在這方面開發(fā)的能力了。
    ----------------------------------------------

    -------
    三、tomcat + mysql / mssql 環(huán)境配置
    jsp+ mysql + tomcat 實例
    不休和尚 發(fā)表于 2005-9-22 18:06:59?
    呵呵 一邊忙著準(zhǔn)備補(bǔ)考,一邊慢慢的在弄這些個jsp,快想瘋掉了我。哎呀,,,真是命苦啊。
    ?這個是關(guān)于連接mysql的代碼,保留一下,方便以后查看吧,要是對你有幫助的話,不用感謝我,呵呵。

    因為我也是在網(wǎng)上搜索整理出來的。只是我的使用過程而已。
    ???? --------------------------------------------------------------------------------------

    ------------
    ?Mysql
    下載版本:mysql-4.1.13-win32.zip(Windows downloads)
    http://dev.mysql.com/downloads/mysql/4.1.html
    JDBC驅(qū)動
    下載版本:mysql-connector-java-3.1.10.zip
    好象已經(jīng)有 3.2.0出現(xiàn)了哦,不過我還是用了這個版本的。
    http://dev.mysql.com/downloads/connector/j/3.1.html
    ?
    ?關(guān)于jsdk 的東西就不用說咯。

    安裝Mysql
    ? 別人寫的,抄一下 ^_^
    解壓縮mysql-4.1.13-win32.zip,運(yùn)行setup.exe
    首先出現(xiàn)的是安裝向?qū)g迎界面,直接點擊“Next”
    繼續(xù),選擇安裝類型,選擇“自定義”custom安裝,然后點“Next”下一步,出現(xiàn)自定義安裝界面
    選擇安裝路徑:C:\MySQL Server 4.1(可自定義)
    點“OK”返回到自定義安裝界面,路徑已改為設(shè)置的路徑
    點“Next”,準(zhǔn)備開始安裝
    點“Install”開始安裝
    完成后出現(xiàn)創(chuàng)建MySQL.com帳號的界面
    如果是首次使用MySQL,選“Create anew free MySQL.com accout”
    點“Next”,輸入你的Email地址和自己設(shè)定的用于登錄MySQL.com的密碼
    填完后點“Next”進(jìn)入第二步
    填寫姓名等相關(guān)信息,填完點“Next”,進(jìn)入第三步
    填完電話號碼、公司名稱等信息后,點“Next”,
    然后出現(xiàn)預(yù)覽你剛才填的信息的界面,點“Next”出現(xiàn)安裝完成界面
    注意,這里有個配置向?qū)У倪x項(Configure the MySQL Server now),
    建議勾選立即配置你的MySQL。許多說安裝完MySQL后無法啟動,原因就在于沒有配置MySQL。
    點擊“Finish”完成安裝,并開始配置MySQL
    點“Next”,進(jìn)入配置類型選擇頁面。選“Detailed configuration”(詳細(xì)配置)
    點“Next”,進(jìn)入服務(wù)類型選擇頁面。選“Developer Machine”(開發(fā)者機(jī)器),這樣占用系統(tǒng)的資源

    不會很多
    點“Next”后,進(jìn)入數(shù)據(jù)庫用法選擇頁面。選擇“Multifunctional Database”
    點“Next”,進(jìn)入選擇InnoDB數(shù)據(jù)存放位置頁面
    不用更改設(shè)置,直接放在Installation Path安裝目錄里即可,然后點“Next”,選擇MySQL的同時聯(lián)接數(shù)
    選擇“Manual Setting”,設(shè)置為100(根據(jù)自己需要,酌情設(shè)置)
    點“Next”,配置MySQL在TCP/IP通訊環(huán)境中的端口選擇默認(rèn)的3306端口即可。
    點“Next”,選擇MySQL中的字符設(shè)置
    注意,這里的選擇將會影響你是否能在MySQL中使用中文。選擇gb2312字符集以便支持簡體中文
    點“Next”,設(shè)置Windows服務(wù)選項
    注意,這里的選擇很關(guān)鍵。
    “Install As Windows Service”一定要勾選,這是將MySQL作為Windows的服務(wù)運(yùn)行。
    “Service Name”就用默認(rèn)的“MySQL”
    下面的“Launch the MySQL Server automatically”一定要勾選,這樣Windows啟動時,MySQL就會自動

    啟動服務(wù),要不然就要手工啟動MySQL。
    許多人說安裝MySQL后無法啟動、無法連接、出現(xiàn)10061錯誤,原因就在這里。
    點“Next”,設(shè)置根帳號root的登錄密碼
    “Modify Security Settings”是設(shè)置根帳號的密碼,輸入你設(shè)定的密碼即可。
    “Create An Anonymous Account”是創(chuàng)建一個匿名帳號,這樣會導(dǎo)致未經(jīng)授權(quán)的用戶非法訪問你的數(shù)據(jù)

    庫,有安全隱患,建議不要勾選。
    點“Next”,MySQL配置向?qū)⒁罁?jù)你上面的所有設(shè)定配置MySQL,以便MySQL的運(yùn)行符合你的需要
    點“Execute”開始配置,當(dāng)出現(xiàn)“Service started successfully”時,說明你的配置完成,MySQL服務(wù)

    啟動成功
    點“Finish”完成,整個MySQL的配置完成,剩下的就是用MySQL客戶端連接MySQL服務(wù)器,然后使用了。

    安裝JDBC驅(qū)動:
    解壓縮mysql-connector-java-3.1.10.zip
    將要使用的是mysql-connector-java-3.1.10-bin-g.jar和mysql-connector-java-3.1.10-bin.jar

    配置
    在C:\Program Files\Java目錄下建立mysqlforjdbc子目錄,進(jìn)入該目錄將mysql-connector-java-

    3.1.10-bin.jar到該目錄下
    進(jìn)入C:\Program Files\Java\jdk1.5.0_04\lib目錄將mysql-connector-java-3.1.10-bin-g.jar拷貝到該

    目錄下
    然后配置classpath,追加%JAVA_HOME%\lib\mysql-connector-java-3.1.10-bin-g.jar;C:\Program

    Files\Java\mysqlforjdbc\mysql-connector-java-3.1.10-bin.jar;到該環(huán)境變量中去

    配置這個的目的是讓java應(yīng)用程序找到連接mysql的驅(qū)動.

    還有一點就是不要忘記了把沙鍋難免的兩個驅(qū)動拷貝到tomcat目錄下面哦,否則還是找不到的哦哦哦哦

    ,因為我就是遇到過咯,經(jīng)驗。 不信自己試

    最后就是源代碼咯:

    我在Mysql上面建了一個testsql 數(shù)據(jù)庫 表名: test? 共有5個字段
    <%@ page contentType="text/html; charset=gb2312" %>
    <%@ page import="java.lang.*, java.io.*, java.sql.*, java.util.* "%>
    <html>
    <body>
    <% Class.forName("org.gjt.mm.mysql.Driver").newInstance();

    String url="jdbc:mysql://localhost/testsql";
    Connection? conn=DriverManager.getConnection(url,"bonze","");
    Statement stmt = conn.createStatement();
    String sqlstr="select * from test";
    ResultSet rs= stmt.executeQuery(sqlstr);

    while(rs.next()){
    out.println(rs.getString(1));
    out.println(rs.getString(2));
    out.println(rs.getString(4));
    out.println(rs.getString(5));

    }
    out.println("<br>");
    out.print("恭喜~! 打開數(shù)據(jù)庫操作成功!");
    rs.close();
    stmt.close();
    conn.close();
    %>

    </body>
    </html>

    好了就那么多咯

    要是成功了 就能看到你數(shù)據(jù)庫里面的東西了撒,呵呵
    下次就是關(guān)于一些操作的東西咯,準(zhǔn)備做個簡單點的jsp 網(wǎng)站放出來,丟下人。呵呵
    還有, 估計關(guān)于oracle的連接的代碼要等段時間了啊,補(bǔ)考完了再說,還有現(xiàn)在正在上oracle課,呵呵

    ,老是翹課滴~? 嘿嘿。。。。。。 大肆都這樣,沒辦法哦。。。
    ?
    ?


    -------------------------------------------------------------------------------------------

    ---------
    四、Jboss

    安裝配置Jboss完全篇
    1、???????????? Jboss的配置安裝
    1.1、????????? Jboss的下載
    Jboss的下載地址為:
    http://www.jboss.org/ 。目前的最新版本是:Jboss2.2.1。建議你下載Jboss2.2.1

    和tomcat3.2.1集成的下載包,這樣避免了單個下載后兩者之間配置的問題。下載地址是:

    http://prdownloads.sourceforge.net/jboss/JBoss-2.2.1_Tomcat-3.2.1.zip

    下載完成后,解壓到一個目錄,這個目錄名為E:\program files\jb_tom(這個目錄名是筆者自定的)。

    下面有如下子目錄:

    E:\program files\jb_tom\jboss和E:\jb_tom\tomcat

    注意:這里的目錄稍微做了改動,建議你將TOMCAT_HOME加到CLASSPATH中,否則E:\program

    files\jb_tom\jboss里的run_with_tomcat.bat這個文件要做相應(yīng)改動才能正常運(yùn)行。

    1.2、????????? 配置運(yùn)行
    在啟動Jboss前應(yīng)該先安裝好JDK,建議安裝JDK1.3以上的版本(目前最新的正式版本是JDK1.3.1),然后

    將系統(tǒng)的Classpath設(shè)置好。Jboss不要任何配置和修改,當(dāng)然,最好將TOMCAT_HOME加到Classpath中,這

    樣,E:\program files\jb_tom\jboss里的run_with_tomcat.bat這個文件前的TOMCAT_HOME就可以去掉了

    。

    運(yùn)行E:\program files\jb_tom\jboss里的run_with_tomcat.bat這個文件,這樣,Tomcat端口在8080,

    Jboss為8083,運(yùn)行 http://localhost:8080/ 將出現(xiàn)tomcat首頁,運(yùn)行 http://localhost:8083/ 將出現(xiàn)無

    錯誤的空白頁。

    2、???????????? 測試EJB
    2.1、????????? 啟動JBOSS:
    方法么,這里就不多作描述了,因為前面已經(jīng)寫過了^&^。

    2.2、????????? 下載并配置EJB例程
    http://www.wodejia.net/softdownload/java/interestejb.zip 下載interestejb.zip,這就是我們用

    于測試的EJB例程。將壓縮包解開,出現(xiàn)如下目錄:

    interest/com

    interest/docs

    ……

    將該目錄下所有文件全部copy到j(luò)boss安裝目錄下的examples目錄下,如果沒有examples目錄,就自己建

    立一個,結(jié)構(gòu)如下:

    E:\ program files\jb_tom \jboss\examples\interest...

    將文件E:\program files\jb_tom\jboss\examples\interest\interest.jar復(fù)制到:E:\program

    files\jb_tom\jboss\deploy下。

    在Classpath中加入如下文件:e:\program files\jb_tom\tomcat\lib\servlet.jar;e:\program

    files\jb_tom\jboss\client\jboss-client.jar;e:\program files\jb_tom\jboss\client\jnp-

    client.jar;e:\program files\jb_tom\jboss\lib\ext\ejb.jar;e:\program

    files\jb_tom\jboss\examples\interest\interest-client.jar

    為了測試Client通過servlet調(diào)用EJB,必須將: E:\program files\jb_tom\jboss\examples\interest下

    EJB.class和EJB.java復(fù)制到:

    E:\program files\jb_tom\tomcat\webapps\ROOT\WEB-INF\classes目錄下

    將目錄E:\jb_tom\jboss\examples\interest\com以及此下的所有文件都復(fù)制到E:\program

    files\jb_tom\tomcat\webapps\ROOT\WEB-INF\classes下。

    重新啟動JBOSS_TOMCAT。

    2.3、????????? command下client測試運(yùn)行:
    command下,進(jìn)入目錄E:\ program files\jb_tom\jboss\examples\interest

    java InterestClient

    將出現(xiàn):

    Got context

    Got reference

    Interest on 1000 units, at 10% per period, compounded over 2 periods is: 210.00000000000023

    Jboss窗口將出現(xiàn):

    [Interest] Someone called `calculateCompoundInterest!'

    2.4、????????? web下client通過Servlet測試運(yùn)行:
    http://localhost:8080/servlet/EJB

    將出現(xiàn):

    Interest on 1000 units, at 10% per period, compounded over 2 periods is: 210.00000000000023

    Jboss窗口將出現(xiàn):

    [Interest] Someone called `calculateCompoundInterest!'

    到此已經(jīng)成功了。

    注意:這里將JBoss-2.2.1_Tomcat-3.2.1.zip解壓后復(fù)制到E:\program files\jb_tom目錄下。

    ------------------------------------------------------------------------------------------
    五、Struts

    Java:Struts入門初步知識
    ?
    1.如何安裝Struts:
      首先到
    http://jakarta.apache.org/Struts 下載Struts,建議使用release版,現(xiàn)在最高版本為1.2.6

    ,有多種OS版本(windows,linus...),下載后解壓開來,可以看到這個目錄:lib和webapps,webapps下有

    一些WAR文件。假設(shè)你的Tomcat裝在c:\Tomcat下,則將那些WAR文件拷貝到C:\Tomcat\webapps,重新啟動

    Tomcat即可。打開瀏覽器,在地址欄中輸入: http://localhost:8080/Struts-example/index.jsp ,若能

    見到“powered by Struts”的深藍(lán)色圖標(biāo),即說明成功了。這是Struts自帶的一個例子,附有詳細(xì)的說

    明文檔,可以做為初學(xué)者的入門教程。另外,Struts還提供了一系統(tǒng)實用對象:XML處理、通過Java

    reflection APIs自動處理JavaBeans屬性、國際化的提示和消息等

    2.練習(xí)做一個實例:
      一個用戶注冊系統(tǒng),用戶通過網(wǎng)頁輸入相關(guān)信息:注冊ID號,密碼,EMAIL,若注冊成功,則返回成

    功提示信息,反之出現(xiàn)注冊失敗提示信息。?

      項目建立:
      正式開發(fā)前,需要在Tocmat(我的tomcat裝在c:\tomcat)中建立此項目。比較快的一種建立方式為

    :在C:\tomcat\webapps下新建目錄test,再將C:\tomcat\webapps\struts-example下的WEB-INF目錄拷貝

    到test目錄下,然后將test\WEB-INF下的src和classes目錄清空,以及struts-config.xml文件中內(nèi)容清

    空即可。這樣,我們需要的Struts類包及相關(guān)的配置文件就都齊了。
      開發(fā)時,將JSP文件放在test目錄下,Java原文件放在test\WEB-INF\src下,編譯后的類文件放在

    test\WEB-INF\classes下。

      注冊頁面:reguser.jsp

    <%@ page contentType="text/html;charset=UTF-8" language="java"
    %>

    <%@ taglib uri="/WEB-INF/Struts-bean.tld" prefix="bean"
    %>

    <%@ taglib uri="/WEB-INF/Struts-html.tld" prefix="html"
    %>

    <html:html locale="true">

    <head>

    <title>RegUser</title>

    <html:base/>

    </head>

    <body bgcolor="white">

    <html:errors/>

    <html:form action="/regUserAction" focus="logname">


    <table border="0" width="100%">

    <tr>

    <th align="right">

    Logname:

    </th>

    <td align="left">

    <html:text property="logname" size="20" maxlength="20"/>


    </td>

    </tr>

    <tr>

    <th align="right">

    Password:

    </th>

    <td align="left">

    <html:password property="password" size="20" maxlength="20"/>


    </td>

    </tr>

    <tr>

    <th align="right">

    E-mail:

    </th>

    <td align="left">

    <html:password property="email" size="30" maxlength="50"/>


    </td>

    </tr>

    <tr>

    <td align="right">

    <html:submit property="submit" value="Submit"/>

    </td>

    <td align="left">

    <html:reset/>

    </td>

    </tr>

    </table>

    </html:form>

    </body>

    </html:html>


      此JSP頁面不同于普通的JSP頁,因為它大量運(yùn)用了taglib,這些taglib對初學(xué)者而言,可能難于掌握

    ,可這卻是Struts的精華之一。靈活運(yùn)用,將大大提高開發(fā)效率。

    Struts-config.xml:


    <Struts-config>

    <form-beans>

    <form-bean name="regUserForm"

    type="org.cjea.Struts.example. RegUserForm "/>

    </form-beans>

    <action-mappings>

    <action path="/regUserAction"

    type=" org.cjea.Struts.example.RegUserAction "

    attribute=" regUserForm "

    scope="request"

    validate="false">

    <forward name="failure" path="/ messageFailure.jsp"/>


    <forward name="success" path="/ messageSuccess.jsp"/>

    ?


      Struts的核心是Controller,即ActionServlet,而ActionServlet的核心就是Struts-config.xml,

    Struts-config.xml集中了所有頁面的導(dǎo)航定義。對于大型的WEB項目,通過此配置文件即可迅速把握其脈

    絡(luò),這不管是對于前期的開發(fā),還是后期的維護(hù)或升級都是大有裨益的。掌握Struts-config.xml是掌握

    Struts的關(guān)鍵所在。

    FormBean:RegUserForm


    package org.cjea.Struts.example;
    import javax.Servlet.http.HttpServletRequest;
    import org.apache.Struts.action.ActionForm;
    import org.apache.Struts.action.ActionMapping;

    public final class RegUserForm extends ActionForm{

    private String logname;
    private String password;
    private String email;

    public RegUserForm(){
    logname = null;
    password = null;
    email = null;
    }

    public String getLogName() {
    return this.logname;
    }
    public void setLogName(String logname) {
    this.logname = logname;
    }
    public void setPassWord(String password) {
    this.password = password;
    }
    public String getPassWord() {
    return this.password;
    }
    public void setEmail(String email) {
    this.email = email;
    }
    public String getEmail() {
    return this.email;
    }

    public void reset(ActionMapping mapping, HttpServletRequest request)
    {
    logname = null;
    password = null;
    email = null;
    }
    }


      每一個FormBean 都必須繼承ActionForm類,F(xiàn)ormBean是對頁面請求的封裝。即把HTTP request 封裝

    在一個對象中,需要說明的一點就是多個HTTP request可以共用一個FormBean,便于維護(hù)和重用。

    ActionBean:RegUserAction


    package org.cjea.Struts.example;

    import javax.Servlet.http.*;
    import org.apache.Struts.action.*;

    public final class RegUserAction extends Action
    {

    public ActionForward perform(ActionMapping mapping,
    ActionForm form, HttpServletRequest req,
    HttpServletResponse res)
    {
    String title = req.getParameter("title");
    String password = req.getParameter("password");
    String email = req.getParameter("email");
    /*
    取得用戶請求,做相應(yīng)數(shù)據(jù)庫操作,略
    */
    }
    }


      FormBean的產(chǎn)生是為了提供數(shù)據(jù)給ActionBean,在ActionBean中可以取得FormBean中封裝的數(shù)據(jù),經(jīng)

    相應(yīng)的邏輯處理后,調(diào)用業(yè)務(wù)方法完成相應(yīng)業(yè)務(wù)要求。

      Servlet的演變:在常規(guī)的 JSP,Servlet,JavaBean三層結(jié)構(gòu)中,JSP實現(xiàn)View的功能,Servlet實現(xiàn)

    Controller的功能,JavaBean實現(xiàn)Model的實現(xiàn)。

      在Struts中,將常規(guī)情況下的Servlet拆分與ActionServlet、FormBean、ActionBean三個部分。

    ActionServlet配合Struts-config.xml,專職完成頁面導(dǎo)航,而不再負(fù)責(zé)具體的數(shù)據(jù)獲取與相應(yīng)邏輯,這

    兩部分功能由FormBean和ActionBean來完成。

    3.Struts優(yōu)缺點
      優(yōu)點:
      Struts跟Tomcat、Turbine等諸多Apache項目一樣,是開源軟件,這是它的一大優(yōu)點。使開發(fā)者能更

    深入的了解其內(nèi)部實現(xiàn)機(jī)制。
      除此之外,Struts的優(yōu)點主要集中體現(xiàn)在兩個方面:Taglib和頁面導(dǎo)航。Taglib是Struts的標(biāo)記庫,

    靈活動用,能大大提高開發(fā)效率。另外,就目前國內(nèi)的JSP開發(fā)者而言,除了使用JSP自帶的常用標(biāo)記外,

    很少開發(fā)自己的標(biāo)記,或許Struts是一個很好的起點。
      關(guān)于頁面導(dǎo)航,我認(rèn)為那將是今后的一個發(fā)展方向,事實上,這樣做,使系統(tǒng)的脈絡(luò)更加清晰。通過

    一個配置文件,即可把握整個系統(tǒng)各部分之間的聯(lián)系,這對于后期的維護(hù)有著莫大的好處。尤其是當(dāng)另一

    批開發(fā)者接手這個項目時,這種優(yōu)勢體現(xiàn)得更加明顯。

      缺點:
      Taglib是Struts的一大優(yōu)勢,但對于初學(xué)者而言,卻需要一個持續(xù)學(xué)習(xí)的過程,甚至還會打亂你網(wǎng)頁

    編寫的習(xí)慣,但是,當(dāng)你習(xí)慣了它時,你會覺得它真的很棒。
      Struts將MVC的Controller一分為三,在獲得結(jié)構(gòu)更加清晰的同時,也增加了系統(tǒng)的復(fù)雜度。
      Struts從產(chǎn)生到現(xiàn)在還不到半年,但已逐步越來越多運(yùn)用于商業(yè)軟件。雖然它現(xiàn)在還有不少缺點,但

    它是一種非常優(yōu)秀的J2EE MVC實現(xiàn)方式,如果你的系統(tǒng)準(zhǔn)備采用J2EE MVC架構(gòu),那么,不妨考慮一下

    Struts。

    4.Struts實施經(jīng)驗:
      1)、基于Struts架構(gòu)的項目開發(fā),首先需要有一個很好的整體規(guī)劃,整個系統(tǒng)中包括哪幾個模塊,每

    個模塊各需要多少FormBean和ActionBean等,而且最好有專人負(fù)責(zé)Struts-config.xml的管理。開發(fā)基于

    Struts的項目的難點在于配置管理,尤其是對Struts-config.xml的管理。

      2)、如果你的項目非常緊,并且項目組中又沒有富有經(jīng)驗的Struts開發(fā)人員,建議不要冒然采用

    Struts。Struts的掌握需要一個過程,對于一個熟練的JSP程序員,自學(xué)大概需要半個月左右的時間。如

    果結(jié)合titls,則需要更長的時間。

      3)、如果你在網(wǎng)頁中大量運(yùn)用taglib,那么你的美工將做出部分犧牲。當(dāng)你結(jié)合Tiles,功能增強(qiáng)的

    同時,這種犧牲尤為明顯。當(dāng)然,你對功能和美觀的取舍由你自己決定。

      4)、Taglib是一個好東西,但靈活運(yùn)用它卻需要一個過程,如果你不想在Taglib上花太多的時間,那

    么只需理解與FORM有關(guān)的幾個標(biāo)記,其它的標(biāo)記就放著吧,以后再看,先去研究ActionServlet和Struts

    -config.xml,你會覺得很有成就感。

      5)、Struts是否只適合于大型項目呢?No!Struts適合于各種大小的項目,當(dāng)然,對于大型項目,它

    所體現(xiàn)出來的優(yōu)勢更加明顯。

    posted @ 2006-03-20 16:04 氓氓 閱讀(1820) | 評論 (0)編輯 收藏

    僅列出標(biāo)題
    共2頁: 上一頁 1 2 
    主站蜘蛛池模板: 在线观看无码的免费网站| 国产精品亚洲产品一区二区三区| 国内精品乱码卡1卡2卡3免费 | 鲁死你资源站亚洲av| 色婷婷7777免费视频在线观看| 在线观看无码AV网站永久免费| 久久青青草原亚洲av无码app| 欧美色欧美亚洲另类二区| 日韩高清免费观看| 理论亚洲区美一区二区三区 | 国产自国产自愉自愉免费24区| 最近最新中文字幕完整版免费高清| 亚洲一区二区三区不卡在线播放 | 国产成人精品亚洲一区| 免费在线观看亚洲| a高清免费毛片久久| 日本免费一二区在线电影| 亚洲AV第一成肉网| 亚洲AⅤ视频一区二区三区 | 西西人体大胆免费视频| 日本成年免费网站| 亚洲AV无码一区二区三区网址| 国产精品免费一级在线观看| 水蜜桃视频在线观看免费| 亚洲va久久久噜噜噜久久天堂| 99视频免费播放| 亚洲成AV人片天堂网无码| 中文字幕免费在线观看| 国产av无码专区亚洲av桃花庵| 99精品视频在线视频免费观看| 亚洲中文字幕无码爆乳app| 九月婷婷亚洲综合在线| 国产精品区免费视频| 日韩亚洲国产综合高清| 成人无遮挡裸免费视频在线观看| 午夜在线亚洲男人午在线| 久久亚洲精品AB无码播放| 我想看一级毛片免费的| 中国一级特黄的片子免费 | 国产国拍亚洲精品福利| 最近在线2018视频免费观看|