posts - 11, comments - 0, trackbacks - 0, articles - 0

          2011年3月15日

          1.  1、set linesize 100;  設(shè)置長度  
          2.  2、set pagesize 30;   設(shè)置每頁顯示數(shù)目  
          3.  3、ed a.sql  打開記事本    
          4.  4、@ a 執(zhí)行文件a中的代碼,可指定文件的路徑 @d:a.txt  
          5.  5、conn 用戶名/密碼  根據(jù)用戶名和密碼連接數(shù)據(jù)庫 如果連接超級管理員(sys) 則應(yīng)加上as sysdba;  
          6.  6、show user; 顯示當(dāng)前連接的用戶  
          7.  7、select * from tab;  得到當(dāng)前用戶下的所有表  
          8.  8、desc temp; 查看表結(jié)構(gòu)  
          9.  9、/  繼續(xù)執(zhí)行上一個查詢語句  
          10.     clear scr;  清屏  
          11.   
          12. 字符函數(shù)  
          13. 10、select upper('coolszy'from dual; 將小寫字母轉(zhuǎn)換成大寫,dual 為一虛表  
          14. 11、select lower('KUKA'from dual; 將大寫字母轉(zhuǎn)換成小寫  
          15. 12、select initcap('kuka'from dual; 將首字母大寫   
          16. 13、select concat('Hello',' world'from dual; 連接字符串,但沒有||好用select concat('Hello','world'from dual;  
          17. 14、select substr('hello',1,3) from dual; 截取字符串  
          18. 15、select length('hello'from dual; 求字符串長度  
          19. 16、select replace('hello','l','x'from dual; 替換字符串   
          20. 17、select substr('hello',-3,3) from dual; 截取后三位  
          21.   
          22. 數(shù)值函數(shù)  
          23. 18、select round(789.536) from dual; 四舍五入,舍去小數(shù)  
          24. 19、select round(789.536,2) from dual; 保留兩位小數(shù)  
          25. 20、select round(789.536,-1) from dual; 對整數(shù)進(jìn)行四舍五入  
          26. 21、select trunc(789.536) from dual; 舍去小數(shù),但不進(jìn)位  
          27. 22、select trunc(789.536,2) from dual;  
          28. 23、select trunc(789.536,-2) from dual;  
          29. 24、select mod(10,3) from dual; 返回10%3的結(jié)果  
          30.   
          31. 日期函數(shù)  
          32. 25、select sysdate from dual; 返回當(dāng)前日期  
          33. 26、select months_between(sysdate,'16-6月 -08'from dual; 返回之間的月數(shù)  
          34. 27、select add_months(sysdate,4) from dual; 在日期上加上月數(shù)  
          35. 28、select next_day(sysdate,'星期一'from dual; 求下一個星期一  
          36. 29、select last_day(sysdate) from dual; 求本月的最后一天  
          37.   
          38.   
          39. 轉(zhuǎn)換函數(shù)  
          40. 30、select to_char(sysdate,'yyyy'year,to_char(sysdate,'mm'),to_char(sysdate,'dd'from dual;  
          41. 31、select to_char(sysdate,'yyyy-mm-dd'from dual;  
          42. 32、select to_char(sysdate,'fmyyyy-mm-dd'from dual; 取消月 日 前面的0  
          43. 33、select to_char('20394','99,999'from dual; 分割錢 9表示格式  
          44. 34、select to_char('2034','L99,999'from dual; 加上錢幣符號  
          45. 35、select to_number('123')*to_number('2'from dual;  
          46. 36、select to_date('1988-07-04','yyyy-mm-dd'from dual;   
          47.   
          48. 通用函數(shù)  
          49. 37、select nvl(null,0) from dual; 如果為null,則用0代替  
          50. 38、select decode(1,1,'內(nèi)容是1',2,'內(nèi)容是2',3,'內(nèi)容是3'from dual; 類似于 switch...case...  
          51.   
          52. 事務(wù)處理  
          53. 39、commit;  提交事務(wù)  
          54. 40、rollback; 回滾事務(wù)  
          55.   
          56.   
          57. 41、select rownum from table; 在沒一列前面顯示行號  
          58. 42、drop table 表名 cascade constraint   
          59.     on delete casecade 當(dāng)父表中的內(nèi)容被刪除后,子表中的內(nèi)容也被刪除  
          60.   
          61. 43、desc表名 顯示表的結(jié)構(gòu)  
          62. 44、create user [username] identified by [password] 創(chuàng)建新的用戶  
          63. 45、grant 權(quán)限1、權(quán)限2...to 用戶  給創(chuàng)建用戶權(quán)限  
          64.  ex:grant create session to [username] 此時只能連接到數(shù)據(jù)庫  
          65.     grant connect,resource to [username] 此時權(quán)限能滿足要求  
          66. 46、alter user [username] identified by [password] 修改用戶密碼  
          67. 47、alter user [username] password expired 下次登錄時提示修改密碼  
          68. 48、alter user [username] account lock  鎖住用戶  
          69. 49、alter user [username] account unlock  解鎖鎖用戶  
          70. 50、grant select,delete on scott.emp to [username] 把scott下emp表的兩個權(quán)限給用戶  
          71. 51、revoke select ,delete on scott.emo from [username] 回收權(quán)限 

          posted @ 2011-04-29 10:02 HsiangYu 閱讀(151) | 評論 (0)編輯 收藏

          如果你已經(jīng)是一名優(yōu)秀的Web開發(fā)人員,那請路過即可。如果你還是一個準(zhǔn)備入行或剛?cè)胄械牟锁B,那本文倒值得一讀。要成為一名優(yōu)秀的Web開發(fā)人員,沒有捷徑可走,本文就是為那些還在苦苦尋找學(xué)習(xí)目標(biāo)的人編寫的。

          第一步:學(xué)好HTML

          HTML(超文本標(biāo)記語言)是網(wǎng)頁的核心,因此你首先應(yīng)該學(xué)好它,不要害怕,HTML很容易學(xué)習(xí)的,但也很容易誤用,學(xué)懂容易要學(xué)精還得費(fèi)點(diǎn)功夫,但學(xué)好HTML是成為Web開發(fā)人員的基本條件。(注:隨著HTML 5規(guī)范出爐日期將近,了解HTML 5也將成為Web開發(fā)人員的必修課)

          學(xué)習(xí)資源:

          HTML Dog (http://htmldog.com/

          HTML入門指南 (http://www.w3.org/MarkUp/Guide/

          W3C HTML學(xué)習(xí)教程 (http://www.w3schools.com/html/

          第二步:學(xué)好服務(wù)器端腳本語言

          服務(wù)器端腳本編程也是Web開發(fā)人員的基本功之一,你只需挑選一個服務(wù)器端腳本語言,然后學(xué)好它,目前流行的服務(wù)器腳本語言有:

          PHP (http://php.net/

          Python (http://www.python.org/

          Ruby (http://www.ruby-lang.org/en/

          第三步:學(xué)好SQL

          要構(gòu)建動態(tài)頁面就必須使用到數(shù)據(jù)庫,但這么多數(shù)據(jù)庫產(chǎn)品,該如何是好呢?別擔(dān)心,它們都會遵循標(biāo)準(zhǔn)的SQL原則,學(xué)習(xí)SQL的資源包括:

          W3C SQL學(xué)習(xí)教程 (http://www.w3schools.com/SQl/default.asp

          MySQL主頁 (http://www.mysql.com/

          SQL維基百科 (http://en.wikipedia.org/wiki/SQL

          第四步:學(xué)好CSS

          涉及到網(wǎng)頁外觀時,就需要學(xué)習(xí)CSS了,它可以幫你把網(wǎng)頁做得更美觀。

          學(xué)習(xí)資源:

          HTML Dog  (http://htmldog.com/

          CSS禪意花園 (http://www.csszengarden.com/)已有中文版圖書。

          第五步:學(xué)好JavaScript

          今天大部分Web開發(fā)人員都喜歡使用jQuery(http://jquery.com/),學(xué)習(xí)JavaScript的基本語法,以及如何使用JavaScript編程將會提高你的技能。

          學(xué)習(xí)資源:

          webmonkey.com上的JavaScript學(xué)習(xí)資源 (http://www.webmonkey.com/tutorial/JavaScript_Tutorial

          W3C JavaScript學(xué)習(xí)教程 (http://www.w3schools.com/JS/default.asp

          第六步:學(xué)好正則表達(dá)式

          雖然它并不像其它知識那么重要,但學(xué)習(xí)了正則表達(dá)式后,如果使用得當(dāng)將會節(jié)省你很多時間,從驗(yàn)證到高亮顯示它夠能幫到你。

          第七步:學(xué)習(xí)一點(diǎn)Unix和Linux的基本知識

          這并不是必須的,但知道一點(diǎn)Linux命令不會傷害到你,或許你還不知道,大部分Web服務(wù)器都運(yùn)行在Unix和Linux平臺上,如果我是你,我會去學(xué)習(xí)一些基本的Linux命令的。

          第八步:了解Web服務(wù)器

          你不必在這上面花太多精力,但對Apache的基本配置,.htaccess配置技巧有一些掌握的話,將來必定受益,而且這方面的知識學(xué)起來也相對容易,不會花多長時間。

          第九步:熟悉版本控制系統(tǒng)的用法

          熟悉使用一種優(yōu)秀的版本控制系統(tǒng)將很有用處,你在實(shí)際工作中就會發(fā)現(xiàn)精通一種版本控制系統(tǒng)是多么幸福。

          第十步:學(xué)好Web框架

          當(dāng)你掌握了HTML,服務(wù)器端腳本語言,CSS和JavaScript后,就應(yīng)該找一個Web框架加快你的Web開發(fā)速度,使用框架可以節(jié)約你很多時間,如果你使用PHP,可選的框架有CakePHP,CodeIgniter,Zend等,Python程序員喜歡使用Django和 webpy,Ruby程序員喜歡使用RoR。

          怎么樣,從最簡單的HTML到Web框架,內(nèi)容還是不少吧,要想精通這里的每一樣技術(shù),都得下苦功夫才行。

          posted @ 2011-04-29 09:57 HsiangYu 閱讀(155) | 評論 (0)編輯 收藏

          很多人應(yīng)聘不上去,不是由于自己不夠優(yōu)秀,而是這個人從頭到尾鍥而不舍的自殺所致。  

          很多人應(yīng)聘不上去,不是由于自己不夠優(yōu)秀,而是這個人從頭到尾鍥而不舍的自殺所致。這樣的人大概占到了人數(shù)的40%到50%!

          摘錄一些最簡單的自殺式問題,希望有幫助。

          珍愛面試,遠(yuǎn)離自殺!

          1.自殺式一:奮不顧身

          請簡單介紹一下你自己:

          我是一個很普通的人……

          給你一個機(jī)會,就是讓你證明自己的優(yōu)秀的!每一個都有閃光點(diǎn),關(guān)鍵是你如何尋找。但是這樣的回答讓人覺得你連想都不想。

          請簡單介紹一下你自己:

          我今天準(zhǔn)備得不太好…… 你的意思是:我還可以更好的。面試官聽到的意思是:沒準(zhǔn)備好還來干嘛,太不尊重我啦!(當(dāng)年在新東方培訓(xùn)教師的時候,每當(dāng)我聽到這句話,我們就說:那請你準(zhǔn)備好再來,不要浪費(fèi)大家的時間……)

          2.自殺式二:天花亂墜

          說說你的優(yōu)點(diǎn):

          (用一種熟練無比的不過大腦的聲調(diào))我團(tuán)結(jié)同學(xué)、尊重老師、熱愛生活、興趣多樣,積極主動……

          中國教育很多要求就是變態(tài)的,比如嚴(yán)肅活潑,在我看來就是典型的精神分裂。我自己在面試期間,最郁悶的就是看到那些云集了中華文明5000年所有傳統(tǒng)文化的人。優(yōu)點(diǎn)不是越多越好,而是越真實(shí)和獨(dú)特越好。很難想象一個人如何可以“團(tuán)結(jié)同學(xué)”同時“獨(dú)立研究,刻苦鉆研”還要“積極投身社團(tuán)”。

          什么優(yōu)點(diǎn)都有的人 = 沒有優(yōu)點(diǎn)

          3.自殺式之三:我要學(xué)習(xí)

          你希望通過這份工作獲得什么呢?

          我希望通過這份工作鍛煉自己,提升自己的能力。

          同學(xué),公司又不是學(xué)校,是希望你過來干活的,學(xué)習(xí)的目的也是更好的工作。你居然準(zhǔn)備拿我們的工作機(jī)會練手和鍛煉自己?我們還是找一些更靠譜的人吧。

          4.自殺式之四:前途錢途

          你還有什么問題么?

          我想問一下工資大概是多少?還能高些么?

          一般來說,工資完全可以在公司的網(wǎng)站、一般的行業(yè)網(wǎng)站找到。或者私下溝通。在大公司面試的時候問這個問題不太合適。因?yàn)楹芏郒R會認(rèn)為,就業(yè)是一種雙向選擇,你還沒有展示你的能力呢?我憑什么買你?

          建議可以在基本意向確定以后再問。當(dāng)然,就這個問題,有不同意見。有人還建議說當(dāng)場問顯得自己很有信心。在職人士的話,一定要談薪酬。

          5.自殺式之五:我會努力!

          你會如何面對你的新工作?

          (眼神堅定,滿臉通紅)我會認(rèn)真努力,盡全力做好。

          商業(yè)社會,態(tài)度不等于能力。不管你是全力以赴還是認(rèn)真努力,沒有達(dá)到目標(biāo),也是無用。不管你是心不在焉還是,只要最后達(dá)到了公司要的結(jié)果,那就是好員工。

          你可以嘗試提供你準(zhǔn)備的具體的行動步驟和目標(biāo),否則這個問題基本等于沒有回答。

          6.自殺式之六:我應(yīng)該

          如果你給一份……的任務(wù),你會怎么做?

          我應(yīng)該能夠做好……

          我應(yīng)該能夠做好,反過來說就是:做不好也不怪我吧!

          企業(yè)是用結(jié)果說話的,應(yīng)該做好…… 那還有應(yīng)該做不好地方怎么辦?這是一個責(zé)任心的測試。但是“應(yīng)該”者失敗了。

          你可以嘗試談?wù)劊銜趺醋觥H绻龅侥銜趺礃樱绻霾坏剑銜绾握{(diào)整。保證在DEADLINE前獲得底線結(jié)果。

          posted @ 2011-04-29 09:52 HsiangYu 閱讀(171) | 評論 (0)編輯 收藏

          1.struts
          Action是不是線程安全的?如果不是,有什么方式可以保證Action的線程安全?如果是,說明原因

          2.MVC,分析一下struts是如何實(shí)現(xiàn)MVC的

          3.struts中的幾個關(guān)鍵對象的作用(說說幾個關(guān)鍵對象的作用)

          4.spring
          說說AOP和IOC的概念以及在spring中是如何應(yīng)用的

          5.Hibernate有哪幾種查詢數(shù)據(jù)的方式

          6.load()和get()的區(qū)別

          回答:
          1.Struts1 Action是單例模式并且必須是線程安全的,因?yàn)閮H有Action的一個實(shí)例來處理所有的請求。單例策略限制了Struts1 Action能作的事,并且要在開發(fā)時特別小心。Action資源必須是線程安全的或同步的。
          Struts2 Action對象為每一個請求產(chǎn)生一個實(shí)例,因此沒有線程安全問題。(實(shí)際上,servlet容器給每個請求產(chǎn)生許多可丟棄的對象,并且不會導(dǎo)致性能和垃圾回收問題)

          2.struts是用一組類,servlet 和jsp規(guī)范實(shí)現(xiàn)mvc的

          3.ActionFrom ActionServlet Action struts-config.xml

          4.spring的核心就是IOC,通過指定對象的創(chuàng)建辦法,描述對象與服務(wù)之間的關(guān)系,而不生成對象

          5.3種,hql 條件查詢() 原生sql

          6.load()方法認(rèn)為該數(shù)據(jù)一定存在,可以放心的使用代理來延時加載 ,如果使用過程中發(fā)現(xiàn)了問題,就拋出異常;
          get()方法一定要獲取到真實(shí)的數(shù)據(jù),否則返回null

          一些Spring和Hibernate的面試題(附答案)

          HibernateJava/J2EESpring

          1、 簡述你對IoC(Inversion of Control)的理解,描述一下Spring中實(shí)現(xiàn)DI(Dependency Injection)的幾種方式。

          2、 Spring的Bean有多種作用域,包括:

          singleton、prototype、request、session、global session、application、自定義

          3、 簡單描述Spring framework與Struts的不同之處,整合Spring與Struts有哪些方法,哪種最好,為什么?

          4、 Hibernate中的update()和saveOrUpdate()的區(qū)別

          5、 Spring對多種ORM框架提供了很好的支持,簡單描述在Spring中使用Hibernate的方法,并結(jié)合事務(wù)管理。

          答案:

          1、好萊塢原則€€€€不要打電話找我,我會打給你的。IoC將創(chuàng)建的職責(zé)從應(yīng)用程序代碼搬到了框架中。Spring對Setter注入和構(gòu)造方法注入提供支持。(詳見http://martinfowler.com/articles/injection.html,以及http: //www.redsaga.com/spring_ref/2.0/html/beans.html#beans-factory- collaborators)

          2、 除application(詳見Spring framework 2.0 Reference的3.4節(jié)bean的作用域)

          3、 Spring是完整的一站式框架,而Struts僅是MVC框架,且著重于MVC中的C。Spring有三種方式整合Struts:使用 Spring 的 ActionSupport 類整合 Struts;使用 Spring 的 DelegatingRequestProcessor 覆蓋 Struts 的 RequestProcessor;將 Struts Action 管理委托給 Spring 框架,動作委托最好。(詳見使用Spring 更好地處理Struts 動作)

          Spring 2.0新增一種方式:AutowiringRequestProcessor。(詳見http://www.iteye.com/topic/24239)

          4、 saveOrUpdate()方法可以實(shí)現(xiàn)update()的功能,但會多些步驟,具體如下:

          如果對象在該session中已經(jīng)被持久化,不進(jìn)行操作;

          對象的標(biāo)識符屬性(identifier property)在數(shù)據(jù)庫中不存在或者是個暫時的值,調(diào)用save()方法保存它;

          如果session中的另一個對象有相同的標(biāo)識符拋出一個異常;

          以上皆不符合則調(diào)用update()更新之。

          5、在context中定義DataSource,創(chuàng)建SessionFactoy,設(shè)置參數(shù);DAO類繼承HibernateDaoSupport,實(shí)現(xiàn)具體接口,從中獲得HibernateTemplate進(jìn)行具體操作。

          在使用中如果遇到OpenSessionInView的問題,可以添加OpenSessionInViewFilter或OpenSessionInViewInterceptor。(詳見Spring framework 2.0 Reference的12.2節(jié)Hibernate)

          聲明式事務(wù)需聲明事務(wù)管理器,在context中設(shè)置指定屬性,用確定和。

          請你談?wù)凷SH整合

          HibernateJava/J2EESpringStruts

          SSH:
          Struts(表示層)+Spring(業(yè)務(wù)層)+Hibernate(持久層)
          Struts:
          Struts是一個表示層框架,主要作用是界面展示,接收請求,分發(fā)請求。
          在MVC框架中,Struts屬于VC層次,負(fù)責(zé)界面表現(xiàn),負(fù)責(zé)MVC關(guān)系的分發(fā)。(View:沿用JSP,HTTP,F(xiàn)orm,Tag,Resourse ;Controller:ActionServlet,struts-config.xml,Action)
          Hibernate:
          Hibernate是一個持久層框架,它只負(fù)責(zé)與關(guān)系數(shù)據(jù)庫的操作。
          Spring:
          Spring是一個業(yè)務(wù)層框架,是一個整合的框架,能夠很好地黏合表示層與持久層。

          Spring如何創(chuàng)建一個數(shù)據(jù)連接池

          Java/J2EESpring

          <bean id=”dataSource” class=”org.apache.commons.dbcp.BasicDataSource”>
          <property name=”driver”>
          <value>${db.driver}</value>
          </property>
          <property name=”url”>
          <value>${db.url}</value>
          </property>
          <property name=”username”>
          <value>${db.username}</value>
          </property>
          <property name=”password”>
          <value>${db.password}</value>
          </property>
          </bean>

          Spring如何獲取Bean

          Java/J2EESpring

          通過xml配置文件

          bean配置在xml里面,spring提供多種方式讀取配置文件得到ApplicationContext.

          第一種方式:FileSystemXmlApplicationContext

          通過程序在初始化的時候,導(dǎo)入Bean配置文件,然后得到Bean實(shí)例:
          ApplicationContext ac = new FileSystemXmlApplicationContext(”applicationContext.xml”)
          ac.getBean(”beanName”);

          第二種方式:WebApplicationContextUtil

          在B/S系統(tǒng)中,通常在web.xml初始化bean的配置文件,然后由WebAppliCationContextUtil得到ApplicationContext.例如:
          ApplicationContext ctx = WebApplicationContextUtils.getRequiredWebApplicationContext(ServletContext sc);
          ApplicationContext ctx =   WebApplicationContextUtils.getWebApplicationContext(ServletContext sc);

          其中 servletContext sc 可以具體 換成 servlet.getServletContext()或者 this.getServletContext() 或者 request.getSession().getServletContext();

          另外,由于spring是注入的對象放在ServletContext中的,所以可以直接在ServletContext取出WebApplicationContext 對象:

          WebApplicationContext webApplicationContext = (WebApplicationContext) servletContext.getAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE);

          Spring框架有哪幾部分組成?

          Java/J2EESpring

          Spring框架有七個模塊組成組成,這7個模塊(或組件)均可以單獨(dú)存在,也可以與其它一個或多個模塊聯(lián)合使用,主要功能表現(xiàn)如下:

          ? Spring 核心容器(Core):提供Spring框架的基本功能。核心容器的主要組件是BeanFactory,她是工廠模式的實(shí)現(xiàn)。BeanFactory使用控制反轉(zhuǎn)(Ioc)模式將應(yīng)用程序的配置和依賴性規(guī)范與實(shí)際的應(yīng)用代碼程序分開。

          ? Spring AOP通過配置管理特性,Spring AOP模塊直接面向方面的編程功能集成到了Spring框架中,所以可以很容易的使Spring框架管理的任何對象支持 AOP。Spring AOP模塊為基于Spring的應(yīng)用程序中的對象提供了事務(wù)管理服務(wù)。通過使用Spring AOP,不用依賴于EJB組件,就可以將聲明性事務(wù)管理集成到應(yīng)用程序中。

          ? Spring ORMSpring框架集成了若干ORM框架,從而提供了ORM的對象關(guān)系工具,其中包括 JDO、Hibernate、iBatis和TopLink。所有這些都遵從Spring的通用事務(wù)和DAO異常層結(jié)構(gòu)。

          ? Spring DAOJDBC DAO抽象層提供了有意義的異常層次的結(jié)構(gòu),可用該結(jié)構(gòu)來管理異常處理和不同數(shù)據(jù)供應(yīng)商拋出的異常錯誤信息。異常層次結(jié)構(gòu)簡化了錯誤處理,并且大大的降低了需要編寫的異常代碼數(shù)量(例如,打開和關(guān)系連接)。Spring DAO的面向JDBC的異常遵從通用的DAO異常層結(jié)構(gòu)。

          ? Spring WEBWeb上下文模塊建立在上下文模塊(Context)的基礎(chǔ)之上,為基于Web服務(wù)的應(yīng)用程序提供了上下文的服務(wù)。所以Spring框架支持 Jakarta Struts的集成。Web模塊還簡化了處理多部分請求及將請求參數(shù)綁定到域?qū)ο蟮墓ぷ鳌?/p>

          ? Spring上下文(Context):Spring上下文是一個配置文件,向Spring框架提供上下文信息。Spring上下文包括企業(yè)服務(wù),例如 JNDI、EJB、電子郵件、國際化校驗(yàn)和調(diào)度功能。

          ? Spring MVCSpring的MVC框架是一個全功能的構(gòu)建Web應(yīng)用程序的MVC實(shí)現(xiàn)。通過策略接口,MVC框架變成為高度可配置的,MVC容納的大量視圖技術(shù),包括JSP、Velocity、Tiles、iText和Pol

          用Spring有什么好處

          Java/J2EESpring

          ◆Spring能有效地組織你的中間層對象,無論你是否選擇使用了EJB。如果你僅僅使用了Struts或其他的包含了J2EE特有APIs的framework,你會發(fā)現(xiàn)Spring關(guān)注了遺留下的問題,。

          ◆Spring能消除在許多工程上對Singleton的過多使用。根據(jù)我的經(jīng)驗(yàn),這是一個主要的問題,它減少了系統(tǒng)的可測試性和面向?qū)ο筇匦浴?br /> ◆Spring能消除使用各種各樣格式的屬性定制文件的需要,在整個應(yīng)用和工程中,可通過一種一致的方法來進(jìn)行配置。曾經(jīng)感到迷惑,一個特定類要查找迷幻般的屬性關(guān)鍵字或系統(tǒng)屬性,為此不得不讀Javadoc乃至源編碼嗎?有了Spring,你可很簡單地看到類的JavaBean屬性。倒置控制的使用(在下面討論)幫助完成這種簡化。
          ◆Spring能通過接口而不是類促進(jìn)好的編程習(xí)慣,減少編程代價到幾乎為零。
          ◆Spring被設(shè)計為讓使用它創(chuàng)建的應(yīng)用盡可能少的依賴于他的APIs。在Spring應(yīng)用中的大多數(shù)業(yè)務(wù)對象沒有依賴于Spring。
          ◆使用Spring構(gòu)建的應(yīng)用程序易于單元測試。
          ◆Spring能使EJB的使用成為一個實(shí)現(xiàn)選擇,而不是應(yīng)用架構(gòu)的必然選擇。你能選擇用POJOs或local EJBs來實(shí)現(xiàn)業(yè)務(wù)接口,卻不會影響調(diào)用代碼。
          ◆Spring幫助你解決許多問題而無需使用EJB。Spring能提供一種EJB的替換物,它們適于許多web應(yīng)用。例如,Spring能使用AOP提供聲明性事務(wù)而不通過使用EJB容器,如果你僅僅需要與單個的數(shù)據(jù)庫打交道,甚至不需要JTA實(shí)現(xiàn)。
          ■Spring為數(shù)據(jù)存取提供了一致的框架,不論是使用JDBC或O/R mapping產(chǎn)品(如Hibernate)。
          Spring確實(shí)使你能通過最簡單可行的解決辦法解決你的問題。這些特性是有很大價值的。
          總結(jié)起來,Spring有如下優(yōu)點(diǎn):
          ◆低侵入式設(shè)計,代碼污染極低
          ◆ 獨(dú)立于各種應(yīng)用服務(wù)器,可以真正實(shí)現(xiàn)Write Once,Run Anywhere的承諾
          ◆Spring的DI機(jī)制降低了業(yè)務(wù)對象替換的復(fù)雜性
          ◆Spring并不完全依賴于Spring,開發(fā)者可自由選用Spring框架的部分或全部

          Spring面試:什么是Spring, 它有什么特點(diǎn)

          Java/J2EESpring

          Spring是一個輕量級的控制反轉(zhuǎn)(IoC)和面向切面(AOP)的容器框架。

          輕量——從大小與開銷兩方面而言Spring都是輕量的。完整的Spring框架可以在一個大小只有1MB多的JAR文件里發(fā)布。并且Spring所需的處理開銷也是微不足道的。此外,Spring是非侵入式的:典型地,Spring應(yīng)用中的對象不依賴于Spring的特定類。

          控制反轉(zhuǎn)——Spring通過一種稱作控制反轉(zhuǎn)(IoC)的技術(shù)促進(jìn)了松耦合。當(dāng)應(yīng)用了IoC,一個對象依賴的其它對象會通過被動的方式傳遞進(jìn)來,而不是這個對象自己創(chuàng)建或者查找依賴對象。你可以認(rèn)為IoC與JNDI相反——不是對象從容器中查找依賴,而是容器在對象初始化時不等對象請求就主動將依賴傳遞給它。
          面向切面——Spring提供了面向切面編程的豐富支持,允許通過分離應(yīng)用的業(yè)務(wù)邏輯與系統(tǒng)級服務(wù)(例如審計(auditing)和事務(wù)()管理)進(jìn)行內(nèi)聚性的開發(fā)。應(yīng)用對象只實(shí)現(xiàn)它們應(yīng)該做的——完成業(yè)務(wù)邏輯——僅此而已。它們并不負(fù)責(zé)(甚至是意識)其它的系統(tǒng)級關(guān)注點(diǎn),例如日志或事務(wù)支持。
          容器——Spring包含并管理應(yīng)用對象的配置和生命周期,在這個意義上它是一種容器,你可以配置你的每個bean如何被創(chuàng)建——基于一個可配置原型(prototype),你的bean可以創(chuàng)建一個單獨(dú)的實(shí)例或者每次需要時都生成一個新的實(shí)例——以及它們是如何相互關(guān)聯(lián)的。然而,Spring不應(yīng)該被混同于傳統(tǒng)的重量級的EJB容器,它們經(jīng)常是龐大與笨重的,難以使用。
          框架——Spring可以將簡單的組件配置、組合成為復(fù)雜的應(yīng)用。在Spring中,應(yīng)用對象被聲明式地組合,典型地是在一個XML文件里。Spring也提供了很多基礎(chǔ)功能(事務(wù)管理、持久化框架集成等等),將應(yīng)用邏輯的開發(fā)留給了你。

          posted @ 2011-04-28 10:55 HsiangYu 閱讀(294) | 評論 (0)編輯 收藏

          Hibernate工作原理及為什么要用?   
          原理:     
          1.讀取并解析配置文件     
          2.讀取并解析映射信息,創(chuàng)建SessionFactory     
          3.打開Sesssion     
          4.創(chuàng)建事務(wù)Transation     
          5.持久化操作     
          6.提交事務(wù)     
          7.關(guān)閉Session     
          8.關(guān)閉SesstionFactory     
            
          為什么要用:     
          1. 對JDBC訪問數(shù)據(jù)庫的代碼做了封裝,大大簡化了數(shù)據(jù)訪問層繁瑣的重復(fù)性代碼。     
          2. Hibernate是一個基于JDBC的主流持久化框架,是一個優(yōu)秀的ORM實(shí)現(xiàn)。他很大程度的簡化DAO層的編碼工作     
          3. hibernate使用Java反射機(jī)制,而不是字節(jié)碼增強(qiáng)程序來實(shí)現(xiàn)透明性。     
          4. hibernate的性能非常好,因?yàn)樗莻€輕量級框架。映射的靈活性很出色。它支持各種關(guān)系數(shù)據(jù)庫,從一對一到多對多的各種復(fù)雜關(guān)系。     
            
          2. Hibernate是如何延遲加載?     
          1. Hibernate2延遲加載實(shí)現(xiàn):a)實(shí)體對象 b)集合(Collection)     
          2. Hibernate3 提供了屬性的延遲加載功能;當(dāng)Hibernate在查詢數(shù)據(jù)的時候,數(shù)據(jù)并沒有存在與內(nèi)存中,當(dāng)程序真正對數(shù)據(jù)的操作時,對象才存在與內(nèi)存中,就實(shí)現(xiàn)了延遲加載,他節(jié)省了服務(wù)器的內(nèi)存開銷,從而提高了服務(wù)器的性能。     
          3.Hibernate中怎樣實(shí)現(xiàn)類之間的關(guān)系?(如:一對多、多對多的關(guān)系)     
          類與類之間的關(guān)系主要體現(xiàn)在表與表之間的關(guān)系進(jìn)行操作,它們都市對對象進(jìn)行操作,我們程序中把所有的表與類都映射在一起,它們通過配置文件中的many-to-one、one-to-many、many-to-many、     
            
          4. 說下Hibernate的緩存機(jī)制     
          1. 內(nèi)部緩存存在Hibernate中又叫一級緩存,屬于應(yīng)用事物級緩存     
          2. 二級緩存:     
          a) 應(yīng)用及緩存     
          b) 分布式緩存     
          條件:數(shù)據(jù)不會被第三方修改、數(shù)據(jù)大小在可接受范圍、數(shù)據(jù)更新頻率低、同一數(shù)據(jù)被系統(tǒng)頻繁使用、非 關(guān)鍵數(shù)據(jù)     
          c) 第三方緩存的實(shí)現(xiàn)     
            
          5. Hibernate的查詢方式     
          Sql、Criteria,object comptosition     
          Hql:     
          1、 屬性查詢     
          2、 參數(shù)查詢、命名參數(shù)查詢     
          3、 關(guān)聯(lián)查詢     
          4、 分頁查詢     
          5、 統(tǒng)計函數(shù)     
            
          6. 如何優(yōu)化Hibernate?     
          1.使用雙向一對多關(guān)聯(lián),不使用單向一對多     
          2.靈活使用單向一對多關(guān)聯(lián)     
          3.不用一對一,用多對一取代     
          4.配置對象緩存,不使用集合緩存     
          5.一對多集合使用Bag,多對多集合使用Set     
          6. 繼承類使用顯式多態(tài)     
          7. 表字段要少,表關(guān)聯(lián)不要怕多,有二級緩存撐腰     
            
            
          7. Struts工作機(jī)制?為什么要使用Struts?     
          工作機(jī)制:     
          Struts的工作流程:     
          在web應(yīng)用啟動時就會加載初始化ActionServlet,ActionServlet從     
          struts-config.xml文件中讀取配置信息,把它們存放到各種配置對象     
          當(dāng)ActionServlet接收到一個客戶請求時,將執(zhí)行如下流程.     
            -(1)檢索和用戶請求匹配的ActionMapping實(shí)例,如果不存在,就返回請求路徑無效信息;     
            -(2)如果ActionForm實(shí)例不存在,就創(chuàng)建一個ActionForm對象,把客戶提交的表單數(shù)據(jù)保存到ActionForm對象中;     
            -(3)根據(jù)配置信息決定是否需要表單驗(yàn)證.如果需要驗(yàn)證,就調(diào)用ActionForm的validate()方法;     
            -(4)如果ActionForm的validate()方法返回null或返回一個不包含ActionMessage的ActuibErrors對象, 就表示表單驗(yàn)證成功;     
            -(5)ActionServlet根據(jù)ActionMapping所包含的映射信息決定將請求轉(zhuǎn)發(fā)給哪個Action,如果相應(yīng)的 Action實(shí)例不存在,就先創(chuàng)建這個實(shí)例,然后調(diào)用Action的execute()方法;     
            -(6)Action的execute()方法返回一個ActionForward對象,ActionServlet在把客戶請求轉(zhuǎn)發(fā)給 ActionForward對象指向的JSP組件;     
            -(7)ActionForward對象指向JSP組件生成動態(tài)網(wǎng)頁,返回給客戶;     
            
          為什么要用:     
          JSP、Servlet、JavaBean技術(shù)的出現(xiàn)給我們構(gòu)建強(qiáng)大的企業(yè)應(yīng)用系統(tǒng)提供了可能。但用這些技術(shù)構(gòu)建的系統(tǒng)非常的繁亂,所以在此之上,我們需要一個規(guī)則、一個把這些技術(shù)組織起來的規(guī)則,這就是框架,Struts便應(yīng)運(yùn)而生。     
          基于Struts開發(fā)的應(yīng)用由3類組件構(gòu)成:控制器組件、模型組件、視圖組件     
            
          8. Struts的validate框架是如何驗(yàn)證的?     
          在struts配置文件中配置具體的錯誤提示,再在FormBean中的validate()方法具體調(diào)用。     
            
          9. 說下Struts的設(shè)計模式     
          MVC模式: web應(yīng)用程序啟動時就會加載并初始化ActionServler。用戶提交表單時,一個配置好的ActionForm對象被創(chuàng)建,并被填入表單相應(yīng)的數(shù)據(jù),ActionServler根據(jù)Struts-config.xml文件配置好的設(shè)置決定是否需要表單驗(yàn)證,如果需要就調(diào)用ActionForm的Validate()驗(yàn)證后選擇將請求發(fā)送到哪個Action,如果Action不存在,ActionServlet會先創(chuàng)建這個對象,然后調(diào)用Action的execute()方法。Execute()從ActionForm對象中獲取數(shù)據(jù),完成業(yè)務(wù)邏輯,返回一個ActionForward對象,ActionServlet再把客戶請求轉(zhuǎn)發(fā)給ActionForward對象指定的jsp組件,ActionForward對象指定的jsp生成動態(tài)的網(wǎng)頁,返回給客戶。     
            
          10. spring工作機(jī)制及為什么要用?     
          1.spring mvc請所有的請求都提交給DispatcherServlet,它會委托應(yīng)用系統(tǒng)的其他模塊負(fù)責(zé)負(fù)責(zé)對請求進(jìn)行真正的處理工作。     
          2.DispatcherServlet查詢一個或多個HandlerMapping,找到處理請求的Controller.     
          3.DispatcherServlet請請求提交到目標(biāo)Controller     
          4.Controller進(jìn)行業(yè)務(wù)邏輯處理后,會返回一個ModelAndView     
          5.Dispathcher查詢一個或多個ViewResolver視圖解析器,找到ModelAndView對象指定的視圖對象     
          6.視圖對象負(fù)責(zé)渲染返回給客戶端。     
            
          為什么用:     
          {AOP 讓開發(fā)人員可以創(chuàng)建非行為性的關(guān)注點(diǎn),稱為橫切關(guān)注點(diǎn),并將它們插入到應(yīng)用程序代碼中。使用 AOP 后,公共服務(wù) (比 如日志、持久性、事務(wù)等)就可以分解成方面并應(yīng)用到域?qū)ο笊希瑫r不會增加域?qū)ο蟮膶ο竽P偷膹?fù)雜性。     
            IOC 允許創(chuàng)建一個可以構(gòu)造對象的應(yīng)用環(huán)境,然后向這些對象傳遞它們的協(xié)作對象。正如單詞 倒置 所表明的,IOC 就像反 過來的 JNDI。沒有使用一堆抽象工廠、服務(wù)定位器、單元素(singleton)和直接構(gòu)造(straight construction),每一個對象都是用其協(xié)作對象構(gòu)造的。因此是由容器管理協(xié)作對象(collaborator)。     
          Spring即使一個AOP框架,也是一IOC容器。 Spring 最好的地方是它有助于您替換對象。有了 Spring,只要用 JavaBean 屬性和配置文件加入依賴性(協(xié)作對象)。然后可以很容易地在需要時替換具有類似接口的協(xié)作對象。}  

          posted @ 2011-04-28 10:47 HsiangYu 閱讀(208) | 評論 (0)編輯 收藏

          Ctrl+1 快速修復(fù)(最經(jīng)典的快捷鍵,就不用多說了)
          Ctrl+D: 刪除當(dāng)前行 
          Ctrl+Alt+↓ 復(fù)制當(dāng)前行到下一行(復(fù)制增加)
          Ctrl+Alt+↑ 復(fù)制當(dāng)前行到上一行(復(fù)制增加)
          Alt+↓ 當(dāng)前行和下面一行交互位置(特別實(shí)用,可以省去先剪切,再粘貼了)
          Alt+↑ 當(dāng)前行和上面一行交互位置(同上)
          Alt+← 前一個編輯的頁面
          Alt+→ 下一個編輯的頁面(當(dāng)然是針對上面那條來說了)
          Alt+Enter 顯示當(dāng)前選擇資源(工程,or 文件 or文件)的屬性
          Shift+Enter 在當(dāng)前行的下一行插入空行(這時鼠標(biāo)可以在當(dāng)前行的任一位置,不一定是最后)
          Shift+Ctrl+Enter 在當(dāng)前行插入空行(原理同上條)
          Ctrl+Q 定位到最后編輯的地方
          Ctrl+L 定位在某行 (對于程序超過100的人就有福音了)
          Ctrl+M 最大化當(dāng)前的Edit或View (再按則反之)
          Ctrl+/ 注釋當(dāng)前行,再按則取消注釋
          Ctrl+O 快速顯示 OutLine
          Ctrl+T 快速顯示當(dāng)前類的繼承結(jié)構(gòu)
          Ctrl+W 關(guān)閉當(dāng)前Editer
          Ctrl+K 參照選中的Word快速定位到下一個
          Ctrl+E 快速顯示當(dāng)前Editer的下拉列表(如果當(dāng)前頁面沒有顯示的用黑體表示)
          Ctrl+/(小鍵盤) 折疊當(dāng)前類中的所有代碼
          Ctrl+×(小鍵盤) 展開當(dāng)前類中的所有代碼
          Ctrl+Space 代碼助手完成一些代碼的插入(但一般和輸入法有沖突,可以修改輸入法的熱鍵,也可以暫用Alt+/來代替)
          Ctrl+Shift+E 顯示管理當(dāng)前打開的所有的View的管理器(可以選擇關(guān)閉,激活等操作)
          Ctrl+J 正向增量查找(按下Ctrl+J后,你所輸入的每個字母編輯器都提供快速匹配定位到某個單詞,如果沒有,則在stutes line中顯示沒有找到了,查一個單詞時,特別實(shí)用,這個功能Idea兩年前就有了)
          Ctrl+Shift+J 反向增量查找(和上條相同,只不過是從后往前查)
          Ctrl+Shift+F4 關(guān)閉所有打開的Editer
          Ctrl+Shift+X 把當(dāng)前選中的文本全部變味小寫
          Ctrl+Shift+Y 把當(dāng)前選中的文本全部變?yōu)樾?br /> Ctrl+Shift+F 格式化當(dāng)前代碼
          Ctrl+Shift+P 定位到對于的匹配符(譬如{}) (從前面定位后面時,光標(biāo)要在匹配符里面,后面到前面,則反之)

          下面的快捷鍵是重構(gòu)里面常用的,本人就自己喜歡且常用的整理一下(注:一般重構(gòu)的快捷鍵都是Alt+Shift開頭的了)
          Alt+Shift+R 重命名 (是我自己最愛用的一個了,尤其是變量和類的Rename,比手工方法能節(jié)省很多勞動力)
          Alt+Shift+M 抽取方法 (這是重構(gòu)里面最常用的方法之一了,尤其是對一大堆泥團(tuán)代碼有用)
          Alt+Shift+C 修改函數(shù)結(jié)構(gòu)(比較實(shí)用,有N個函數(shù)調(diào)用了這個方法,修改一次搞定)
          Alt+Shift+L 抽取本地變量( 可以直接把一些魔法數(shù)字和字符串抽取成一個變量,尤其是多處調(diào)用的時候)
          Alt+Shift+F 把Class中的local變量變?yōu)閒ield變量 (比較實(shí)用的功能)
          Alt+Shift+I 合并變量(可能這樣說有點(diǎn)不妥Inline)
          Alt+Shift+V 移動函數(shù)和變量(不怎么常用)
          Alt+Shift+Z 重構(gòu)的后悔藥(Undo)

          編輯
          作用域 功能 快捷鍵 
          全局 查找并替換 Ctrl+F 
          文本編輯器 查找上一個 Ctrl+Shift+K 
          文本編輯器 查找下一個 Ctrl+K 
          全局 撤銷 Ctrl+Z 
          全局 復(fù)制 Ctrl+C 
          全局 恢復(fù)上一個選擇 Alt+Shift+↓ 
          全局 剪切 Ctrl+X 
          全局 快速修正 Ctrl1+1 
          全局 內(nèi)容輔助 Alt+/ 
          全局 全部選中 Ctrl+A 
          全局 刪除 Delete 
          全局 上下文信息 Alt+?
          Alt+Shift+?
          Ctrl+Shift+Space 
          Java編輯器 顯示工具提示描述 F2 
          Java編輯器 選擇封裝元素 Alt+Shift+↑ 
          Java編輯器 選擇上一個元素 Alt+Shift+← 
          Java編輯器 選擇下一個元素 Alt+Shift+→ 
          文本編輯器 增量查找 Ctrl+J 
          文本編輯器 增量逆向查找 Ctrl+Shift+J 
          全局 粘貼 Ctrl+V 
          全局 重做 Ctrl+Y 

           
          查看
          作用域 功能 快捷鍵 
          全局 放大 Ctrl+= 
          全局 縮小 Ctrl+- 

           
          窗口
          作用域 功能 快捷鍵 
          全局 激活編輯器 F12 
          全局 切換編輯器 Ctrl+Shift+W 
          全局 上一個編輯器 Ctrl+Shift+F6 
          全局 上一個視圖 Ctrl+Shift+F7 
          全局 上一個透視圖 Ctrl+Shift+F8 
          全局 下一個編輯器 Ctrl+F6 
          全局 下一個視圖 Ctrl+F7 
          全局 下一個透視圖 Ctrl+F8 
          文本編輯器 顯示標(biāo)尺上下文菜單 Ctrl+W 
          全局 顯示視圖菜單 Ctrl+F10 
          全局 顯示系統(tǒng)菜單 Alt+- 

           
          導(dǎo)航
          作用域 功能 快捷鍵 
          Java編輯器 打開結(jié)構(gòu) Ctrl+F3 
          全局 打開類型 Ctrl+Shift+T 
          全局 打開類型層次結(jié)構(gòu) F4 
          全局 打開聲明 F3 
          全局 打開外部javadoc Shift+F2 
          全局 打開資源 Ctrl+Shift+R 
          全局 后退歷史記錄 Alt+← 
          全局 前進(jìn)歷史記錄 Alt+→ 
          全局 上一個 Ctrl+, 
          全局 下一個 Ctrl+. 
          Java編輯器 顯示大綱 Ctrl+O 
          全局 在層次結(jié)構(gòu)中打開類型 Ctrl+Shift+H 
          全局 轉(zhuǎn)至匹配的括號 Ctrl+Shift+P 
          全局 轉(zhuǎn)至上一個編輯位置 Ctrl+Q 
          Java編輯器 轉(zhuǎn)至上一個成員 Ctrl+Shift+↑ 
          Java編輯器 轉(zhuǎn)至下一個成員 Ctrl+Shift+↓ 
          文本編輯器 轉(zhuǎn)至行 Ctrl+L 

           
          搜索
          作用域 功能 快捷鍵 
          全局 出現(xiàn)在文件中 Ctrl+Shift+U 
          全局 打開搜索對話框 Ctrl+H 
          全局 工作區(qū)中的聲明 Ctrl+G 
          全局 工作區(qū)中的引用 Ctrl+Shift+G 

           
          文本編輯
          作用域 功能 快捷鍵 
          文本編輯器 改寫切換 Insert 
          文本編輯器 上滾行 Ctrl+↑ 
          文本編輯器 下滾行 Ctrl+↓ 

           
          文件
          作用域 功能 快捷鍵 
          全局 保存 Ctrl+X 
          Ctrl+S 
          全局 打印 Ctrl+P 
          全局 關(guān)閉 Ctrl+F4 
          全局 全部保存 Ctrl+Shift+S 
          全局 全部關(guān)閉 Ctrl+Shift+F4 
          全局 屬性 Alt+Enter 
          全局 新建 Ctrl+N 

           
          項(xiàng)目
          作用域 功能 快捷鍵 
          全局 全部構(gòu)建 Ctrl+B 

           
          源代碼
          作用域 功能 快捷鍵 
          Java編輯器 格式化 Ctrl+Shift+F 
          Java編輯器 取消注釋 Ctrl+\ 
          Java編輯器 注釋 Ctrl+/ 
          Java編輯器 添加導(dǎo)入 Ctrl+Shift+M 
          Java編輯器 組織導(dǎo)入 Ctrl+Shift+O 
          Java編輯器 使用try/catch塊來包圍 未設(shè)置,太常用了,所以在這里列出,建議自己設(shè)置。
          也可以使用Ctrl+1自動修正。 

           
          運(yùn)行
          作用域 功能 快捷鍵 
          全局 單步返回 F7 
          全局 單步跳過 F6 
          全局 單步跳入 F5 
          全局 單步跳入選擇 Ctrl+F5 
          全局 調(diào)試上次啟動 F11 
          全局 繼續(xù) F8 
          全局 使用過濾器單步執(zhí)行 Shift+F5 
          全局 添加/去除斷點(diǎn) Ctrl+Shift+B 
          全局 顯示 Ctrl+D 
          全局 運(yùn)行上次啟動 Ctrl+F11 
          全局 運(yùn)行至行 Ctrl+R 
          全局 執(zhí)行 Ctrl+U 

           
          重構(gòu)
          作用域 功能 快捷鍵 
          全局 撤銷重構(gòu) Alt+Shift+Z 
          全局 抽取方法 Alt+Shift+M 
          全局 抽取局部變量 Alt+Shift+L 
          全局 內(nèi)聯(lián) Alt+Shift+I 
          全局 移動 Alt+Shift+V 
          全局 重命名 Alt+Shift+R 
          全局 重做 Alt+Shift+Y

          posted @ 2011-03-25 16:56 HsiangYu 閱讀(166) | 評論 (0)編輯 收藏

               摘要:     為什么要使用hibernate?舉一個例子:如果你的表中有100個字段,使用JDBC去插入記錄、更新記錄…這是非常恐怖的。如果插入或更新記錄出錯了呢?一個一個字段的對?想都不敢想,如果以后數(shù)據(jù)庫字段要全部添加后綴名呢!~~哇哇哇,受不了了。Ok,hibernate可以很好的解決JDBC的“漏洞”。   ...  閱讀全文

          posted @ 2011-03-21 20:42 HsiangYu 閱讀(226) | 評論 (0)編輯 收藏

               摘要:      一、為什么要使用Struts          在之前的學(xué)習(xí)過程中,我們編寫的練習(xí)程序有以下特點(diǎn)。 1. 使用 MVC 設(shè)計模式     1). 原則: 所有的請求...  閱讀全文

          posted @ 2011-03-15 22:56 HsiangYu 閱讀(201) | 評論 (0)編輯 收藏

          主站蜘蛛池模板: 庆安县| 灵寿县| 元谋县| 屏东县| 盱眙县| 宜君县| 绍兴县| 靖边县| 平顺县| 栾川县| 甘德县| 阳曲县| 资源县| 洛浦县| 黄大仙区| 大同县| 新绛县| 舒兰市| 铜山县| 通辽市| 西安市| 哈巴河县| 定西市| 永平县| 章丘市| 拜泉县| 鄂温| 武胜县| 鄂托克旗| 察雅县| 高安市| 黔西县| 卓资县| 苍山县| 武功县| 体育| 呼伦贝尔市| 宁强县| 甘谷县| 曲周县| 东港市|