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

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

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

    不悔路

    BlogJava 首頁(yè) 新隨筆 聯(lián)系 聚合 管理
      25 Posts :: 1 Stories :: 30 Comments :: 0 Trackbacks

    2008年8月16日 #

    學(xué)編程已經(jīng)三四年了,但是一直都沒有寫過相關(guān)的文章。今天,終于憋出一篇來。一來作為總結(jié),二來可以給師弟師妹作為參考。
    我讀大一的時(shí)候,老師教會(huì)了我if,while,for,等關(guān)鍵詞之后,我就開始自學(xué)了。大一的時(shí)候教的是C語(yǔ)言,從此之后,我迷上了C語(yǔ)言。因?yàn)镃能實(shí)現(xiàn)我的想法。接下來我自學(xué)了java,jsp。當(dāng)然,自學(xué)走了很多的彎路,直到現(xiàn)在我很后悔。~~~~(>_<)~~~~ 。交了學(xué)費(fèi)不在老師那里學(xué)點(diǎn)東西的人的確很SB。
    我現(xiàn)在主要說說我學(xué)java的經(jīng)驗(yàn)。學(xué)東西,要知道學(xué)來做什么嗎?java干什么用呢?當(dāng)然不是生孩子用的,也不是下酒菜。java有兩個(gè)方向,一個(gè)是做網(wǎng)站,另外一個(gè)是做手機(jī)軟件。你選擇那個(gè)方向呢?
    我選擇是做網(wǎng)站,雖然我一度鄙視做網(wǎng)站的(但我現(xiàn)在連鄙視的行業(yè)也進(jìn)不去)。但選擇了java,再選別的就沒什么必要,我是這樣想的,肉吃了一半就丟掉嗎?多可惜。
    java是完全面向?qū)ο蟮恼Z(yǔ)言,面向?qū)ο笾饕v的是封裝,繼承,多態(tài)。但是老師對(duì)于這些至關(guān)重要的知識(shí)只用了一節(jié)課,我不想說,老師很SB,或者是她不知道如何使用這些特性。我現(xiàn)在告訴讀者,這些特性會(huì)讓你很爽。
    我記得,我學(xué)java的時(shí)候,我用swing組件做了一個(gè)同學(xué)錄的軟件。當(dāng)時(shí)的心情是自豪的,現(xiàn)在看里是傻B呼呼。首先,swing已經(jīng)是一門過時(shí)的技術(shù),過時(shí)的東西是被歷史淘汰了,我卻當(dāng)做寶貝。是多么的無知。
    我現(xiàn)在分析我那個(gè)軟件。我當(dāng)然寫的同學(xué)錄只有一個(gè)類。一個(gè)主類,類里再套類,看得我頭昏腦脹,改一點(diǎn)就得改好多,然后調(diào)試的時(shí)候就出現(xiàn)好多錯(cuò)誤。遇到這樣的問題誰都頭痛。為什么出現(xiàn)這樣的情況。因?yàn)橹挥幸粋€(gè)類呀,所有的東西都放在一個(gè)類里,不亂才怪。就像一個(gè)籮筐里什么都放,當(dāng)然亂了。這個(gè)時(shí)候,我們應(yīng)該用到封裝來改變代碼的質(zhì)量。
    怎么做呢?
    首先,界面和業(yè)務(wù)邏輯分開。對(duì)于界面,很多人都知道,但是業(yè)務(wù)邏輯有可能不明白的,我比喻一下。比如,同學(xué)錄。你想看我的同學(xué)錄,你就得知道我的登陸密碼,你輸入密碼的時(shí)候,代碼會(huì)校驗(yàn)密碼,校驗(yàn)密碼就是一個(gè)業(yè)務(wù)邏輯。界面和業(yè)務(wù)邏輯分開有什么好處?起碼,代碼分工分明。這些類負(fù)責(zé)界面,那些類負(fù)責(zé)業(yè)務(wù)邏輯。分工分明是有好處的。避免大家手忙腳亂做錯(cuò)事,還有誰出錯(cuò)了就找誰算賬就行。
    這樣的話你的代碼就得這樣寫了
    class 界面
    {
    }
    class 業(yè)務(wù)邏輯
    {
    }
    這樣總比
    class 界面+業(yè)務(wù)邏輯
    {
    }
    好管理吧。
    這樣的話,界面的一些按鈕的位置改變了,對(duì)業(yè)務(wù)邏輯影響不大。這就是書上說的耦合度。

    接著說業(yè)務(wù)邏輯。因?yàn)闃I(yè)務(wù)邏輯比較重要。
    業(yè)務(wù)邏輯這么寫呢?我以前是這樣寫的,比如說,我想我的同學(xué)了,我想查一下她的電話然后call她。我很懶,不想翻電話部,我就用同學(xué)錄軟件查詢我的同學(xué)錄,那么軟件就得有查詢的功能。代碼是這樣的
    class select同學(xué)name
    {
    }
    刪除
    class delete同學(xué)
    {
    }
    但是,想用我的同學(xué)錄你得知道密碼,你就輸入密碼。那么我的代碼是
    class select密碼
    {
    }
    這樣寫下去,我感覺很無頭緒。這個(gè)時(shí)候就很適合用接口。什么是接口,我當(dāng)時(shí)學(xué)java的時(shí)候,我也在想什么是接口,不就是一個(gè)interface嗎?
    基本語(yǔ)法是這樣的
    interface 接口名
    {
     抽象方法1;
     抽象方法2;
    }

    當(dāng)時(shí)我琢磨了很長(zhǎng)時(shí)間,想不到interface怎么個(gè)好用?
    現(xiàn)在我明白了。
    你查詢密碼,查詢同學(xué)的電話,或者是更新同學(xué)的電話。你就得查詢數(shù)據(jù)庫(kù)吧。對(duì)于數(shù)據(jù)的操作不就是select,delete,update嗎?
    那么這樣的話,我們可以這樣寫
    public interface DataBase
    {
     // 增加操作
     public void insert(name) throws Exception ;
     // 修改操作
     public void update(name) throws Exception ;
     // 刪除操作
     public void delete(String id) throws Exception ;
     // 按ID查詢操作
     public Person queryById(String id) throws Exception ;
     // 查詢?nèi)?br />  public List queryAll() throws Exception ;
     // 模糊查詢
     public List queryByLike(String guanjianci) throws Exception ;
    }
    然后你就可以在各個(gè)功能類里implements DataBase了。什么是接口,就是規(guī)定你按照上面的格式去做,有規(guī)定了,就好辦事,對(duì)嗎?這個(gè)最好看看簡(jiǎn)單工廠設(shè)計(jì)模式.

     


    接下來說JSP吧
    學(xué)完java就該學(xué)JSP了。我們發(fā)的是電子工業(yè)出版社出版的《JSP動(dòng)態(tài)網(wǎng)頁(yè)編程技術(shù)》第七章說的是JSP操作數(shù)據(jù)庫(kù)。用的是JDBC-ODBC橋,如果堂哥沒有這樣提醒我的話,我現(xiàn)在可能還在配置數(shù)據(jù)源-----java的優(yōu)勢(shì)是跨平臺(tái),你這樣連接數(shù)據(jù)庫(kù)的話,就和操作系統(tǒng)綁定在一起了。于是我在網(wǎng)上查了,用JDBC驅(qū)動(dòng)包。因?yàn)檫@樣的話速度快,如果是配置connection poll(連接池)性能就更加高了,好的東西我們?yōu)槭裁床挥媚兀康诰耪率莝ervlet編程技術(shù),但是老師沒有講,我忘記什么理由了。好像是用得不多。但是在接下來的自學(xué)過程中。我知道servlet用得很多,而且很重要。包括MVC設(shè)計(jì)模式和struts框架。不懂servelet就不懂java。servlet有很多精彩的地方。我這不是教程,所以就不詳細(xì)說servlet的語(yǔ)法。但是servlet的路徑問題得好好研究。對(duì)于servlet就學(xué)會(huì)配置web.xml和獲取,跳轉(zhuǎn)就可以了。
    但是你要是有很多servlet的話。你就得配置很多,這樣的話,web.xml的文件就顯得很臃腫,有沒有更高的解決方法?有的。<url-pattern>*.do</url-pattern>,你可以試一下,不管你什么請(qǐng)求,你請(qǐng)求的路徑是什么,只要.do結(jié)尾的都能找到那個(gè)servlet。這就是從多個(gè)名稱映射同一個(gè)servlet。
    servlet可以用request.getRequestURL()獲取路徑,然后用字符串截取函數(shù)substring()截取請(qǐng)求后面的路徑。然后根據(jù)請(qǐng)求的路徑跳轉(zhuǎn)到哪個(gè)類。當(dāng)然,跳轉(zhuǎn)到哪個(gè)類,最好的解決方法是在.xml中配置。避免了大量的if語(yǔ)句。而且很靈活。所以,在struts1.x中有個(gè)默認(rèn)的配置文件struts-config.xml配置映射。在struts中,actionServlet就做上面的截取路徑的動(dòng)作。然后由struts-config.xml提供的映射分發(fā)到Action。對(duì)于struts我不易多說,因?yàn)槲椰F(xiàn)在在學(xué)習(xí)。我感覺它是個(gè)好東西。很經(jīng)典,很多設(shè)計(jì)模式都在里面找到。
    我愿意和你們一起學(xué)習(xí)struts。

    posted @ 2009-01-07 17:53 小弟 閱讀(259) | 評(píng)論 (2)編輯 收藏

    java三個(gè)框架分別起什么作用?為什么要三個(gè)框架,不是4個(gè)5個(gè)?
    posted @ 2008-08-17 15:50 小弟 閱讀(609) | 評(píng)論 (4)編輯 收藏

    畢業(yè)了,開始面試java程序員,本以為會(huì)MVC開發(fā)框架就行,但是企業(yè)都要求精通三個(gè)框架,1年工作經(jīng)驗(yàn)以上。為了實(shí)現(xiàn)自己的理想,我要繼續(xù)學(xué)習(xí)下去。以前盲目地學(xué),所以學(xué)來學(xué)去走不了少的彎路。我先學(xué)struts,以為我對(duì)model2有一定的了解。我想前輩們指導(dǎo)一下,或許我很多問題問得不恰當(dāng)。給我介紹本學(xué)struts的好書。孫衛(wèi)琴《精通STRUTS基于MVC的WEB設(shè)計(jì)與開發(fā)》的書或者是《實(shí)戰(zhàn)struts》怎么樣?我去書店看了看。發(fā)現(xiàn)struts2已經(jīng)出來了。我現(xiàn)在是學(xué)struts1.2還是學(xué)struts2(這個(gè)問題我最想知道)?struts比較常用的技術(shù)是什么?難點(diǎn)在哪?該如何自學(xué)好struts?還有我覺得《JSP數(shù)據(jù)庫(kù)項(xiàng)目開發(fā)寶典》里面的東西很經(jīng)典。是否值得買。因?yàn)殄X不多了。
    posted @ 2008-08-16 21:00 小弟 閱讀(653) | 評(píng)論 (3)編輯 收藏

    主站蜘蛛池模板: 精品无码人妻一区二区免费蜜桃 | 亚洲国产午夜电影在线入口| 日本zzzzwww大片免费| 亚洲欧美日本韩国| 亚洲日韩精品A∨片无码| 免费人成网站在线观看10分钟| 春暖花开亚洲性无区一区二区 | 国产成人精品日本亚洲专一区| 免费国产精品视频| 18禁无遮挡无码国产免费网站| 亚洲AV无码国产剧情| 亚洲AV日韩AV天堂一区二区三区| 亚洲熟妇久久精品| 国产亚洲美女精品久久久2020| 黄色网址免费观看| 中文字幕无线码免费人妻| 国产亚洲精品bv在线观看| 亚洲一区AV无码少妇电影☆| 男男AV纯肉无码免费播放无码| 两个人看的www免费视频| 亚洲AV电影天堂男人的天堂| 无码乱人伦一区二区亚洲| 国产自产拍精品视频免费看 | 亚洲国产一级在线观看 | 一个人看的www免费在线视频| 亚洲图片激情小说| 国产亚洲一区二区手机在线观看| 午夜免费不卡毛片完整版| 2015日韩永久免费视频播放 | 亚洲一区欧洲一区| 亚洲精品综合一二三区在线| 亚洲精品国精品久久99热| 好大好硬好爽免费视频| 亚欧人成精品免费观看| 久章草在线精品视频免费观看| 美美女高清毛片视频黄的一免费| 2019亚洲午夜无码天堂| 亚洲成人免费在线观看| 久久久久亚洲AV无码专区首| 精品国产亚洲男女在线线电影| 成全视频高清免费观看电视剧|