十年網(wǎng)站開(kāi)發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專業(yè)推廣+無(wú)憂售后,網(wǎng)站問(wèn)題一站解決
首先前臺(tái)和后臺(tái)不是分開(kāi)開(kāi)發(fā)的, 如果你一個(gè)人做, 就更不應(yīng)該把他們分開(kāi), 因?yàn)楹芸赡軙?huì)做好頁(yè)面之后, 由于一個(gè)地方的考慮不完全, 導(dǎo)致頁(yè)之間的結(jié)構(gòu)大范圍的變動(dòng).

創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供碌曲網(wǎng)站建設(shè)、碌曲做網(wǎng)站、碌曲網(wǎng)站設(shè)計(jì)、碌曲網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、碌曲企業(yè)網(wǎng)站模板建站服務(wù),10年碌曲做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
多人開(kāi)發(fā)都是同時(shí)進(jìn)行的, 前臺(tái)開(kāi)發(fā)者根據(jù)需求先做頁(yè)面的布局, 然后遇到需要和后臺(tái)交互數(shù)據(jù)的地方, 就寫成接口, 自己則做一個(gè)假的實(shí)現(xiàn)做假數(shù)據(jù). 至于css都是在開(kāi)發(fā)過(guò)程中寫的, 不可能先寫完之后再調(diào)用, 否則跟頁(yè)面上的組件對(duì)不上就白寫了, 應(yīng)該在頁(yè)面布局的時(shí)候一點(diǎn)兒一點(diǎn)兒的加進(jìn)去的, 加入到公共css中的樣式應(yīng)該是一些常用的組件的樣式, 比如按鈕, 表單組件, 分割, table, 彈出提示等等的.
后臺(tái)人則先寫最底層的, 和數(shù)據(jù)庫(kù)交互的邏輯, 先把需要的功能寫出來(lái), 然后等待前臺(tái)人員數(shù)據(jù)交互的接口寫完之后, 實(shí)現(xiàn)接口, 這樣前后臺(tái)就統(tǒng)一了.
然后開(kāi)始調(diào)試, 找Bug和維護(hù).
如果只有一個(gè)人來(lái)做, 我建議你還是一個(gè)功能一個(gè)功能的, 前后臺(tái)一起做, 先從持久化層開(kāi)始寫, 然后是業(yè)務(wù)層, 然后確定Servlet 或Action 的結(jié)構(gòu), 然后開(kāi)始做頁(yè)面, 做完一個(gè)完整的功能再做下一個(gè), 就不要前后臺(tái)的分期開(kāi)發(fā)了, 很容易亂, 最后找到錯(cuò)誤都不知道怎么改.
這個(gè)得根據(jù)團(tuán)隊(duì)情況還有項(xiàng)目的大小開(kāi)看, 所以我?guī)筒涣四懔? 呵呵
首先你想做那就不存在開(kāi)發(fā)可行性的問(wèn)題了
第二 需求分析: 列出功能點(diǎn)、界面要求,實(shí)現(xiàn)原型 實(shí)用軟件 :axure,確定施工周期,工期安排軟件:excel或者Steelray Project Viewer
第三概要設(shè)計(jì):根據(jù)原型寫出大致設(shè)計(jì),理清實(shí)現(xiàn)邏輯
第四詳細(xì)設(shè)計(jì):做不做都行,沒(méi)事做做也可以:詳細(xì)列出所有功能的偽代碼實(shí)現(xiàn)
第五代碼實(shí)現(xiàn):做網(wǎng)站建議用MyEclipse+mysql ,框架 SSH
第六測(cè)試:功能、頁(yè)面效果是否實(shí)現(xiàn)
第七使用說(shuō)明:寫使用說(shuō)明。
大致就這么多吧
Java編譯原理:
Java 虛擬機(jī)(JVM)是可運(yùn)行Java 代碼的假想計(jì)算機(jī)。只要根據(jù)JVM規(guī)格描述將解釋器移植到特定的計(jì)算機(jī)上,就能保證經(jīng)過(guò)編譯的任何Java代碼能夠在該系統(tǒng)上運(yùn)行。
一.Java源文件的編譯、下載 、解釋和執(zhí)行
Java應(yīng)用程序的開(kāi)發(fā)周期包括編譯、下載 、解釋和執(zhí)行幾個(gè)部分。Java編譯程序?qū)ava源程序翻譯為JVM可執(zhí)行代碼?字節(jié)碼。這一編譯過(guò)程同C/C++ 的編譯有些不同。當(dāng)C編譯器編譯生成一個(gè)對(duì)象的代碼時(shí),該代碼是為在某一特定硬件平臺(tái)運(yùn)行而產(chǎn)生的。因此,在編譯過(guò)程中,編譯程序通過(guò)查表將所有對(duì)符號(hào)的引用轉(zhuǎn)換為特定的內(nèi)存偏移量,以保證程序運(yùn)行。Java編譯器卻不將對(duì)變量和方法的引用編譯為數(shù)值引用,也不確定程序執(zhí)行過(guò)程中的內(nèi)存布局,而是將這些符號(hào)引用信息保留在字節(jié)碼中,由解釋器在運(yùn)行過(guò)程中創(chuàng)立內(nèi)存布局,然后再通過(guò)查表來(lái)確定一個(gè)方法所在的地址。這樣就有效的保證了Java的可移植性和安全 性。
運(yùn)行JVM字節(jié)碼的工作是由解釋器來(lái)完成的。解釋執(zhí)行過(guò)程分三部進(jìn)行:代碼的裝入、代碼的校驗(yàn)和代碼的執(zhí)行。裝入代碼的工作由"類裝載器"(class loader)完成。類裝載器負(fù)責(zé)裝入運(yùn)行一個(gè)程序需要的所有代碼,這也包括程序代碼中的類所繼承的類和被其調(diào)用的類。當(dāng)類裝載器裝入一個(gè)類時(shí),該類被放在自己的名字空間中。除了通過(guò)符號(hào)引用自己名字空間以外的類,類之間沒(méi)有其他辦法可以影響其他類。在本臺(tái)計(jì)算機(jī)上的所有類都在同一地址空間內(nèi),而所有從外部引進(jìn)的類,都有一個(gè)自己獨(dú)立的名字空間。這使得本地類通過(guò)共享相同的名字空間獲得較高的運(yùn)行效率,同時(shí)又保證它們與從外部引進(jìn)的類不會(huì)相互影響。當(dāng)裝入了運(yùn)行程序需要的所有類后,解釋器便可確定整個(gè)可執(zhí)行程序的內(nèi)存布局。解釋器為符號(hào)引用同特定的地址空間建立對(duì)應(yīng)關(guān)系及查詢表。通過(guò)在這一階段確定代碼的內(nèi)存布局,Java很好地解決了由超類改變而使子類崩潰的問(wèn)題,同時(shí)也防止了代碼對(duì)地址的非法訪問(wèn)。
隨后,被裝入的代碼由字節(jié)碼校驗(yàn)器進(jìn)行檢查。校驗(yàn)器可發(fā)現(xiàn)操作數(shù)棧溢出,非法數(shù)據(jù)類型轉(zhuǎn)化等多種錯(cuò)誤。通過(guò)校驗(yàn)后,代碼便開(kāi)始執(zhí)行了。
Java字節(jié)碼的執(zhí)行有兩種方式:
1.即時(shí)編譯方式:解釋器先將字節(jié)碼編譯成機(jī)器碼,然后再執(zhí)行該機(jī)器碼。
2.解釋執(zhí)行方式:解釋器通過(guò)每次解釋并執(zhí)行一小段代碼來(lái)完成Java字節(jié)碼程 序的所有操作。
通常采用的是第二種方法。由于JVM規(guī)格描述具有足夠的靈活性,這使得將字節(jié)碼翻譯為機(jī)器代碼的工作
具有較高的效率。對(duì)于那些對(duì)運(yùn)行速度要求較高的應(yīng)用程序,解釋器可將Java字節(jié)碼即時(shí)編譯為機(jī)器碼,從而很好地保證了Java代碼的可移植性和高性能。
這里只給你介紹最流行的java編輯器Eclispe的打包方法:
首先,你的項(xiàng)目一定要是動(dòng)態(tài)web格式,就是dynamic?web?project。在項(xiàng)目上右鍵,可以看到下圖所示:
點(diǎn)擊Export(中文版本可能會(huì)顯示“導(dǎo)出”)
在輸入框中輸入war,可以看到有一個(gè)WAR?file,用鼠標(biāo)雙擊它:
接著點(diǎn)擊Browse,設(shè)置你war包的存儲(chǔ)路徑,注意左下角有兩個(gè)選項(xiàng),Export?source?files(打包的時(shí)候?qū)С鲈创a);Overwrite?exsiting?files(打包的時(shí)候如果已經(jīng)存在一個(gè)同名的war包,則覆蓋它)
點(diǎn)擊Finish,完成打包,接下來(lái)就去找你的war包去吧!
war包發(fā)布就更簡(jiǎn)單了(此處拿tomcat做例子),拷貝war包到tomcat下的webapp下面,啟動(dòng)tomcat就可以了!
希望能幫到你!
有什么不明白的追問(wèn)我把!