導(dǎo)航

          <2025年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          隨筆分類

          隨筆檔案

          2005年8月12日

               摘要: 今天看了一天原來(lái)他們寫(xiě)的代碼,越看越郁悶,主要是沒(méi)有設(shè)計(jì)文檔,而且里面很多被舍棄的功能,但是代碼沒(méi)有去掉,而且也沒(méi)有寫(xiě)注釋,不知道干什么用的,也許是我太菜了吧?簡(jiǎn)單分析一下這個(gè)模塊的代碼吧模塊名稱叫“信息簡(jiǎn)報(bào)  ”,功能包括五個(gè)部分:信息接受,信息發(fā)送,分類管理,組管理,權(quán)限配置。其中用戶部分會(huì)用到公共模塊,日志部分就是直接使用System.out.pring通過(guò)JBOSS輸出...  閱讀全文
          posted @ 2005-08-12 13:24 恏人 閱讀(353) | 評(píng)論 (0)編輯 收藏

          2005年8月11日

               摘要: 今天老大給了我一個(gè)任務(wù),要我一個(gè)星期之內(nèi)看懂一個(gè)模塊的代碼。打開(kāi)第一個(gè)類就遇到了JDBC,數(shù)據(jù)庫(kù)還是Oracle,2個(gè)都不懂,只好先學(xué)習(xí)一下JDBC這個(gè)東西JDBCTM 是一種用于執(zhí)行 SQL 語(yǔ)句的 JavaTM API(有意思的是,JDBC 本身是個(gè)商標(biāo)名而不是一個(gè)縮寫(xiě)字;然而,JDBC常被認(rèn)為是代表 “Java ...  閱讀全文
          posted @ 2005-08-11 13:16 恏人 閱讀(651) | 評(píng)論 (0)編輯 收藏

          2005年8月10日

          從今天開(kāi)始,我準(zhǔn)備把GOF的23種設(shè)計(jì)模式重新學(xué)習(xí)一下,并且用Java語(yǔ)言全部描述一次。

          Abstract Factory(抽象工廠)      對(duì)象創(chuàng)建型模式
          提供一個(gè)創(chuàng)建一系列相關(guān)或相互依賴對(duì)象的接口,而無(wú)需指定它們具體的類。 

          posted @ 2005-08-10 23:13 恏人 閱讀(217) | 評(píng)論 (0)編輯 收藏

          2005年8月9日

              今天把Structs和EJB稍微了解了一下。
             Structs是apache 組織jakarta 項(xiàng)目的一個(gè)子項(xiàng)目,用以改善 web 系統(tǒng)的結(jié)構(gòu),是一個(gè)基于J2EE的Web形式MVC模式實(shí)現(xiàn)。Structs是由一組類、Servlet和Taglib組成。Structs有其自己的控制器(Controller),基本組件是ActionServlet中定義的Servlet,由ActionMapping定義的,ActionMapping類表示的是Action對(duì)象的名字和位置。當(dāng)一個(gè)請(qǐng)求進(jìn)入控制器時(shí),它將請(qǐng)求的路徑映射到Action的位置,并且將請(qǐng)求傳送給Action。Structs另外一個(gè)重要部分是標(biāo)簽(TagLib),主要由頁(yè)面制作人員使用。
              EJB(Enterprise JavaBean ) 是設(shè)計(jì)成運(yùn)行在服務(wù)器上,并由客戶機(jī)調(diào)用的非可視遠(yuǎn)程對(duì)象。可通過(guò)多個(gè)非可視 JavaBean 構(gòu)建 EJB。它們有一個(gè)部署描述符,其目的與 JavaBean 屬性相同:它是以后可由工具讀取的 bean 的描述。EJB 還獨(dú)立于平臺(tái),一旦編寫(xiě)好,還可以在任何支持 Java 的平臺(tái)(包括客戶機(jī)和服務(wù)器)上使用。
          j2ee.png
               如果不使用EJB,在EJB服務(wù)層實(shí)現(xiàn)的業(yè)務(wù)核心將由普通JavaBeans實(shí)現(xiàn),不能很好的保證負(fù)責(zé)MVC的JavaBeans和負(fù)責(zé)業(yè)務(wù)核心的JavaBeans清晰地分開(kāi)。
               采用EJB,Web完全只是一個(gè)MVC模式的實(shí)現(xiàn),關(guān)鍵業(yè)務(wù)核心是在EJB的服務(wù)層實(shí)現(xiàn),這樣做的優(yōu)點(diǎn)是,Web只負(fù)責(zé)界面相關(guān)部分,因?yàn)椋绻且粋€(gè)智能客戶端,如Swing或J2ME,在不需要修改任何業(yè)務(wù)核心的情況下能夠方便地更換。同樣,提供Web Services功能,也只是在 Web層修改,不會(huì)涉及EJB方面的修改,同樣保證了系統(tǒng)的穩(wěn)定性,保證了系統(tǒng)升級(jí)和未來(lái)的擴(kuò)展性。
              EJB容器(如JBoss)已經(jīng)提供了對(duì)象池和緩存機(jī)制,所以,沒(méi)有事務(wù)機(jī)制的無(wú)狀態(tài)Session Bean的性能肯定要強(qiáng)于普通JavaBeans。EJB容器不但在單機(jī)中提供了對(duì)象池和緩存,而且可以跨服務(wù)器實(shí)現(xiàn)動(dòng)態(tài)負(fù)載平衡,這些都無(wú)需開(kāi)發(fā)者自己開(kāi)發(fā)任何軟件代碼。
              EJB提供的事務(wù)機(jī)制非常周全,但事務(wù)機(jī)制帶來(lái)的缺點(diǎn)是性能的降低,在一般企業(yè)應(yīng)用或數(shù)據(jù)庫(kù)系統(tǒng)應(yīng)用中,EJB不會(huì)對(duì)你構(gòu)成很重的包袱。

          通過(guò)一天的學(xué)習(xí),雖然沒(méi)有寫(xiě)出Structs和EJB的實(shí)現(xiàn)代碼,但是基本上對(duì)這兩個(gè)東西有了初步的了解
          posted @ 2005-08-09 16:31 恏人 閱讀(198) | 評(píng)論 (0)編輯 收藏

          2005年8月8日

                為了第一天的上班,提前一個(gè)小時(shí)起床,準(zhǔn)備好了,順便吃了一個(gè)早餐(1年沒(méi)有吃過(guò)早餐了,感覺(jué)不錯(cuò))。左等右等終于等到XX路中巴,一群人擁過(guò)去,只上了2個(gè)人,剩下的都沒(méi)有上起,只能等下一輛,暈死,沒(méi)辦法打的吧
               好不容易提前一分鐘趕到公司,~_~開(kāi)發(fā)人員才來(lái)2個(gè)人(竊笑,我就喜歡這樣,原來(lái)我老遲到)。辦公室的人叫我等,我就等,誰(shuí)叫我是新來(lái)的呢。不知道什么時(shí)候有個(gè)人搬著一臺(tái)不知道是什么年代的古董顯示器進(jìn)了開(kāi)發(fā)室,不會(huì)就是我的電腦吧,雖然我不會(huì)JAVA,但是我搞開(kāi)發(fā)也有2年了,蒼天啊
               大概10點(diǎn)左右,被叫進(jìn)了經(jīng)理室,遞給我一份合同,說(shuō)要簽2年的賣身契。第一反應(yīng)就是這么久啊,我在原來(lái)的公司是一年一年的簽。經(jīng)理稍微解釋了一下,想想也是,無(wú)所謂了,到時(shí)候想跑照樣跑。翻翻合同,一條看起來(lái)不起眼的條款讓我蒙了,星期六居然要上班,我差點(diǎn)就拒絕簽了,經(jīng)理在一邊解釋說(shuō),那個(gè)不是上班,只是技術(shù)交流,有事情可以請(qǐng)假,欲哭無(wú)淚啊。
               出了經(jīng)理室,就感覺(jué)有被賣身的感覺(jué),總不是滋味。辦完相關(guān)手續(xù),把我?guī)У揭浑娔X旁邊,15的顯示器,我差點(diǎn)就叫起來(lái)了,那人忙解釋一下說(shuō),這個(gè)只是暫時(shí)的,新顯示器下午就到,汗~~~~,瞧瞧配置先,815EP的板子,C1.1G的CPU,512M的內(nèi)存,暈死,難道開(kāi)發(fā)Java這么低的配置也成
              下午配置了一下開(kāi)發(fā)環(huán)境,看到同事都在用一個(gè)WT  P的插件(一個(gè)創(chuàng)建、部署和調(diào)試 Geronimo 應(yīng)用程序的很基本的開(kāi)發(fā)環(huán)境),試試感覺(jué)還不錯(cuò),但是總是出現(xiàn)項(xiàng)目重新部署不上去的問(wèn)題?問(wèn)一同事也解決不了,看來(lái)還得用Lomboz了。剩下的時(shí)間看了一下JavaBean和Session編程
              JavaBean其實(shí)就是一些類,把業(yè)務(wù)邏輯從JSP中分離出來(lái)。在JSP中使用一個(gè)標(biāo)簽引用JavaBean,先通過(guò)<%@ page import="mypack.BookDB"%>導(dǎo)入JavaBean類,然后使用標(biāo)簽引用(<jsp:useBean id="bookDB" scope="application" class="mypack.BookDB" />),這個(gè)東西就相當(dāng)于BookDB bookDB = new BookDB,實(shí)例化一個(gè)類而已,在JSP可以直接使用這個(gè)類了(bookDB.Method();),后面的參數(shù)就更簡(jiǎn)單了,scope是范圍,包括:page, request, session, application,默認(rèn)屬性值是page。
             Session相對(duì)來(lái)說(shuō)要熟悉一些,是用來(lái)跟蹤用戶狀態(tài)的一個(gè)機(jī)制。在Servlet API中定義了javax.servlet.http.HttpSession接口。當(dāng)一個(gè)Session開(kāi)始時(shí),Servlet容器將創(chuàng)建一個(gè)HttpSession對(duì)象。默認(rèn)情況下,JSP網(wǎng)頁(yè)都是支持Session的,也可以通過(guò)顯示聲明支持Session:(<%@ page session="true"%>),最大的問(wèn)題就是當(dāng)客戶端禁止了Cookie就麻煩一些。需要重寫(xiě)客戶請(qǐng)求的URL,把Session ID添加到URL信息中。HttpServletResponse接口提供了重寫(xiě)URL的方法<a href="<%=response.encodeURL("next.jsp")%>">。Session的持久化我原來(lái)在.Net中沒(méi)有發(fā)現(xiàn)有這個(gè)功能(可能是我菜吧^_^)。需要配置FileStore、JDBCStore,現(xiàn)在暫時(shí)還用不上,以后在研究吧。
          posted @ 2005-08-08 23:57 恏人 閱讀(323) | 評(píng)論 (0)編輯 收藏

          2005年8月7日

                   終于看到JSP了,進(jìn)入實(shí)際應(yīng)用階段,我原來(lái)以為JSP跟ASP或者ASP.NET差不多,今天了解了一下,感覺(jué)不是那么回事。JSP是Java Server Page的縮寫(xiě),是Servlet的擴(kuò)展。書(shū)上解釋說(shuō):“在傳統(tǒng)的網(wǎng)頁(yè)HTML文件中加入Java程序片斷和JSP標(biāo)簽,就構(gòu)成了JSP網(wǎng)頁(yè)”
          jsp.JPG

                  看起來(lái)很簡(jiǎn)單,但是JSP語(yǔ)法都沒(méi)有看完就遇到問(wèn)題了:

          <% if(false){ %>
             She is a girl
          <% }else{  %>
             He is a boy.
          <%  }  %>
          結(jié)果是He is a boy,  這里有點(diǎn)不能夠理解,不知道JSP容器是怎么解釋的,暫時(shí)把“He is a boy”當(dāng)作一個(gè)字符串處理

          JSP語(yǔ)法:
          <%@   %>用來(lái)設(shè)置和整個(gè)JSP網(wǎng)頁(yè)相關(guān)的屬性,常用的由Page, include, taglib
          <%!     %>用于聲明JSP代表的Servlet類的成員變量和方法
          <%      %>用于直接嵌入任何有效的Java語(yǔ)言代碼
          <%=    %>用于顯示表達(dá)式的值,int或者float類型的值都自動(dòng)轉(zhuǎn)換成字符串加以顯示

          <%! int hitcount=1; %> 和<% int count=1; %>的區(qū)別?是類成員變量和局部變量的區(qū)別。在<%!  %>聲明中的都是類成員變量。

          隱含對(duì)象:
          使用這些對(duì)象的引用變量時(shí)不需要做任何變量聲明
          request            javax.servlet.HttpServletRequest
          reponse           javax.servlet.HttpServletResponse
          pageContext    javax.servlet.jsp.PageCntext
          application       javax.servlet.ServletContext
          out                  javax.servlet.jsp.JspWriter
          config              javax.ServletConfig
          page                java.lang.Object    (相當(dāng)于Java中的this關(guān)鍵字)  
          session            javax.servlet.http.HttpSession
          exception         java.lang.Exception

          JSP與Cookie:只要客戶端不禁止,使用很簡(jiǎn)單
                   Cokie[] cookies = request.getCookies();
                   cookies[0].getName;
                   cookies[0].getValue();
                   cookies[0].setMaxAge(30);
                   cookies[0].getMaxAge();
                   response.addCookie(new Cookie("cookieName", "cookieValue"));

          JSP轉(zhuǎn)發(fā)請(qǐng)求:
                <jsp:forward page="重新定向的文件" />
          如果在a.jsp中,a.jsp請(qǐng)求轉(zhuǎn)發(fā)給b.jsp,   a.jsp所有的數(shù)據(jù)輸出都無(wú)效;此外a.jsp和a.jsp共享同一個(gè)HttpRequest對(duì)象,因此b.jsp可以通過(guò)request.getParameter("name")方法讀取請(qǐng)求參數(shù)

          JSP異常處理:
               JSP異常處理是針對(duì)每個(gè)頁(yè)面的,不知道能不能在Web.xml中配置,讓所有頁(yè)面的異常處理指向通一個(gè)頁(yè)面(應(yīng)該有,只是我不知道而已^_^),每個(gè)頁(yè)面都去設(shè)置errorpage感覺(jué)很麻煩。
              <%@ page errorPage="errorpage.jsp"  %>
              <%@ page isErrorPage="true" %>默認(rèn)為true
          在處理異常的網(wǎng)頁(yè)中可以直接訪問(wèn)exception隱含對(duì)象:<%=exception.getMessage() %>   <% exception.printStackTrace(new PrintWriter(out));%>在異常處理頁(yè)面中也是共享一個(gè)HttpRequest對(duì)象,應(yīng)此也可以使用<%=request.getParameter("name");%>



          今天就學(xué)這么一點(diǎn)點(diǎn),玩會(huì)兒wow先^_^

          posted @ 2005-08-07 17:03 恏人 閱讀(250) | 評(píng)論 (0)編輯 收藏
                  昨天了解了一下Servlet技術(shù),感覺(jué)就是一套服務(wù)器組件,跟ASP.Net的服務(wù)器控件類似,只要繼承HttpServlet抽象類就可以了。
          Servlet.JPG
                   Http的請(qǐng)求方式包括Delete,Get,Options,Post,Put和Trace,在HttpServlet類中分別提供了相應(yīng)的方法,它們是doDelete(), doGet(),doOptions(),doPost(),doPut()和doTrace()。
                   Servlet容器是否在啟動(dòng)時(shí)自動(dòng)裝載Servlet,這是由在Web.xml中為Servlet設(shè)置的<load-on-startup>屬性決定的(慢慢感覺(jué)到了java的配置多起來(lái)了)。
          posted @ 2005-08-07 15:36 恏人 閱讀(183) | 評(píng)論 (0)編輯 收藏

                   在家休息了一個(gè)月,2年的.Net開(kāi)發(fā)要告一段落了,重新找了一家開(kāi)發(fā)Java的公司,在新公司面試的時(shí)候,借助這2年的開(kāi)發(fā)經(jīng)驗(yàn),瞎吹了一頓(我對(duì)JAVA一竅不通,沒(méi)有寫(xiě)過(guò)一行JAVA代碼),總算通過(guò)了,3天以后上班。
                   今天早上一起來(lái)第一件事情就是上書(shū)店買Java書(shū),到書(shū)店一看才傻眼了,昨天到網(wǎng)上查到的一些書(shū),這里根本就沒(méi)有(暗自罵了幾句,我怎么就選擇這個(gè)鳥(niǎo)不拉屎的地方),好不容易找了一本《Tomcat與JavaWeb開(kāi)發(fā)技術(shù)詳解》,而且是最后一本,老天總算給了點(diǎn)面子,剩下就隨便找了幾本垃圾,反正也只是做入門用。
                  不知道不覺(jué)就浪費(fèi)了一個(gè)上午。回家先瀏覽了買回來(lái)的書(shū),前面全是TMD的教你怎么安裝JDK,Tomcat,Eclipse。索性花一個(gè)下午把Java開(kāi)發(fā)環(huán)境搭起來(lái)再說(shuō)。一口氣把Jdk,Eclipse,Tomcat,MySql,Ant全部下載下來(lái)(想想還是VS2003方便),下載是小事,配置就費(fèi)功夫了,剛開(kāi)始配置Jdk,Tomcat,MySql還順利,Eclipse就麻煩了,還好可以編譯,但是不知道怎么寫(xiě)Jsp,到網(wǎng)上一查才知道要下載一個(gè)Lomboz,按照版本下載了,折騰了一個(gè)多小時(shí)都沒(méi)有搞定,還好找到一個(gè)EclipseColor的插件,可以點(diǎn)亮JSP語(yǔ)法,將就用一下吧,那個(gè)鳥(niǎo)Lomboz等上班問(wèn)問(wèn)同事。
                    一切搞定,寫(xiě)個(gè)HelloWorld先。

          package mypack;
          import javax.servlet.
          *;
          import javax.servlet.http.
          *;
          import java.io.
          *;

          public class HelloServlet extends HttpServlet // 第一步: 擴(kuò)展 HttpServlet 抽象類。
          {
               
          //第二步:覆蓋doGet()方法
              public void doGet(HttpServletRequest request,
              HttpServletResponse response) throws IOException ,ServletException
              
          {
               
          //第三步:獲取HTTP 請(qǐng)求中的參數(shù)信息
               String clientName=request.getParameter("clientName");
               
          if(clientName!=null)
               clientName
          =new String(clientName.getBytes("ISO-8859-1"),"GB2312");
               
          else
               clientName
          ="我的朋友";
              
               
          // 第四步:生成 HTTP 響應(yīng)結(jié)果。

                PrintWriter 
          out;
                String title
          ="HelloServlet";
                String heading1
          ="This is output from HelloServlet by doGet:";
                
          // set content type.
                response.setContentType("text/html;charset=GB2312");
                
          // write html page.
                out = response.getWriter();
                
          out.print("<HTML><HEAD><TITLE>"+title+"</TITLE>");
                
          out.print("</HEAD><BODY>");
                
          out.print(heading1);
                
          out.println("<h1><P> "+clientName+" : 您好</h1>");
                
          out.print("</BODY></HTML>");
                
          //close out.
                out.close();

              }

          }

          編譯運(yùn)行。。。,沒(méi)反應(yīng)(習(xí)慣ASP.Net),Copy->配置->啟動(dòng)TomCat,
          <servlet>
                  
          <servlet-name>HelloServlet</servlet-name>
                  
          <servlet-class>mypack.HelloServlet</servlet-class>
          </servlet>

          <servlet-mapping>
                  
          <servlet-name>HelloServlet</servlet-name>
                  
          <url-pattern>/hello</url-pattern>
          </servlet-mapping>


          <servlet>
                  
          <servlet-name>CounterServlet</servlet-name>
                  
          <servlet-class>mypack.CounterServlet</servlet-class>
          </servlet>

          <servlet-mapping>
                  
          <servlet-name>CounterServlet</servlet-name>
                  
          <url-pattern>/counter</url-pattern>
          </servlet-mapping>
          總算完了,問(wèn)題又來(lái)了,“你好”變成了“??”,早就聽(tīng)說(shuō)Jsp的中文問(wèn)題了,改成HelloWorld正常,翻了一下書(shū),沒(méi)有找到解決辦法,算了,以后再解決^_^
          posted @ 2005-08-07 14:54 恏人 閱讀(241) | 評(píng)論 (0)編輯 收藏
          僅列出標(biāo)題  

          統(tǒng)計(jì)

          主站蜘蛛池模板: 原平市| 麻江县| 乐至县| 志丹县| 南木林县| 汝南县| 康马县| 松江区| 达日县| 阿鲁科尔沁旗| 四会市| 卓尼县| 普洱| 黄大仙区| 沅江市| 扶绥县| 新野县| 荣成市| 乌拉特前旗| 修水县| 辉南县| 榆林市| 新野县| 乌兰察布市| 伊金霍洛旗| 襄汾县| 吴旗县| 沁阳市| 苗栗县| 菏泽市| 玉田县| 西平县| 民乐县| 白城市| 西峡县| 眉山市| 曲松县| 石泉县| 临沧市| 长治县| 太仆寺旗|