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

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

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

    Programmer

    追逐夢想的人
    隨筆 - 6, 文章 - 0, 評論 - 5, 引用 - 0
    數據加載中……

    2007年4月10日

    部署spring2.56中的例子jpetstore

    部署環境:tomcat6.0.18   jdk5   mysql5.1

    1.   下載  到www.springsource.org/download 中 下載spring-framework-2.5.6.SEC01-with-dependencies
    2.   jpetstores說明(自己翻譯jpetstore中的readme.txt,本人英語不好 ,翻譯不到位請手下留情)
         配備spring管理的中間層和ibatis作為數據訪問策略數據層,與spring的事務 和抽象DAO相結合。能使用本地的JDBC或者JTA 和2個數據庫中的后者一起工作
         使用了相同的數據模型和演示內容來作為jpetstore的原型,可以分別的查看 "WEB-INF/dataAccessContext-local.xml","WEB-INF/dataAccessContext-jta.xml"
         上下文定義的細節。
         提供了相同的用戶界面兩種不同的Web層實現,一個基于spring mvc,一個基于struts1.1,后者與jpetstore關系密切,但是用JSTL重寫作為jsp的實現,
         盡可能的具有可比性。查看"WEB-INF/web.xml", "WEB-INF/petstore-servlet.xml",and "WEB-INF/struts-config.xml" 的細節。
         與原來的jpetstore原型相比,這個實現在內部結構和松耦合方面有了顯著的改善。支持的應用上下文的概念,現在核心就是構建 應用對象(application objects)
         最顯著的改善就是 PetStoreLogic,現在叫做PetStoreFacade,它不再與配置,資源,事務的細節相關
         注意以spring為基礎的web層實現是故意與以struts為基礎的相似并不是打算改進錯誤信息等方面的現狀。jpetstore包含2個不同實現的web層來概括除了不同
         之外在各自程序設計模型的相同點,也闡明不同風格的配置。
         這個版本的jpetstore也展示了spring遠程處理的可選項 如:Hessian, Burlap, RMI, and Web Services via Apache Axis.他們都提供了即插即用通過
         默認的web應用(注意RMI是添加注釋避免與EJB容器沖突)“客戶端”目錄包含了一個通過所有協議調用OoderService輸出的簡單控制行客戶端。
    3.   部署
    • 創建數據庫  先創建數據庫 執行\jpetstore\db\mysql里面 jpetstore-mysql-schema.sql,jpetstore-mysql-dataload.sql 用來建表和導入數據(不同數據庫自己對應查找)
    • 改數據庫配置文件  在\jpetstore\war\WEB-INF  修改jdbc.properties(自己對應自己的設置)
      1 jdbc.driverClassName=com.mysql.jdbc.Driver
      2 jdbc.url=jdbc:mysql://localhost/jpetstore?
      3 jdbc.username=root
      4 jdbc.password=root
      5 
    • web層實現的選擇  在\jpetstore\war\WEB_INF   web.xml代碼
      <servlet-mapping>
               
      <!--使用spring mvc默認 -->
          
      <servlet-name>petstore</servlet-name>
              
      <!--使用struts -->
      <!--<servlet-name>action</servlet-name>-->
          
      <url-pattern>*.do</url-pattern>
      </servlet-mapping>
    • 部署 /jpetstore 運行warfile.bat 生成一個文件夾dist 把里面的jpetstore.war復制到 tomcat目錄下的webapps  ,把對應的數據庫驅動放到tomcat\lib下
    • 運行tomcat 打開瀏覽器http://localhost:8080/jpetstore 可以看到jpetstore頁面  have fun!



    posted @ 2010-03-24 13:43 霜の哀傷 閱讀(1780) | 評論 (2)編輯 收藏

    java學習筆記(xml解析)

    最近學習xml,把學習的代碼發上來   希望對新手有用
    這是note.xml
    <?xml version="1.0" encoding="gb2312" ?> 
    <notes>
    <note date="2007-4-12">
    <from>小紅</from> 
    <to>小林</to> 
    <message>周末一起去吃火鍋呀</message> 
    </note>
    </notes>

    這是dom解析xml代碼
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.io.InputStream;

    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
    import javax.xml.parsers.ParserConfigurationException;

    import org.w3c.dom.Document;
    import org.w3c.dom.Element;
    import org.w3c.dom.Node;
    import org.w3c.dom.NodeList;
    import org.xml.sax.SAXException;


    class  DomXMLTest
    {
        
    public static void main(String[] args)
        {   
            
    try{
             
    //(1)得到DOM解析器的工廠實例
            DocumentBuilderFactory factory =DocumentBuilderFactory.newInstance();     
              
    //(2)從DOM工廠獲得DOM解析器
            DocumentBuilder  builder=factory.newDocumentBuilder(); 
            File f
    =new File("note.xml");
             
    //(3)把要解析的XML文檔轉化為輸入流,以便DOM解析器解析它
            InputStream  is=new FileInputStream(f);  
            
    //(4)解析XML文檔的輸入流,得到一個Document
            Document doc=builder.parse(is);    
            
    //(5)得到XML文檔的根節點
            Element  root=doc.getDocumentElement(); 
             
    //(6)得到節點的子節點
            NodeList  notes=root.getChildNodes();   

              
    for(int i=0;i<notes.getLength();i++)
              {
                   Node note
    =notes.item(i);
                
    if(note.getNodeType()==Node.ELEMENT_NODE)
                    {  
                        
    //(7)取得節點的屬性值
                        String date =note.getAttributes().getNamedItem("date").getNodeValue(); 
                        System.out.println(date);
                        
    // (8)輪循子節點
                        for(Node node=note.getFirstChild();node!=null;node=node.getNextSibling()) 
                             {
                                    
    if(node.getNodeType()==Node.ELEMENT_NODE)
                                         {
                                                
    if(node.getNodeName().equals("from"))
                                                {
                                                     String from
    =node.getFirstChild().getNodeValue();
                                                     System.out.println(from);
                                                 }
                                                
    if(node.getNodeName().equals("to"))
                                                 {
                                                      String to
    =node.getFirstChild().getNodeValue();
                                                       System.out.println(to);
                                                 }
                                                 
    if(node.getNodeName().equals("message"))
                                                 {
                                                       String message
    =node.getFirstChild().getNodeValue();
                                                       System.out.println(message);
                                                  }
                                          }
                               }
                      }

            }
            }
            
    catch(ParserConfigurationException e)
            {
                e.printStackTrace();
            }
            
    catch(SAXException e)
            {
                e.printStackTrace();
            }
            
    catch(IOException e)
            {
                e.printStackTrace();
            }
         }                                  
    }

    還有 出現 下面的錯誤  是xml的格式不對 ,我就應為在 <?xml 前面多個空格 就找了好幾天的錯誤
    特別感謝那些幫我找問題的高手,用范偉的話說  謝謝啊
    The processing instruction target matching "[xX][mM][lL]" is not allowed.




    posted @ 2007-04-13 18:08 霜の哀傷 閱讀(439) | 評論 (1)編輯 收藏

    學習筆記(java中的io操作)

    (1)File的操作
    import java.io.File;
    import java.io.IOException;
    class FileDemo{
     
    public static void main(String args[]){
      
    try{
       File f
    =new File("file1.txt");
       
       System.out.println(
    "文件是否存在: "+f.exists());
         
    if(!f.exists())
          {    
               System.out.println(
    "文件不否存在,開始創建!");
               f.createNewFile();
          }
       System.out.println(
    "文件是否存在: "+f.exists());
       System.out.println(
    "是文件嗎: "+f.isFile());
       System.out.println(
    "是文件夾嗎: "+f.isDirectory());   
       System.out.println(
    "可否讀取文件: "+f.canRead);
       System.out.println(
    "可否修改文件: "+f.canWrite());
       System.out.println(
    "是否隱藏: "+f.isHidden());
       System.out.println(
    "文件名稱: "+f.getName());
       System.out.println(
    "標準文件名: "+f.getCanonicalFile()); 
       System.out.println(
    "相對路徑: "+f.getPath());  
       System.out.println(
    "絕對路徑: "+f.getAbsolutePath());
       System.out.println(
    "標準路徑: "+f.getCanonicalPath());
       System.out.println(
    "最后修改時間: "+f.lastModified());
       System.out.println(
    "文件大小: "+f.length()+" 字節");        
      } 
      
    catch(IOException ex){
       ex.printStackTrace();
      }   
     }
    }

    (2)簡單文件讀寫
    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.FileWriter;
    import java.io.FileReader;
    import java.io.IOException;
    import java.io.File;
    class test{
     
    public static void main(String args[]){
      
    try{
       File f
    =new File("file1.txt");
       
    if(!f.exists())
          {
               f.createNewFile();
          }
       FileWriter fw
    =new FileWriter(f);
       BufferedWriter bw
    =new BufferedWriter(fw);
       bw.write(
    "大家好,我正在學習Java");
       bw.newLine();
       bw.write(
    "請多多指教");
       System.out.println(
    "file1.txt寫入成功!***************開始讀..\n");
       bw.flush();
       bw.close();
       
       FileReader fr
    =new FileReader("file1.txt");
       BufferedReader br
    =new BufferedReader(fr);
       String temp
    =null;
       
    do{
        temp
    =br.readLine();
        System.out.println(temp
    ==null?"":temp);
       }
       
    while(temp!=null);
       fr.close();
       br.close();
       
       System.out.println(
    "file1.txt已經讀完!*************");
      }
      
      
    catch(IOException ex){
       ex.printStackTrace();
      }   
     }
    }


    (3)分隔符讀取
    import java.io.File;
    import java.io.FileWriter;
    import java.io.FileReader;
    import java.io.BufferedWriter;
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.util.StringTokenizer;
    class StringTokenizerTest
    {
        
    public static void main(String[] args) 
        {   
            
    try{
                     File f
    =new File("file1.txt");
                     
    if(!f.exists())
                    {
                       f.createNewFile();
                    }
                    FileWriter fw
    =new FileWriter(f);
                    BufferedWriter bw
    =new BufferedWriter(fw);
                    bw.write(
    "小明,男,1980-1-1,13624577654");
                    bw.newLine();
                    bw.write(
    "小強,男,1984-2-1,13634375634");
                    bw.newLine();
                    bw.write(
    "小紅,女,1986-1-5,13724777774");
                    System.out.println(
    "數據寫入成功!");
                    bw.flush();
                    bw.close();

                    FileReader fr
    =new FileReader(f);
                    BufferedReader br
    =new BufferedReader(fr);
                    String s
    =null;
                    
                    
    while  ((s  =br.readLine())!=  null)  
                    {  
                         StringTokenizer  st  
    =  new  StringTokenizer(s,",");  
                         System.out.println(s  
    ==  null?" " : s);  
                         
    while  (st.hasMoreTokens())  {  
                           String  name  
    =  st.nextToken();  
                           String  sex  
    =  st.nextToken();  
                           String  birthday  
    =  st.nextToken();  
                           String  tel  
    =  st.nextToken();  
                           System.out.println(  
    "姓名:  "  +  name);  
                           System.out.println(  
    "性別:  "  +  sex);  
                           System.out.println(  
    "生日:  "  +  birthday);  
                           System.out.println(  
    "電話:  "  +  tel);  
                           System.out.println(  
    "_______________________________  ");  
                              }  
                    }   
                    
    while(s!=null);
                    fr.close();
                    br.close();          
               }
               
    catch(IOException e){
                   e.printStackTrace();
             }
        }
    }



    posted @ 2007-04-10 23:53 霜の哀傷 閱讀(1261) | 評論 (0)編輯 收藏

    主站蜘蛛池模板: 亚洲一区精品无码| 国产a v无码专区亚洲av| 亚洲成年人电影网站| 秋霞人成在线观看免费视频| 国产亚洲精品无码拍拍拍色欲| 黄色毛片免费在线观看| 亚洲国产人成中文幕一级二级| 曰批全过程免费视频观看免费软件| 免费一级毛片在播放视频| 免费国产黄网站在线看| 亚洲国产成人久久综合区| 一个人看的www免费高清| 中文字幕亚洲一区二区va在线| 97国免费在线视频| 久久久久亚洲AV无码永不| 免费专区丝袜脚调教视频| 亚洲最大中文字幕无码网站 | 亚洲国产av美女网站| 免费可以在线看A∨网站| 麻豆亚洲AV成人无码久久精品| 国产一级特黄高清免费大片| 成人特级毛片69免费观看| 久久夜色精品国产嚕嚕亚洲av| 足恋玩丝袜脚视频免费网站| 亚洲日韩AV无码一区二区三区人 | 亚洲精品无码久久毛片| a级午夜毛片免费一区二区| 91亚洲一区二区在线观看不卡| 色窝窝免费一区二区三区| 三级片免费观看久久| 亚洲日本va午夜中文字幕一区| 好吊妞在线新免费视频| 一区在线免费观看| 中文字幕无码毛片免费看| 亚洲日本在线播放| xvideos亚洲永久网址| 十九岁在线观看免费完整版电影| 国产精品亚洲片在线va| 在线观看亚洲av每日更新| 免费阿v网站在线观看g| 国产精品九九久久免费视频|