隨筆 - 20  文章 - 57  trackbacks - 0
          <2010年12月>
          2829301234
          567891011
          12131415161718
          19202122232425
          2627282930311
          2345678

          常用鏈接

          留言簿(2)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          51CTO

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          MVC

          MVC

          MVC含義

          一種軟件構架,簡單的說就是在做軟件的時候,可以將軟件分為不同的模塊,不同的模塊實現了不同功能。

          MVC 組成部分

          Model 模型

          View 視圖

          Controller 控制器 

          MVC就是三種組成部分的縮寫。

          MVC 不同模塊的功能

          Model(模型層) 程序員編寫程序應用的功能,數據庫設計等。屬于后臺操作。

          View (視圖層) 前臺界面,也就是用戶可以看到的圖形見面,一般在web中是一些*.jsp*.html

          Controller(控制器) 處理前臺和后臺請求。

          MVC 優點

          采用MVC的優點太多了,說再多不如你在真正的項目中自己體會,在這里不做太多解釋。

          MVC 包結構




          雖然,這并不能說明所有MVC框架所有的包模式,不過我覺得新手對于這個包結構還是比較容易接受的。

          DAO  模式

          DAO層,最主要的作用是:完成數據的操作。在這層,你可以完成對任何表的數據操作,不過個人認為DAO層最大的作用是簡單了編程人員的編程邏輯,簡單的說就是將一個大的問題,分成了幾個比較小的問題,這樣不管在測試還是在維護都起著很大的方便。

          Factory  工廠

          Factory 工廠在這里也可以說成是DAO的工廠,這里Factory僅僅產生了DAO。那么Factory工廠模式有什么好處呢?

          MVC中的Factory 層,你完全可以把它想象成現實中的工廠,生產某些東西,如果在程序中使用工廠模式,你可以簡化編程代碼,相當與現實中你需要某個產品不需要自己去生產,完全可以去工廠“拿”一個,這樣程序的編程更加符合現實中的邏輯。

          MVC  總結

          本節,我僅僅是將MVC的編輯思想簡單的介紹了一下,我沒有加入一些詳細的例子,因為我覺得你在接觸MVC的時候,最好先了解MVC的編程思想,如果你要了解MVC的編程思想之后,你再接觸MVC的編程時,你就會覺得特別簡單。

          最后,希望我這篇文章可以讓大家簡單的了解MVC的編程模式。

          posted @ 2011-01-25 09:30 tovep 閱讀(2198) | 評論 (9)編輯 收藏
               摘要: ForEach小結            <c:forEach>標簽具有以下一些屬性:              var:迭代參數的名稱。在迭代體中可以使用...  閱讀全文
          posted @ 2011-01-24 08:37 tovep 閱讀(2371) | 評論 (0)編輯 收藏

          通過以下Servlet程序和web.xml來說明web.xml的配置以及過程


          創建一個Login的HTML文件



          <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
          <html>
            <head>
              <title>login.html</title>
             
              <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
              <meta http-equiv="description" content="this is my page">
              <meta http-equiv="content-type" content="text/html; charset=UTF-8">
           
           </head>
            <body>
              <form action="test1" method="post">
                <table border="0" width="379" height="79">
                  <tr>
                    <td>帳號:</td>
                    <td><input type="text" name="username"></td>
                  </tr>
                  <tr>
                    <td>密碼:</td>
                    <td><input type="password" name="password"></td>
                  </tr>
                  <tr>
                    <td colspan="5" align="center"><input type="submit" value="登錄"></td>
                  </tr>
                </table>
              </form>
            </body>
          </html>



          以上HTML標簽中要說明的是:
          <form>標簽中的 action="test_Web_xml" 和 method="post" 分別定義了Html將登陸的信息發送給了誰,以及發送信息的方法!


          創建一個Servlet程序

          public class LoginServlet extends HttpServlet{
             
              public void doPost(HttpServletRequest request, HttpServletResponse response)
                  throws ServletException, IOException {
                  String username = null;
                  username = request.getParameter("username");
                  String password = null;
                  password = request.getParameter("password");
                 
                  if(username.equals("username")&&password.equals("password")){
                      request.getRequestDispatcher("成功登陸!!!").forward(request,response);
                  }else{
                      request.getRequestDispatcher("登陸失敗!!!").forward(request,response);   
                  }
              }
          }



          web.xml配置


          <?xml version="1.0" encoding="UTF-8"?>
          <web-app version="2.5"
              xmlns="http://java.sun.com/xml/ns/javaee"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
              http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
            
             
              <servlet>
                <servlet-name>
                Login
                </servlet-name>
               
                <servlet-class>
                  com.rise.LoginServlet
                  </servlet-class>
               </servlet>
           
           
               <servlet-mapping>
                <servlet-name>
                 Login
                </servlet-name>
                <url-pattern>
                /test1

                </url-pattern>

               </servlet-mapping>
             
             
             
            <welcome-file-list>
              <welcome-file>index.jsp</welcome-file>
            </welcome-file-list>
          </web-app>



          我理解web.xml的作用就是將頁面和后臺程序正確連接!!!



          通過一張圖片說明我理解的web.xml的作用






          以上的內容是我自己對web.xml的理解,我覺得很簡單,但真正寫程序的時候部署程序是非常復雜的!

          posted @ 2010-12-11 20:43 tovep 閱讀(6314) | 評論 (2)編輯 收藏
             

          什么是JDBC

          JDBC是由一組Java語言編寫的類和接口組成,用來處理關系數據庫!利用JDBC的API,可用Java語法去訪問各種各樣的SQL數據庫。
          個人認為:
          把JDBC當做是一門連接Java程序連接數據庫的技術不如把JDBC當做連接程序和數據庫的橋梁。

          以下我要寫的例子是用純Java的Driver來連接數據庫的方式。連接的數據庫是mysql。


          JDBC編程步驟


                 1.加載數據庫驅動(jar文件)
                      //需要下載一個數據庫的jar包,并導入相應的JDBC項目中,創建路徑!
                      Class.forName("com.mysql.jdbc.Driver");
                
                 2.獲得數據庫連接
                      DriverManager.getConnection("jdbc:mysql://Database_IP:3306/DATABASE","DATAROOT","PASSWORD");//返回Connection————獲得數據庫連接
                 
                 3.創建語句
                      String sql = "SQL_TORUNNING";
                      向DATABASE發送一個執行語句
                      Statement stmt = conn.createStatement();//創建一個 Statement 對象來將 SQL 語句發送到數據庫.
                           Statement—————SQL_RUNNING!!!
                
                 4.執行查詢
                      ResultSet rs = Statement.executeQuery(SQL_RUNNING);//執行SQL_RUNNING命令,返回ResultSet
                      //如果執行的數據庫語句不是對數據庫中的內容進行修改的話,則用 Statement.executeQuery()
                      //如果執行的數據庫語句是修改數據庫中的內容進行修改的話,則用 Statement.executeUpdate()
                      //當然他們返回值的類型也不同!
                          //根據命令的不同Statement的方法也不同
                            
                              創建一個表      
                              Statement.execute(create a table)
                             
                              增刪改查Insert、update、delete...
                              Statement.executeUpdate()
                            
                              查詢語句Select
                              Statement.executeQuery(Select);
                            
                 5.遍歷結果集
                      while(ResultSet.next()){
                          ResultSet.getInt(int);
                          ResultSet.getString(int);
                          ......
                      }
                 
                 
                 6.關閉數據庫連接
                         Connection.close();
               
                

          步驟分析


          (圖一)


          1.加載數據庫驅動

                  
                   我們來看圖一,工廠和幾個農村之間有一條河,不能夠直接進行溝通,工廠就相當于一個Java程序,而幾個農村就相當于不同的數據庫;
                   工廠為B村生產一些材料,但是生產出來之后并不能直接交給B村,然后工廠的廠長就想在工廠和B村之間架設一座橋梁來運送生產出來的材料——我們大可把數據庫驅動加載當做這個架設橋梁的想法。


                   在程序中我們要怎么做呢?   
                   在加載數據庫驅動的時候,必須要將相應的mysql-connector-java-5.0.4-bin.jar包,然后將jar包導入相應的項目中如下圖
                  
                   在mysql-connector-java-5.0.4-bin.jar右擊建立路徑,就相當于import的過程——我不確定這么說對不對,但我是這么理解的。
                   建立路徑后,你的項目將出現一個新的文件,如下圖
                  
                   這樣的話,你就可以順利加載數據庫驅動,否則當你在運行的時候會出現找不到Driver.class的異常,也就是無法加載數據庫驅動。
                       Class.forName("com.mysql.jdbc.Driver");



          2.獲得數據庫連接

                  
                   既然廠長有想法和B村之間架設一座橋梁,那就要和B村商量一下啊!然后,廠長就要去河的對岸,那條河呢?就是在工廠和B村之間的那條河(這條河就相當于Database_IP),然后去找B村的村長(在這里要明白是B村的村長不是A村的,所以不能找錯了!!!),找到B村村長,“我要在工廠和B村之間建設一座橋,來運輸我們的東西”,下一步談的當然是條件了,工廠老板說“我要B村出資90%,剩下的由工廠出!!”村長當然不干了,這橋當然也就沒法建設了!!!所以只有當兩者都滿意的情況下才可以建設橋梁(比如,各處50%)其實談條件的過程就相當于驗證數據庫的"DATAROOT"和"PASSWORD"!!!只有兩者都正確的情況下才可以進行下一步的計劃——也就是建設橋梁!!!

                   在程序中的過程如下:
                   Connection conn = null;
                   conn = DriverManager.getConnection("jdbc:mysql://Database_IP:3306/DATABASE","DATAROOT","PASSWORD");
                   //返回Connection————獲得數據庫連接


          3.創建語句


                   橋已經建好了,然后工廠要準備一些卡車來運輸生產的貨物,然后農村需要根據不同的貨物來處理這些貨物,有些貨物直接卸在B村就可以了,但有些貨物卸在B村之后,B村要做一些處理然后運回工廠!!!
                 
                   這個過程在程序是怎么體現的呢?
                   String sql = "SQL_TORUNNING";
                   向DATABASE發送一個執行語句
                   Statement stmt = conn.createStatement();//創建一個 Statement 對象來將 SQL 語句發送到數據庫.
                   Statement—————SQL_RUNNING!!!


          4.處理數據庫發送來的消息

                   如果工廠運輸到B村的貨物,只要B村的村長給工廠開一張條就行了;但也會有一些貨物需要運回工廠!!

                   在程序中:
                   ResultSet rs = Statement.executeQuery(SQL_RUNNING);//執行SQL_RUNNING命令,返回ResultSet
                   //如果執行的數據庫語句不是對數據庫中的內容進行修改的話,則用 Statement.executeQuery()——需要返回一些貨物
                   //如果執行的數據庫語句是修改數據庫中的內容進行修改的話,則用 Statement.executeUpdate()——開張條就行了
                   //當然他們返回值的類型也不同!
                   //根據命令的不同Statement的方法也不同
                            
                           創建一個表      
                           Statement.execute(create a table)
                             
                           增刪改查Insert、update、delete...
                           Statement.executeUpdate()
                            
                           查詢語句Select
                           Statement.executeQuery(Select);
                            


          5.處理數據庫傳回的內容


                  這個過程由工廠完成,如果是返回的一些貨物的話,工廠要做一些處理。
           
                  處理的過程:
                          while(ResultSet.next()){
                          ResultSet.getInt(int);
                          ResultSet.getString(int);
                          ......
                      }

          6.關閉數據庫

                  這樣的話,工廠和B村的交易就完成,在現實世界中工廠和B村之間的橋梁不會被拆除,因為建一座橋的代價很大,但在程序和數據庫之間架設一座橋梁簡直太簡單了,所以在這里我們要把這座橋梁拆除。

                  Connection.close();




          簡單的舉了一個例子來說明數據庫和程序之間是怎么連接的,望對大家有所幫助。








          posted @ 2010-12-09 18:37 tovep 閱讀(1676) | 評論 (1)編輯 收藏
          主頁
          主站蜘蛛池模板: 农安县| 普宁市| 蒙山县| 游戏| 博湖县| 兴宁市| 通榆县| 白沙| 苏尼特左旗| 镇安县| 金秀| 伊金霍洛旗| 陆河县| 博白县| 华宁县| 渝中区| 甘洛县| 毕节市| 韶关市| 屏南县| 宁城县| 武邑县| 龙陵县| 施甸县| 利辛县| 图片| 普定县| 香河县| 三原县| 池州市| 桐梓县| 高碑店市| 田东县| 内丘县| 新干县| 汉阴县| 佛学| 徐州市| 三台县| 宁南县| 犍为县|