欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      Java反射技術(shù)總結(jié)

      時(shí)間:2019-05-12 14:36:37下載本文作者:會(huì)員上傳
      簡(jiǎn)介:寫(xiě)寫(xiě)幫文庫(kù)小編為你整理了多篇相關(guān)的《Java反射技術(shù)總結(jié)》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫(xiě)寫(xiě)幫文庫(kù)還可以找到更多《Java反射技術(shù)總結(jié)》。

      第一篇:Java反射技術(shù)總結(jié)

      Java反射技術(shù)知識(shí)點(diǎn)總結(jié)

      1、反射:

      反射是指程序可以訪問(wèn)、檢測(cè)和修改它本身狀態(tài)或行為的一種能力。

      2、Java語(yǔ)言的反射機(jī)制主要提供以下功能:

      在運(yùn)行時(shí)判斷任意一個(gè)對(duì)象所屬的類(lèi) 在運(yùn)行時(shí)構(gòu)造任意一個(gè)類(lèi)的對(duì)象

      在運(yùn)行時(shí)判斷任意一個(gè)類(lèi)所具有的成員變量和方法 在運(yùn)行時(shí)調(diào)用任意一個(gè)類(lèi)所具有的成員變量和方法 生成動(dòng)態(tài)代理

      3、在java.lang.reflect包當(dāng)中提供了實(shí)現(xiàn)反射機(jī)制的類(lèi):

      Class類(lèi):代表一個(gè)類(lèi)。

      Field類(lèi):代表類(lèi)的成員變量,也稱(chēng)為類(lèi)的屬性。Method類(lèi):代表類(lèi)的方法。Constructor類(lèi):代表類(lèi)的構(gòu)造方法。

      Array類(lèi):該類(lèi)提供動(dòng)態(tài)地生成和訪問(wèn)java數(shù)組的方法。

      4、Class實(shí)例: Class類(lèi)和其它的類(lèi)一樣繼承自O(shè)bject類(lèi),Class對(duì)象包含了與類(lèi)相關(guān)的信息。

      事實(shí)上,Class對(duì)象就是用來(lái)創(chuàng)建類(lèi)的所有的“普通”對(duì)象的。類(lèi)是程序的一部分,每個(gè)類(lèi)都有一個(gè)Class對(duì)象。換言之,每當(dāng)編寫(xiě)并且編譯了一個(gè)新類(lèi)時(shí),就會(huì)產(chǎn)生一個(gè)Class對(duì)象(恰當(dāng)?shù)卣f(shuō),該對(duì)象被保存在一個(gè)同名的.class文件中)。在運(yùn)行時(shí),當(dāng)我們想生成這個(gè)類(lèi)的對(duì)象時(shí),運(yùn)行這個(gè)程序的java虛擬機(jī)(JVM)首先檢查這個(gè)類(lèi)的Class對(duì)象是否已經(jīng)加載。如果尚未加載,JVM就會(huì)根據(jù)類(lèi)名查找.class文件,并將其載入。

      一旦某個(gè)類(lèi)的Class對(duì)象被載入內(nèi)存,它就被用來(lái)創(chuàng)建這個(gè)類(lèi)的所有對(duì)象。這些對(duì)象都會(huì)對(duì)應(yīng)于同一個(gè)Class對(duì)象。

      要想使用反射,首先需要獲得待處理類(lèi)或?qū)ο笏鶎?duì)應(yīng)的Class實(shí)例。獲取Class實(shí)例的四種方式: 第一種:調(diào)用類(lèi)本身的.class屬性。Class c =String.class;第二種:調(diào)用對(duì)象的getClass()方法獲取該對(duì)象的Class實(shí)例。

      String str = “abc”;Class c = str.getClass();第三種:使用Class類(lèi)的靜態(tài)方法forName(),用類(lèi)的全名(包名.類(lèi)名)來(lái)獲取一個(gè)Class實(shí)例。

      Class.forName(“java.lang.String”);

      第四種:對(duì)于基本數(shù)據(jù)類(lèi)型的封裝類(lèi),可以采用.TYPE來(lái)獲取相對(duì)應(yīng)的基本數(shù)據(jù)類(lèi)型的Class實(shí)例。

      Class intClass = Integer.TYPE

      5、Class類(lèi)的其它方法: Object newInstance()

      使用Class對(duì)象生成該類(lèi)的新實(shí)例。它調(diào)用了缺?。o(wú)參數(shù))的類(lèi)構(gòu)造方法創(chuàng)建一個(gè)新的對(duì)象。所以使用newInstance()方法創(chuàng)建的類(lèi)必須有一個(gè)無(wú)參數(shù)的構(gòu)造方法。

      boolean isInstance()該方法提供了一種動(dòng)態(tài)地調(diào)用instanceof運(yùn)算符的途徑。Class[] getInterfaces()該方法返回Class對(duì)象的數(shù)組,這些對(duì)象代表的是某個(gè)Class對(duì)象所包含的接口 Class getSuperclass()該方法獲取該Class對(duì)象的直接基類(lèi)。這個(gè)方法自然也是返回一個(gè)Class引用,所以可以進(jìn)一步查詢(xún)其基類(lèi)。這意味著在運(yùn)行時(shí),可以找到某個(gè)對(duì)象的完整類(lèi)層次結(jié)構(gòu)。

      6、獲得類(lèi)的構(gòu)造方法可以調(diào)用Class類(lèi)對(duì)象的以下方法:

      Constructor getConstructor(Class[] params):獲得類(lèi)的指定參數(shù)類(lèi)型的公共構(gòu)造方法。Constructor[] getConstructors():獲得類(lèi)的所有公共構(gòu)造方法。

      Constructor getDeclaredConstructor(Class[] params):獲得類(lèi)的指定參數(shù)類(lèi)型的構(gòu)造方法(與訪問(wèn)級(jí)別無(wú)關(guān))。

      Constructor[] getDeclaredConstructors():獲得類(lèi)的所有構(gòu)造方法(與訪問(wèn)級(jí)別無(wú)關(guān))

      7、獲得類(lèi)的成員變量可以調(diào)用Class類(lèi)對(duì)象的以下方法:

      Field getField(String name):獲得指定的公共字段(屬性)Field[ ] getFields():獲得類(lèi)的所有公共字段(屬性)Field getDeclaredField(String name):獲得類(lèi)聲明的指定的字段(與訪問(wèn)級(jí)別無(wú)關(guān))Field[ ] getDeclaredFields():獲得類(lèi)聲明的所有字段

      8、獲得類(lèi)的成員方法可以調(diào)用Class類(lèi)對(duì)象的以下方法:

      Method getMethod(String name, Class[ ] params):獲取包含指定的參數(shù)類(lèi)型及名稱(chēng)的公共方法 Method[ ] getMethods():獲得類(lèi)的所有公共方法

      Method getDeclaredMethod(String name, Class[ ] params):獲取包含指定的參數(shù)類(lèi)型及名稱(chēng)的類(lèi)聲明的方法 Method[ ] getDeclaredMethods():獲得類(lèi)聲明的所有方法

      9、使用反射來(lái)動(dòng)態(tài)的調(diào)用類(lèi)的方法,需要使用java.lang.reflect.Method中的:Object invoke(Object obj, Object[ ] args)方法

      obj :指需要調(diào)用的那個(gè)方法的隱式參數(shù),也即那個(gè)方法所屬的對(duì)象,如果調(diào)用的是一個(gè)靜態(tài)方法將第一個(gè)參數(shù)指定為null。

      args :指需要調(diào)用的那個(gè)方法的顯式參數(shù),因?yàn)橐粋€(gè)方法可以有很多個(gè)參數(shù)所以在這里我們必須要用一個(gè)數(shù)組來(lái)存放這些參數(shù),在存放時(shí)需要把值類(lèi)型的參數(shù)轉(zhuǎn)換成相應(yīng)的包裝類(lèi)型存放進(jìn)去。

      10、使用反射來(lái)動(dòng)態(tài)的改變成員變量

      調(diào)用Class的getField()并指定field名稱(chēng),獲得特定的Field對(duì)象之后便可直接調(diào)用Field的get()和set()方法來(lái)改變成員變量了

      第二篇:java開(kāi)發(fā)技術(shù)總結(jié)

      數(shù)據(jù)庫(kù)

      oracle-->數(shù)據(jù)庫(kù)管理系統(tǒng)-->SQL、PL/SQL-->Java(JDBC+SQL)DBA,數(shù)據(jù)庫(kù)編程程序員 1.概念導(dǎo)論

      1)什么是數(shù)據(jù)庫(kù)

      有組織和結(jié)構(gòu)存儲(chǔ)數(shù)據(jù)??梢源鎯?chǔ) 字符、字節(jié)、圖形、圖像等類(lèi)型數(shù)據(jù)

      DB(數(shù)據(jù)庫(kù)):數(shù)據(jù)集合

      DBMS(數(shù)據(jù)庫(kù)管理系統(tǒng)):對(duì)數(shù)據(jù)集合進(jìn)行管理和操作的軟件

      --Oracle

      --DB2

      --MySQL

      --SQLSERVER

      JDBC 1.什么是JDBC 全稱(chēng)Java DataBase Connection,Java數(shù)據(jù)庫(kù)訪問(wèn)。

      JDBC是Java訪問(wèn)數(shù)據(jù)庫(kù)的一項(xiàng)技術(shù)

      JDBC是SUN推出的Java訪問(wèn)數(shù)據(jù)庫(kù)的一套標(biāo)準(zhǔn)。由一系列接口構(gòu)成。

      各個(gè)數(shù)據(jù)庫(kù)廠商負(fù)責(zé)提供JDBC接口API的實(shí)現(xiàn)包。

      開(kāi)發(fā)者只需要掌握J(rèn)DBC接口的使用,就可以實(shí)現(xiàn)對(duì)各種數(shù)據(jù)庫(kù)的操作,不需要了解開(kāi)發(fā)商的實(shí)現(xiàn)類(lèi)。

      XML

      1、什么是xml(xtendsible markup language可擴(kuò) 展的標(biāo)記語(yǔ)言)? 1)定義

      基于文本的通用的數(shù)據(jù)保存格式。

      (1)通用的點(diǎn)的坐標(biāo)

      Point類(lèi)

      point對(duì)象(x=10,y=20)

      a,序列化

      b,數(shù)據(jù)庫(kù)表

      c,文件

      ...(2)數(shù)據(jù)格式

      10

      20

      HTML 知識(shí)準(zhǔn)備

      1、分層:表現(xiàn)層:UI界面(DOS界面、桌面類(lèi)型、web類(lèi)型)

      業(yè)務(wù)層:

      數(shù)據(jù)層:文件、Oracle數(shù)據(jù)庫(kù)

      2、Web類(lèi)型的應(yīng)用程序----B/S 類(lèi)型

      打開(kāi) Browser,輸入 URL,瀏覽器將請(qǐng)求發(fā)送到服務(wù)器

      服務(wù)器得到請(qǐng)求,分析,返回響應(yīng)

      瀏覽器得到響應(yīng),解析(翻譯),顯示為頁(yè)面

      3、web 學(xué)習(xí)階段

      客戶端技術(shù):HTML+CSS+Javascript---Web 基礎(chǔ)

      服務(wù)器端技術(shù):JSP、PHP、ASP.NET

      4、web基礎(chǔ)的課程

      HTML:頁(yè)面的創(chuàng)建

      CSS:頁(yè)面的外觀

      JavaScript:頁(yè)面的動(dòng)態(tài)效果和交互行為--3 一:HTML 概述

      1、超文本標(biāo)記語(yǔ)言:一種編寫(xiě)頁(yè)面的純文本的標(biāo)記語(yǔ)言,文件以.html或者.htm 為后綴,依靠瀏覽器運(yùn)行顯示----解釋性的語(yǔ)言

      2、標(biāo)記:一些用 <> 括起來(lái)的內(nèi)容,特殊的顯示

      3、主流瀏覽器:IE/Firefox/Chrome/

      4、瀏覽器兼容性:符合標(biāo)準(zhǔn)規(guī)范,具體問(wèn)題

      CSS 一:CSS 概述

      1、CSS:級(jí)聯(lián)樣式表(層疊樣式表)

      2、特征:為頁(yè)面定義外觀的語(yǔ)言,實(shí)現(xiàn)內(nèi)容和表現(xiàn)的分離,多個(gè)樣式可以合為一個(gè),如果沖突,以?xún)?yōu)先級(jí)為準(zhǔn)

      二:基礎(chǔ)語(yǔ)法

      1、語(yǔ)法:

      屬性名稱(chēng):值;屬性名稱(chēng):值;比如--color:red;

      2、如何應(yīng)用

      方式一(內(nèi)聯(lián)方式):<元素 style=“" />---將樣式直接定義在元素的 style 屬性里

      方式二(內(nèi)部樣式表):在頁(yè)面的 head 里的 style 里定義樣式

      方式三(外部樣式表):定義一個(gè)單獨(dú)的.css的文件(定義樣式);然后,在頁(yè)面的 head 里用 link 引入---推薦方式

      3、外部樣式表的優(yōu)點(diǎn):實(shí)現(xiàn)內(nèi)容和表現(xiàn)的分離,提高代碼的可重用性和可維護(hù)性

      ---可以準(zhǔn)備多套樣式---換皮膚/主題

      4、樣式表,如果重復(fù)定義

      a、樣式不同,取并集

      b、相同,按照優(yōu)先級(jí)

      內(nèi)聯(lián) > 內(nèi)部或者外部

      c、相同優(yōu)先級(jí)下,以最后定義的為準(zhǔn)

      javascript 一:javascript 概述

      1、什么是 javascript:一種基于對(duì)象和事件驅(qū)動(dòng)的解釋性腳本語(yǔ)言,嵌入到網(wǎng)頁(yè)上

      2、歷史:js代碼---W3C定義了標(biāo)準(zhǔn)規(guī)范的 js 代碼

      3、瀏覽器兼容問(wèn)題:標(biāo)準(zhǔn)代碼,個(gè)別情況個(gè)別對(duì)待

      4、怎么寫(xiě)

      方式一:直接寫(xiě)在事件里,僅限于代碼很少

      方式二:寫(xiě)在 head 的 script 里,僅限于當(dāng)前頁(yè)面重用

      方式三:寫(xiě)在 js 文件里,html 頁(yè)面的head 里用 script 引入

      5、js的特征53………………………………………………..一種解釋性的腳本語(yǔ)言,適用于為網(wǎng)頁(yè)添加動(dòng)態(tài)效果和交互行為

      6、錯(cuò)誤:

      二:基礎(chǔ)語(yǔ)法

      1、寫(xiě)法:以 ;結(jié)束,大小寫(xiě)敏感

      2、標(biāo)識(shí)符:以字母、數(shù)字和下劃線還有 $組成,不以數(shù)字開(kāi)頭---不能和系統(tǒng)關(guān)鍵字重

      3、變量 ***----聲明變量,以 var 開(kāi)始

      var i = 1;var s = ”mary“;var b = true;js是一種弱類(lèi)型的語(yǔ)言---變量聲明時(shí)不需要確定類(lèi)型,數(shù)據(jù)類(lèi)型以賦值為準(zhǔn)

      4、數(shù)據(jù)類(lèi)型

      簡(jiǎn)單類(lèi)型:string、number、bool 特殊類(lèi)型:null、undefined

      var i;

      alert(i);---undefined 復(fù)雜類(lèi)型:對(duì)象

      5、(string)字符串類(lèi)型

      var s = ”mary“;var s = 'mary';

      特殊字符:使用轉(zhuǎn)義---轉(zhuǎn)換為普通字符,解決漢字的問(wèn)題

      ”hello'w“ornld” alert(“一”);alert(“u4e00”);[u4e00-u9fa5]

      6、number:并不區(qū)分整數(shù)和小數(shù)

      var n = 12;var n1 = 12.34;

      7、bool:true(1)和 false(0)

      8、數(shù)據(jù)類(lèi)型之間的轉(zhuǎn)換

      var n = 18;var name = “mary”;隱式轉(zhuǎn)換(直接)

      string + number--

      number + bool--

      bool + bool--

      string + bool--

      顯式轉(zhuǎn)換(調(diào)用方法)*** xxx.toString()parseInt(xxx);parseFloat(xxx);--確實(shí)能轉(zhuǎn),如果不能轉(zhuǎn),將返回 NaN

      NaN---not a number 判斷

      isNaN(“aaa”)--is not a number--返回 bool

      9、運(yùn)算符

      算術(shù)運(yùn)算符、比較、邏輯、位。。

      特殊一:***

      === 嚴(yán)格相等:值和類(lèi)型

      if(a == b)

      if(a === b)servlet 1、web開(kāi)發(fā)的背景知識(shí)(了解)b/s架構(gòu):

      特點(diǎn):

      客戶端使用瀏覽器,服務(wù)器端使用web服務(wù)器,客戶端與服務(wù)器端使用標(biāo)準(zhǔn)化的http協(xié)議來(lái)進(jìn)行通信。

      優(yōu)點(diǎn):

      與c/s架構(gòu)相比,有兩個(gè)優(yōu)點(diǎn):

      a,客戶端不需要單獨(dú)安裝

      b,開(kāi)發(fā)相對(duì)簡(jiǎn)單(因?yàn)閏/s架構(gòu)需要自定義協(xié)議,開(kāi)發(fā)相應(yīng)的 通信模塊,而b/s使用標(biāo)準(zhǔn)化的http協(xié)議,瀏覽器與 web服務(wù)器都提供了相應(yīng)的通信模塊)。

      2、什么是servlet? sun公司制訂的一種用來(lái)擴(kuò)展web服務(wù)器功能的組件規(guī)范。

      (1)擴(kuò)展web服務(wù)器功能

      早期的web服務(wù)器(iis,apache ws等等),只能夠處理靜態(tài)

      資源的請(qǐng)求(即需要事先將html文件寫(xiě)好并保存到web服務(wù)器

      相應(yīng)的文件夾下面),不能夠處理動(dòng)態(tài)資源的請(qǐng)求(即需要進(jìn)行

      計(jì)算,然后生成相應(yīng)的html)。

      a,可以使用cgi程序來(lái)擴(kuò)展。

      cgi程序可以使用c/c++,perl等語(yǔ)言來(lái)開(kāi)發(fā),但是,程序比較復(fù)雜,而且可移值性不好,性能也比較差,現(xiàn)在用得不多。

      b,servlet可以擴(kuò)展這些web服務(wù)器的功能。

      瀏覽器發(fā)送請(qǐng)求給web服務(wù)器(apache ws),web服務(wù)器

      檢查請(qǐng)求是否需要計(jì)算,如果需要,web服務(wù)器會(huì)訪問(wèn)

      servlet容器,servlet容器會(huì)調(diào)用servlet來(lái)進(jìn)行計(jì)算。

      (2)組件規(guī)范

      1)什么是組件?

      符合一定規(guī)范,實(shí)現(xiàn)部分功能,并且需要部署到

      相應(yīng)的容器里面才能運(yùn)行的軟件模塊。

      2)什么是容器?

      符合一定規(guī)范,為組件提供運(yùn)行環(huán)境及相應(yīng)服務(wù)的 程序。

      3、如何開(kāi)發(fā)一個(gè)servlet? step1,先寫(xiě)一個(gè)java類(lèi),實(shí)現(xiàn)Servlet接口或者繼承

      HttpServlet類(lèi)(一般會(huì)使用繼承的方式)。

      step2,編譯

      step3,打包(創(chuàng)建一個(gè)具有如下結(jié)構(gòu)的文件夾)

      appname(應(yīng)用名稱(chēng))

      WEB-INF

      classes(放.class文件)

      lib(可選,放.jar文件)

      web.xml(部署描述文件)step4,部署

      將step3創(chuàng)建好的文件夾拷貝到servlet容器指定的 某個(gè)文件夾下面(比如,如果容器是tomcat,可以拷貝到

      webapps文件夾下面)。

      注意:也可以使用jar命令將step3創(chuàng)建好的文件夾

      壓縮成一個(gè)以“.war”為后綴的文件,然后拷貝。

      step5,啟動(dòng)servlet容器,訪問(wèn)servlet

      http://ip:port/appname/servlet-url

      6、servlet是如何運(yùn)行的? 比如,在瀏覽器地址欄輸入

      http://ip:port/web01/hello

      step1,瀏覽器依據(jù)ip,port建立與servlet容器(容器同時(shí) 也是一個(gè)簡(jiǎn)單的web服務(wù)器)之間的連接。

      step2,瀏覽器將請(qǐng)求數(shù)據(jù)打包(按照http協(xié)議,該數(shù)據(jù)包 也稱(chēng)為請(qǐng)求數(shù)據(jù)包)。

      step3,瀏覽器發(fā)送請(qǐng)求數(shù)據(jù)包給容器。

      step4,容器收到請(qǐng)求數(shù)據(jù)包之后,解析該數(shù)據(jù)包,并將

      解析之后得到的數(shù)據(jù)封裝到request(請(qǐng)求數(shù)據(jù)包)對(duì)象上,同時(shí),容器 還要?jiǎng)?chuàng)建response對(duì)象。

      step5,容器要依據(jù)請(qǐng)求資源路徑(“/web01/hello”)找到 servlet的配置,然后創(chuàng)建servlet對(duì)象。

      step6,容器調(diào)用servlet對(duì)象的service方法。容器會(huì)將事先 創(chuàng)建好的request,response作為參數(shù)傳遞給service方法。step7,在service方法里面,可以通過(guò)request對(duì)象獲得

      請(qǐng)求參數(shù),并進(jìn)行相應(yīng)的處理,處理結(jié)果會(huì)放到response對(duì)象 里面。

      step8,容器從response對(duì)象中取出處理結(jié)果,然后打包(按照http協(xié)議,該數(shù)據(jù)包稱(chēng)之為響應(yīng)數(shù)據(jù)包)。然后將 響應(yīng)數(shù)據(jù)包發(fā)送給瀏覽器。

      step9,瀏覽器收到響應(yīng)數(shù)據(jù)包之后,解析處理結(jié)果,然后生成 相應(yīng)的頁(yè)面。

      http://localhost:8080/web01/hello?uname=jetty ?后是請(qǐng)求參數(shù),其中uname是參數(shù)名,jetty是參數(shù)值。

      JSP

      1、什么是jsp(java server page java服務(wù)器端頁(yè)面技術(shù))? 1)定義

      sun公司制訂的一種服務(wù)器端動(dòng)態(tài)頁(yè)面生成技術(shù)規(guī)范。

      2)理解

      a,因?yàn)橹苯邮褂胹ervlet,雖然也可以生成動(dòng)態(tài)頁(yè)面,但是比較繁瑣(需要使用out.println語(yǔ)句),并且維護(hù)困難

      (如果頁(yè)面發(fā)生改變,必須修改java代碼),所以,sun 在servlet規(guī)范制訂之后,又添加了jsp規(guī)范。

      b,jsp其實(shí)就是一個(gè)以“.jsp”為后綴的文本文件,該文件會(huì)被容器(比如tomcat)轉(zhuǎn)換成一個(gè)servlet。

      2、如何寫(xiě)一個(gè)jsp文件? step1,寫(xiě)一個(gè)以“.jsp”為后綴的文件。step2,在該文件里面,可以添加如下的內(nèi)容:

      1)html(css,javascript)

      直接寫(xiě)即可(不用out.println)

      2)java代碼

      a, java代碼片斷

      <% java代碼;

      %>

      b, jsp表達(dá)式

      <%= java表達(dá)式 %>

      3)指令

      a,什么是指令?

      告訴容器,在容器將.jsp文件轉(zhuǎn)換成.java文件時(shí)

      做一些額外的處理,比如導(dǎo)包。

      b,基本語(yǔ)法

      <%@指令名稱(chēng) 屬性名稱(chēng)=屬性值 %>

      c,page指令

      import屬性:導(dǎo)包,比如

      <%@page import=“java.util.*”%>

      <%@page import=“java.util.*,java.text.*”%>

      contentType屬性:設(shè)置

      response.setContentType的內(nèi)容,比如

      <%@page contentType=“text/html;charset=utf-8”%>

      pageEncoding屬性:告訴容器jsp文件的編碼。

      因?yàn)槿萜餍枰xjsp文件的內(nèi)容(也就是

      說(shuō),需要解碼,某些容器,如果沒(méi)有該

      屬性,默認(rèn)情況下會(huì)按照iso-8859-1

      去解碼,會(huì)產(chǎn)生亂碼問(wèn)題)。

      4)隱含對(duì)象

      a,什么是隱含對(duì)象?

      在jsp文件里面可以直接使用的對(duì)象,比如

      out,request,response。

      b,為什么可以直接使用這些隱含對(duì)象?

      因?yàn)槿萜鲿?huì)自動(dòng)添加創(chuàng)建這些對(duì)象的語(yǔ)句。

      3、jsp是如何運(yùn)行的? step1,容器要將.jsp文件轉(zhuǎn)換成.java文件(其實(shí)就是

      一個(gè)servlet類(lèi))。

      a, html(css,javascript)--->

      在service方法里,使用out.write輸出。

      (out.write方法會(huì)將null轉(zhuǎn)換成“"輸出)

      b,<%

      %>

      ----->

      在service方法里,照搬。

      c, <%=

      %>

      ----->

      在service方法里,使用out.print輸出。

      step2,容器調(diào)用servlet來(lái)處理請(qǐng)求。

      4、轉(zhuǎn)發(fā)

      (1)什么是轉(zhuǎn)發(fā)?

      一個(gè)web組件(servlet/jsp)將未完成的處理通過(guò)

      容器交給另外一個(gè)web組件繼續(xù)完成。

      最常見(jiàn)的情況:

      一個(gè)servlet獲得數(shù)據(jù),然后轉(zhuǎn)發(fā)給一個(gè)jsp來(lái)展現(xiàn)

      這些數(shù)據(jù)。

      (2)如何轉(zhuǎn)發(fā)?

      step1,綁訂數(shù)據(jù)到request對(duì)象上。

      request.setAttribute(String name,Object value);

      說(shuō)明:

      name:綁訂名稱(chēng)

      value:綁訂值 step2,獲得轉(zhuǎn)發(fā)器

      RequestDispatcher rd =

      request.getRequestDispatcher(String uri);

      說(shuō)明:

      url : 轉(zhuǎn)發(fā)的目的地 step3,轉(zhuǎn)發(fā)

      rd.forward(request,response);request對(duì)象的其它和綁訂相關(guān)的方法: 依據(jù)綁訂名稱(chēng)找到綁訂值,如果找不到對(duì)應(yīng)的值,返回null。

      Object request.getAttribute(String name);

      解除綁訂

      request.removeAttribute(String name)(3)轉(zhuǎn)發(fā)的特點(diǎn)

      a,轉(zhuǎn)發(fā)之后,瀏覽器地址欄的地址不變。

      b,轉(zhuǎn)發(fā)的目的地必須是同一個(gè)應(yīng)用內(nèi)部某個(gè)

      web組件的地址。

      Ajax

      1、ajax是什么?(asynchronous javascript and xml 異步的javascript 和xml)

      ajax是一種用來(lái)改善用戶體驗(yàn)的技術(shù),其實(shí)質(zhì)是

      利用瀏覽器提供的一個(gè)特殊的對(duì)象(XMLHttpRequest 對(duì)象,一般稱(chēng)之為ajax對(duì)象)異步地(當(dāng)ajax對(duì)象向

      服務(wù)器發(fā)請(qǐng)求時(shí),瀏覽器不會(huì)銷(xiāo)毀當(dāng)前頁(yè)面,用戶

      仍然可以對(duì)當(dāng)前頁(yè)面做其它的操作)向服務(wù)器發(fā)送請(qǐng)求。服務(wù)器返回的數(shù)據(jù)不再是一個(gè)完整的新的頁(yè)面,而是部分?jǐn)?shù)據(jù),利用這些數(shù)據(jù),更新當(dāng)前頁(yè)面。整個(gè)

      過(guò)程,頁(yè)面無(wú)刷新,不打斷用戶的操作。

      2、如何獲得ajax對(duì)象?

      XMLHttpRequest沒(méi)有標(biāo)準(zhǔn)化,要區(qū)分瀏覽器。

      function getXhr(){

      var xhr = null;

      if(window.XMLHttpRequest){

      } //非ie瀏覽器

      xhr = new XMLHttpRequest();}else{ //ie瀏覽器

      xhr = new ActiveXObject('MicroSoft.XMLHttp');} return xhr;

      4、編程步驟

      step1,獲得ajax對(duì)象。

      比如:

      var xhr = getXhr();

      step2,使用ajax對(duì)象發(fā)請(qǐng)求。

      1)發(fā)送get請(qǐng)求

      xhr.open('get', 'check_username.do?username=tom',true);xhr.onreadystatechange=f1;xhr.send(null);注意:

      true:發(fā)送異步請(qǐng)求(ajax對(duì)象發(fā)請(qǐng)求時(shí),瀏覽器不會(huì)銷(xiāo)毀當(dāng)前頁(yè)面,用戶仍然可以

      做其它操作)。

      false:發(fā)送同步請(qǐng)求(ajax對(duì)象發(fā)請(qǐng)求時(shí),瀏覽器不會(huì)銷(xiāo)毀當(dāng)前頁(yè)面,瀏覽器會(huì)鎖定

      當(dāng)前頁(yè)面,用戶不能操作當(dāng)前頁(yè)面)。step3,編寫(xiě)服務(wù)器端的處理代碼,一般不再需要返回

      一個(gè)完整的頁(yè)面,只需要返回部分?jǐn)?shù)據(jù)。step4,編寫(xiě)事件處理函數(shù)

      function f1(){

      if(xhr.readyState == 4){

      var txt = xhr.responseText;

      更新當(dāng)前頁(yè)面

      }

      } jQuery

      1、jQuery介紹 004km.cn

      (1)特點(diǎn)

      利用選擇器查找要操作的節(jié)點(diǎn),并且會(huì)將這些節(jié)點(diǎn)

      封裝成一個(gè)jQuery對(duì)象。通過(guò)調(diào)用jQuery對(duì)象的屬性

      或者方法來(lái)實(shí)現(xiàn)對(duì)底層節(jié)點(diǎn)的操作,這樣做的好處有

      兩個(gè):一是兼容性更好了,另外,代碼得到簡(jiǎn)化。

      (2)編程步驟

      step1,使用jQuery選擇器查找要操作的節(jié)點(diǎn)。

      step2,調(diào)用jQuery對(duì)象的方法或者屬性。

      (3)一個(gè)簡(jiǎn)單例子 first.html(4)jQuery對(duì)象與dom對(duì)象如何相互轉(zhuǎn)換?

      1)dom對(duì)象---> jQuery對(duì)象

      $(dom對(duì)象)

      2)jQuery對(duì)象---> dom對(duì)象

      2、選擇器

      (1)選擇器是什么?

      jQuery借鑒了css選擇器的語(yǔ)法,用來(lái)查找要操作的節(jié)點(diǎn)。

      (2)基本選擇器

      selector / s1.html

      #id

      .class

      element

      select1,select2..selectn

      *(3)層次選擇器

      selector / s2.html

      select1 select2:查找所有的后代

      select1>select2:只查找子節(jié)點(diǎn)

      select1+select2:下一個(gè)兄弟

      select1~select2:下面所有兄弟

      (4)過(guò)濾選擇器

      1)基本過(guò)濾選擇器

      selector / s3.html

      :first

      :last

      :not(select)排除滿足select要求的節(jié)點(diǎn) :even :odd :eq(index):gt(index):lt(index)2)內(nèi)容過(guò)濾選擇器

      selector / s4.html :contains(text)匹配包含給定文本的元素

      :empty 匹配所有不包含子元素或者文本的空元素

      :has(select)匹配含有選擇器所匹配的元素的元素

      :parent 匹配含有子元素或者文本的元素 3)可見(jiàn)性過(guò)濾選擇器 selector / s5.html :hidden 匹配所有不可見(jiàn)元素,或者type為hidden的元素

      :visible 匹配所有的可見(jiàn)元素 4)屬性過(guò)濾選擇器 selector / s6.html [attribute] [attribute=value] [attribute!=value] 5)子元素過(guò)濾選擇器

      selector / s7.html :nth-child(index/even/odd)

      注意: 下標(biāo)從1開(kāi)始。

      6)表單對(duì)象屬性過(guò)濾選擇器 selector / s8.html

      :enabled

      :disabled

      :checked

      :selected(5)表單選擇器

      :input :text

      :pasword :radio :checkbox :submit :image :reset :button :file :hidden

      3、dom 1)查詢(xún)

      dom / d1.html

      找到節(jié)點(diǎn)之后,可以讀取或者修改節(jié)點(diǎn)的html內(nèi)容,文本,值,屬性。

      a, html()讀取或者修改節(jié)點(diǎn)的html內(nèi)容

      b, text()讀取或者修改節(jié)點(diǎn)的文本內(nèi)容

      c, val()

      讀取或者修改節(jié)點(diǎn)的值

      d, attr()讀取或者修改節(jié)點(diǎn)的屬性

      2)創(chuàng)建

      dom / d2.html

      $(html);3)插入節(jié)點(diǎn)

      append():作為最后一個(gè)孩子添加進(jìn)來(lái)。

      prepend():作為第一個(gè)孩子添加進(jìn)來(lái)。

      after():作為下一個(gè)兄弟

      before():作為上一個(gè)兄弟 4)刪除節(jié)點(diǎn)

      dom / d3.html remove()remove(selector)empty():清空節(jié)點(diǎn)

      5)數(shù)據(jù)與行為分離 dom / d4.html d5.html 即不用修改html文件,通過(guò)引入外部的js文件來(lái) 為頁(yè)面提供動(dòng)態(tài)效果。

      $(fn);fn是一個(gè)函數(shù)的名稱(chēng)

      或者

      $(function(){

      //當(dāng)整個(gè)頁(yè)面加載完畢,會(huì)執(zhí)行這兒的代碼。

      });6)復(fù)制節(jié)點(diǎn) dom / d6.html clone()clone(true):使復(fù)制的節(jié)點(diǎn)也具有行為(將事件

      處理代碼一塊復(fù)制)7)屬性操作

      讀?。篴ttr('id');設(shè)置: attr('id','d1')或者一次

      設(shè)置多個(gè) attr({”id“:”d1“,”class“:”s1“});刪除:removeAttr('id')8)樣式操作 dom / d7.html 獲取和設(shè)置: attr(”class“,”“)attr(”style“,”“)追加:addClass('')移除:removeClass('')

      或者removeClass('s1 s2')

      或者removeClass()//會(huì)刪除所有樣式

      切換樣式:toggleClass,有該樣式,就刪除,沒(méi)有,就添加。

      是否有某個(gè)樣式 hasClass('')讀取css('')設(shè)置css('','')或者

      css({'':'','':''})//設(shè)置多個(gè)樣式 9)遍歷節(jié)點(diǎn) dom / d8.html children()/children(select):只考慮子元素,不考慮其它后代元素。

      next()/next(select):下一個(gè)兄弟

      prev()/prev(select):上一個(gè)兄弟

      siblings()/siblings(select):其它兄弟

      find(select):從當(dāng)前節(jié)點(diǎn)向下查找所有的后代

      (滿足select要求的)parent():父節(jié)點(diǎn)

      struts

      1、什么是Struts? Struts是基于MVC的輕量級(jí)框架,主要處理請(qǐng)求分發(fā)的問(wèn)題,重心在控制層和表現(xiàn)層。

      --基于MVC:實(shí)現(xiàn)了MVC,滿足MVC的設(shè)計(jì)思想。

      --輕量:侵入性低,是我們業(yè)務(wù)代碼對(duì)框架的依賴(lài)程度很小,既很少需要import Struts包。

      --框架:基礎(chǔ)的代碼,引入之后可以減少我們的開(kāi)發(fā)工作量,提高開(kāi)發(fā)效率。

      2、為什么用Struts? 1)對(duì)比Servlet

      --Servlet優(yōu)缺點(diǎn)

      優(yōu)點(diǎn):直接、效率高

      缺點(diǎn):業(yè)務(wù)代碼耦合度高,不便于維護(hù)

      --Struts優(yōu)缺點(diǎn)

      優(yōu)點(diǎn):將業(yè)務(wù)代碼解藕,便于維護(hù)

      缺點(diǎn):效率低

      --Servlet中的MVC與Struts中的MVC,參考圖理解

      2)對(duì)比其他框架

      --健壯性(4*):穩(wěn)定程度

      --易用性(4*):好學(xué)、好用

      --擴(kuò)展性(5*):就軟件未來(lái)而言,將來(lái)有更復(fù)雜的需求時(shí),是否有處理方式。

      --侵入性(4*):與依賴(lài)性/耦合度成正比

      3、Struts發(fā)展史

      1)Struts1,結(jié)構(gòu)簡(jiǎn)單、易用,由Apache推出。

      與Servlet/JSP耦合緊密,導(dǎo)致發(fā)展受限。

      2)WebWork,技術(shù)先進(jìn),核心是XWork。

      3)Struts2,基于XWork,在此基礎(chǔ)上發(fā)展形成。

      面試題:Struts1和Struts2的區(qū)別和聯(lián)系?

      --Struts2與Struts1差別很大,不能理解為Struts1

      的升級(jí)版本。

      --Struts2以XWork為核心,可以理解為WebWork

      的升級(jí)版本。

      *

      4、Struts2使用步驟,HelloWorld--使用版本Struts2.1.8 1)創(chuàng)建web項(xiàng)目

      2)導(dǎo)包

      3)配置前端控制器(filter)

      --在web.xml中配置filter

      --控制請(qǐng)求分發(fā)的控制器

      4)創(chuàng)建struts.xml--放在src根路徑

      --名稱(chēng)必須是struts.xml 5)*創(chuàng)建Action--控制業(yè)務(wù)流程的控制器 6)*創(chuàng)建JSP 7)*配置struts.xml--體現(xiàn)請(qǐng)求和Action的關(guān)系

      --體現(xiàn)Action和JSP的關(guān)系

      *

      5、擴(kuò)展HelloWorld 目標(biāo):掌握Action與JSP頁(yè)面數(shù)據(jù)交換的方式。

      1)Action如何向頁(yè)面發(fā)送數(shù)據(jù)?

      --通過(guò)EL表達(dá)式

      2)*Action如何從頁(yè)面接收數(shù)據(jù)?

      --注入:調(diào)用JavaBean的set方法,為其屬性賦值的行為稱(chēng)之為注入。

      *a、基礎(chǔ)屬性注入

      --Action中定義基本類(lèi)型的屬性,給它set方法

      --表單中,文本框的name=”屬性名“

      --表單提交時(shí),Struts2會(huì)自動(dòng)將表單的內(nèi)容,傳遞給Action里的屬性。

      --Struts2會(huì)自動(dòng)初始化屬性

      --注意:Action跳轉(zhuǎn)的頁(yè)面,EL表達(dá)式${屬性名}

      *b、域模型注入

      --Action中定義JavaBean類(lèi)型的屬性,給他set方法

      --表單中,文本框的name=”對(duì)象名.屬性名“

      --表單提交時(shí),Struts2會(huì)自動(dòng)將表單的內(nèi)容,傳遞給Action里定義的對(duì)象

      --Struts2會(huì)自動(dòng)的初始化對(duì)象

      --注意:Action跳轉(zhuǎn)的頁(yè)面,EL表達(dá)式${對(duì)象名.屬性名}

      c、模型驅(qū)動(dòng)注入(了解即可)

      --需要Action實(shí)現(xiàn)接口ModelDriven

      *

      6、使用Struts2實(shí)現(xiàn)NetCTOSS中的資費(fèi)列表

      --準(zhǔn)備:分析需求、了解表結(jié)構(gòu)、建表

      1)創(chuàng)建web項(xiàng)目

      2)導(dǎo)包

      3)前端控制器(filter)4)創(chuàng)建struts.xml 5)創(chuàng)建Action

      -->filter->struts.xml->Action

      -->DAO-->DBUtil,Entity a、Entity b、DBUtil c、DAO d、Action 6)JSP 7)配置struts.xml Hibernate

      1、什么是Hibernate 1)Hibernate是數(shù)據(jù)訪問(wèn)層的框架,對(duì)JDBC進(jìn)行了

      封裝,是針對(duì)數(shù)據(jù)訪問(wèn)層的面向?qū)ο蟮慕鉀Q方案。

      2)Hibernate允許我們直接訪問(wèn)對(duì)象,然后將訪問(wèn)

      自動(dòng)轉(zhuǎn)化為SQL去執(zhí)行,從而達(dá)到間接訪問(wèn)數(shù)據(jù)庫(kù)

      的目的,簡(jiǎn)化代碼開(kāi)發(fā),提升開(kāi)發(fā)效率。

      2、為什么使用Hibernate 1)使用JDBC開(kāi)發(fā)出現(xiàn)的問(wèn)題

      --需要在代碼中寫(xiě)大量的SQL

      --需要給大量的?賦值

      --需要將結(jié)果集轉(zhuǎn)換為實(shí)體對(duì)象

      --在SQL中可能會(huì)寫(xiě)數(shù)據(jù)庫(kù)特定的函數(shù),移植性差。

      2)使用Hibernate可以解決上面的問(wèn)題

      --基本上不需要寫(xiě)SQL,因?yàn)镠ibernate可以

      自動(dòng)生成SQL并執(zhí)行

      --可以自動(dòng)給?賦值

      --可以自動(dòng)將結(jié)果集轉(zhuǎn)換為實(shí)體對(duì)象

      --Hibernate提供通用的API來(lái)訪問(wèn)不同的數(shù)據(jù)庫(kù),移植性好。

      3)補(bǔ)充JDBC與Hibernate的優(yōu)缺點(diǎn)

      a、JDBC優(yōu)點(diǎn):

      效率高

      b、Hibernate缺點(diǎn):

      效率相對(duì)于JDBC要低

      *

      3、Hibernate的設(shè)計(jì)原理

      1)Hibernate是采用了ORM的思想,對(duì)JDBC進(jìn)行的 封裝。

      2)ORM:Object Relation Mapping,即對(duì)象關(guān)系

      映射,指的是Java對(duì)象和關(guān)系數(shù)據(jù)庫(kù)的映射。

      --之前使用JDBC開(kāi)發(fā)時(shí),需要知道數(shù)據(jù)庫(kù)表和實(shí)體

      對(duì)象的關(guān)系,以及字段和對(duì)象屬性的關(guān)系,比如

      需要知道COST表和Cost對(duì)象的關(guān)系。那么這種 關(guān)系我們之前是手動(dòng)維護(hù)的,比如: cost.setName(rs.getString(”name“));ps.setString(2,cost.getName());--ORM思想是希望將這種關(guān)系的維護(hù)提煉出來(lái),用一個(gè)公共的組件描述,那么在我們?cè)L問(wèn)數(shù)據(jù)庫(kù)

      時(shí),需要使用這種關(guān)系時(shí),可以復(fù)用基于ORM 思想提煉出來(lái)的關(guān)系

      --正是由于存在這樣通用關(guān)系的描述,Hibernate 才可以讓我們直接訪問(wèn)Java對(duì)象,從而通過(guò)

      關(guān)系轉(zhuǎn)換成SQL自動(dòng)執(zhí)行。

      --Hibernate中將這種關(guān)系定義在XML配置文件中。

      4、Hibernate體系結(jié)構(gòu)

      1)hibernate.cfg.xml

      是Hibernate的主配置文件,用于配置數(shù)據(jù)庫(kù)連接

      參數(shù),以及Hibernate框架參數(shù)。

      2)實(shí)體類(lèi)

      是Java類(lèi)型,用于封裝表中的數(shù)據(jù)

      3)xxx.hbm.xml

      是關(guān)系映射文件,用于配置表與實(shí)體類(lèi)的關(guān)系,以及表中字段與類(lèi)中屬性的關(guān)系。

      4)Hibernate底層API

      主要是用于解析主配置文件,以及關(guān)系映射文件,然后根據(jù)關(guān)系自動(dòng)生成SQL并執(zhí)行。

      5、Hibernate常用API 1)Configuration

      用于解析主配置文件的2)SessionFactory

      用于創(chuàng)建Session的3)Session

      是數(shù)據(jù)庫(kù)連接會(huì)話,相當(dāng)于是數(shù)據(jù)庫(kù)連接。

      注意:此Session和HttpSession沒(méi)有任何關(guān)系。

      4)Transaction

      用于控制事務(wù)

      5)Query

      用于做特殊查詢(xún)

      *

      6、Hibernate使用步驟

      1)導(dǎo)包

      2)引入主配置文件hibernate.cfg.xml 3)創(chuàng)建實(shí)體類(lèi)Emp 4)*創(chuàng)建關(guān)系映射文件Emp.hbm.xml

      --該配置文件必須和實(shí)體類(lèi)同名

      --該配置文件必須和實(shí)體類(lèi)位于同一個(gè)包下

      --在主配置文件中引入該關(guān)系映射文件

      5)使用Hibernate的API,來(lái)進(jìn)行增、刪、改、查

      Spring 1.什么是Spring,有什么作用

      Spring框架屬于一個(gè)解決方案框架 可以對(duì)其他技術(shù)和框架進(jìn)行整合 應(yīng)用。

      *好處是:將程序中的各個(gè)組件和 框架技術(shù)進(jìn)行解耦,便于日后系統(tǒng) 維護(hù),升級(jí)和擴(kuò)展操作。

      在SSH中,會(huì)將Action,DAO組件都 交給Spring框架管理,由Spring 框架創(chuàng)建這些對(duì)象,建立這些對(duì)象 關(guān)聯(lián)。

      *2.Spring都含有哪些功能

      --可以創(chuàng)建和管理程序組件對(duì)象

      (相當(dāng)于工廠的作用)--提供了IoC機(jī)制實(shí)現(xiàn)組件對(duì)象關(guān)系的解耦

      --提供了AoP機(jī)制實(shí)現(xiàn)共通組件低耦合的調(diào)用。

      (例如事務(wù)處理)--提供了對(duì)其他技術(shù),例如JDBC,Hibernate,Struts等框架整合API--提供了一個(gè)Spring MVC框架實(shí)現(xiàn)

      *3.Spring基本使用

      1)創(chuàng)建和管理程序組件對(duì)象

      --引入Spring IOC開(kāi)發(fā)包

      --在src下添加Spring配置文件

      --將Bean組件定義到Spring配置

      文件中

      --(編碼)實(shí)例化Spring容器對(duì)象

      利用getBean獲取Bean對(duì)象實(shí)例

      *a.控制Bean對(duì)象創(chuàng)建模式

      在使用時(shí),可以在定義 部分利用scope屬性指定bean對(duì)象 采用單例模式創(chuàng)建還是原型模式 創(chuàng)建。

      scope=”singleton“表示單例模式(默認(rèn)值)scope=”prototype“表示原型模式,每次調(diào)用getBean都返回一個(gè)新的 Bean對(duì)象。

      b.控制Bean對(duì)象創(chuàng)建時(shí)機(jī)

      scope=”singleton“時(shí),Bean對(duì)象 是在容器實(shí)例化時(shí)創(chuàng)建。

      中使用lazy-init=”true“ 可以將Bean創(chuàng)建推遲到getBean方法

      scope=”prototype“時(shí),Bean對(duì)象 是在getBean方法時(shí)創(chuàng)建。

      c.追加初始化和銷(xiāo)毀方法

      中利用init-method指定 一個(gè)初始化方法??梢栽趯?duì)象創(chuàng)建 之后自動(dòng)調(diào)用。

      創(chuàng)建Bean對(duì)象后,會(huì)自動(dòng)執(zhí)行 myinit方法。

      同理destroy-method=”mydestroy“ 在容器銷(xiāo)毀時(shí),也釋放單例的Bean 對(duì)象,此時(shí)會(huì)自動(dòng)調(diào)用mydesctory 方法。(該屬性?xún)H適用于singleton 模式的Bean對(duì)象)

      2)Spring的核心IoC容器

      a.IoC概念

      Inversion of Control 控制反轉(zhuǎn) 或反向控制(控制轉(zhuǎn)移)

      2004 Martin fowler提出的IoC思想.IoC思想:兩個(gè)組件之間調(diào)用(例如A調(diào)用B)原有方式是A負(fù)責(zé)創(chuàng)建B對(duì)象;現(xiàn)在變成了 B對(duì)象由第三方框架或容器負(fù)責(zé)實(shí)例化,然后給A對(duì)象注入。即A對(duì)象獲取B對(duì)象的 方式發(fā)生了反轉(zhuǎn)。

      IoC技術(shù)方案有兩種:依賴(lài)注入和依賴(lài)查找 Spring采用依賴(lài)注入技術(shù)實(shí)現(xiàn)IoC控制。依賴(lài)技術(shù)主要以下兩種方式:--set方式注入(推薦)在A中定義setB(B b),接收傳進(jìn)來(lái)的B對(duì)象--構(gòu)造方式注入 在A中定義構(gòu)造方法 public A(B b){}

      DI:Dependency Injection依賴(lài)注入

      b.IoC使用方法

      --編寫(xiě)Action,定義到Spring配置中

      --編寫(xiě)DAO,定義到Spring配置中

      --在Action中定義DAO接口類(lèi)型變量和

      setter方法

      --在Action的配置中使用下面

      配置

      ref=”要注入的Bean對(duì)象id值">

      第三篇:Java技術(shù)路線圖

      在技術(shù)方面無(wú)論我們?cè)趺磳W(xué)習(xí),總感覺(jué)需要提升自已不知道自己處于什么水平了。但如果有清晰的指示圖供參考還是非常不錯(cuò)的,這樣我們清楚的知道我們大概處于那個(gè)階段和水平。

      Java程序員 高級(jí)特性

      反射、泛型、注釋符、自動(dòng)裝箱和拆箱、枚舉類(lèi)、可變

      參數(shù)、可變返回類(lèi)型、增強(qiáng)循環(huán)、靜態(tài)導(dǎo)入

      核心編程

      IO、多線程、實(shí)體類(lèi)、集合類(lèi)、正則表達(dá)式、XML和屬性文件

      圖形編程

      AWT(Java2D/JavaSound/JMF)、Swing、SWT、JFace 網(wǎng)路編程

      Applet、Socket/TCP/UDP、NIO、RMI、CORBA Java語(yǔ)法基礎(chǔ)

      類(lèi)、抽象類(lèi)、接口、最終類(lèi)、靜態(tài)類(lèi)、匿名類(lèi)、內(nèi)部類(lèi)、異常類(lèi)、編碼規(guī)范 Java開(kāi)發(fā)環(huán)境

      JDK、JVM、Eclipse、Linux Java核心編程技術(shù)

      Java,設(shè)計(jì)而又非常精巧的語(yǔ)言。學(xué)習(xí)Java,須從Java開(kāi)發(fā)環(huán)境開(kāi)始,到Java語(yǔ)法,再到Java的核心API。

      1.Java開(kāi)發(fā)入門(mén):Java開(kāi)發(fā)環(huán)境的安裝與使用,包括JDK命令、EclipseIDE、Linux下Java程序的開(kāi)發(fā)和部署等。

      2.Java語(yǔ)法基礎(chǔ):基于JDK和Eclipse環(huán)境,進(jìn)行Java核心功能開(kāi)發(fā),掌握J(rèn)ava面向?qū)ο蟮恼Z(yǔ)法構(gòu)成,包括類(lèi)、抽象類(lèi)、接口、最終類(lèi)、靜態(tài)類(lèi)、匿名類(lèi)、內(nèi)部類(lèi)、異常的編寫(xiě)。

      3.Java核心API:基于JDK提供的類(lèi)庫(kù),掌握三大核心功能:

      A。Java核心編程:包括Java編程的兩大核心功能——Java輸入/輸出流和多線程,以及常用的輔助類(lèi)庫(kù)——實(shí)體類(lèi)、集合類(lèi)、正則表達(dá)式、XML和屬性文件。B。Java圖形編程:包括Sun的GUI庫(kù)AWT(Java2D、JavaSound、JMF)和Swing,IBM和GUI庫(kù)SWT和Jface;C.Java網(wǎng)路編程:Applet組件編程,Socket編程,NIO非阻塞Socket編程、RMI和CORBA分布式開(kāi)發(fā)。

      4.Java高級(jí)特性:掌握J(rèn)DK1.4、JDK5.0、JDK6.0中的Java高級(jí)特性,包括反射、泛型、注釋?zhuān)约癹ava高級(jí)特性——自動(dòng)裝箱和拆箱、枚舉類(lèi)、可變參數(shù)、可變返回類(lèi)型、增強(qiáng)循環(huán)、靜態(tài)導(dǎo)入等。JavaEE初級(jí)軟件工程師 JSF框架開(kāi)發(fā)技術(shù)

      配置文件(頁(yè)面導(dǎo)航、后臺(tái)Bean)、JSF組件庫(kù)(JSF EL語(yǔ)言、HTML標(biāo)簽、事件處理、)、JSF核心庫(kù)(格式轉(zhuǎn)換、輸入驗(yàn)證、國(guó)際化)Javaweb核心開(kāi)發(fā)技術(shù) 開(kāi)發(fā)環(huán)境(Eclipse、Linux)

      三大組件(JSP、JavaBean、Servlet)

      擴(kuò)展技術(shù)(EL、JSTL、Taglib)網(wǎng)頁(yè)開(kāi)發(fā)技術(shù)

      HTML、XML、CSS、JavaScript、AJAX 數(shù)據(jù)庫(kù)設(shè)計(jì)技術(shù)

      SQL、MySql、Oracle、SQLServer、JDBC Web服務(wù)器(Tomcat/Jetty/Resin/JBossWeb)JavaWeb核心技術(shù):

      JavaWeb項(xiàng)目開(kāi)發(fā)的全過(guò)程可以分解為:

      網(wǎng)頁(yè)開(kāi)發(fā)+數(shù)據(jù)庫(kù)設(shè)計(jì)——>JavaWeb項(xiàng)目開(kāi)發(fā),其中,javaWeb由6項(xiàng)基本技術(shù)組成:JSP+JavaBean+Servlet+EL+JSTL+Taglib,而JSF正是將這6種技術(shù)進(jìn)行有機(jī)結(jié)合的技術(shù)框架:

      JavaEE中級(jí)軟件工程師

      四種經(jīng)典架構(gòu)SSH1、SSI1、SSH2、SSI2 Struts1表現(xiàn)層框架

      入門(mén)配置、核心組件、標(biāo)簽庫(kù)、國(guó)際化、數(shù)據(jù)檢驗(yàn)、數(shù)據(jù)庫(kù)開(kāi)發(fā)、Sitemesh集成、集成Hibernate/iBATIS Struts2表現(xiàn)層框架

      入門(mén)配置、核心組件、標(biāo)簽庫(kù)、國(guó)際化、數(shù)據(jù)校驗(yàn)、Sitemesh集成轉(zhuǎn)換器、攔截器、集成Hibernate/iBATIS Spring業(yè)務(wù)層框架

      入門(mén)配置、IoC容器、MVC、標(biāo)簽庫(kù)、國(guó)際化、數(shù)據(jù)校驗(yàn)、數(shù)據(jù)庫(kù)開(kāi)發(fā) Hibernate持久層框架

      MySQL、Oracle、SQLServer iBATIS持久層框架 MySQL、Oracle、SQLServer Web服務(wù)器(Tomcat/Jetty/Resin/JBossWeb)Java高級(jí)軟件工程師 javaWeb開(kāi)源技術(shù)與框架

      工作流、規(guī)則引擎 搜索引擎、緩存引擎、任務(wù)調(diào)度、身份認(rèn)證

      報(bào)表服務(wù)、系統(tǒng)測(cè)試、集群、負(fù)載平衡、故障轉(zhuǎn)移 JavaWeb分布式開(kāi)發(fā)技術(shù) JTA(Java事物管理)

      JAAS(Java驗(yàn)證和授權(quán)服務(wù))JNDI(Java命名和目錄服務(wù))JavaMail(Java郵件服務(wù))JMS(java信息服務(wù))WebService(web服務(wù))JCA(java連接體系)JMS(java管理體系)

      應(yīng)用服務(wù)器(JBossAS/WebLogic/WebSphere)JavaEE系統(tǒng)架構(gòu)師

      面向云架構(gòu)(COA)

      COA、SaaS、網(wǎng)格計(jì)算、集群計(jì)算、分布式計(jì)算、云計(jì)算

      面向資源架構(gòu)(ROA)ROA、RESI 面向web服務(wù)架構(gòu)(SOA)

      WebService、SOA、SCA、ESB、OSGI、EAI Java設(shè)計(jì)模式

      創(chuàng)建式模式:抽象工廠/建造者/工廠方法/原型/單例

      構(gòu)造型模式:適配器/橋接/組合/裝飾/外觀/享元/代理

      行為型模式:責(zé)任鏈/命令/解釋器/迭代子/中介者/備忘錄/觀察者/狀態(tài)/策略/模板方法/訪問(wèn)者 Java與UML建模

      對(duì)象圖、用例圖、組件圖、部署圖、序列圖、交互圖、活動(dòng)圖、正向工程與逆向工程 CTO首席技術(shù)官

      發(fā)展戰(zhàn)略

      技術(shù)總監(jiān)

      團(tuán)隊(duì)提升

      團(tuán)隊(duì)建設(shè)

      項(xiàng)目管理

      產(chǎn)品管理

      企業(yè)級(jí)項(xiàng)目實(shí)戰(zhàn)(帶源碼)地址:http://zz563143188.iteye.com/blog/1825168

      收集五年的開(kāi)發(fā)資料下載地址: http://pan.baidu.com/share/home?uk=4076915866&view=share

      下面的更深入的有興趣可以了解一下,我的目的不是要大家掌握下面的知識(shí),只是希望擴(kuò)展自己的思維,摘自牛人的技術(shù)博客。

      /**************************************************牛人必看*****************************************************************/

      系統(tǒng)后臺(tái)框架:

      前端工程師技能:

      B2C電子商務(wù)基礎(chǔ)系統(tǒng)架構(gòu)解析 運(yùn)營(yíng)B2C日 久,越來(lái)越深刻的意識(shí)到IT系統(tǒng)對(duì)確保規(guī)范化業(yè)務(wù)流轉(zhuǎn),支撐消費(fèi)者端的均一服務(wù)有著決定性的作用。于是,一直想好好整理下相關(guān)的系統(tǒng)架構(gòu),怎奈俗務(wù)纏身,一直拖到今日,猛然發(fā)現(xiàn)下周娃很可能就要出生,拖無(wú)可拖,快馬加筆,居然整出來(lái)了。本文的重點(diǎn)是理清系統(tǒng)的邏輯關(guān)系,詳細(xì)的功能模塊請(qǐng)參見(jiàn)結(jié)尾附上的系統(tǒng) 架構(gòu)圖。

      首先,聊下對(duì)系統(tǒng)邏輯架構(gòu)的看法;我個(gè)人始終堅(jiān)持認(rèn)為,系統(tǒng)的開(kāi)發(fā)與演化,前臺(tái)嚴(yán)格follow消費(fèi)者的購(gòu)買(mǎi)流程,后臺(tái)則盯牢訂單流轉(zhuǎn),牢牢抓住這兩條主線,才能高屋建瓴的看清B2C的邏輯鏈和數(shù)據(jù)流,更深刻的規(guī)劃功能模塊,從而更有效支撐實(shí)際業(yè)務(wù)的流轉(zhuǎn)。前臺(tái)系統(tǒng)包括:商品展示,內(nèi)容展示,訂單確認(rèn),支付系統(tǒng),用戶中心四大模塊 一,商品展示

      按照Ebay的內(nèi)部分類(lèi),任何將商品以單個(gè)或批量的方式展示給消費(fèi)者的功能均應(yīng)歸入此系統(tǒng)。因此,該系統(tǒng)至少包括:

      A,站內(nèi)搜索(搜索提示,搜索規(guī)則,搜索成功頁(yè),搜索不成功頁(yè),相似推薦)

      B,導(dǎo)航(頻道導(dǎo)航,其他導(dǎo)航如銷(xiāo)售排行,廣告位,推薦位,文字鏈,Also buy等)C,商品分類(lèi)(品牌分類(lèi),品類(lèi)分類(lèi),屬性分類(lèi)如剪裁形式)D,登陸頁(yè)(商品列表頁(yè),商品詳細(xì)頁(yè),商品活動(dòng)頁(yè))

      這里的訪問(wèn)邏輯是:A /B/C分流消費(fèi)者去往相對(duì)個(gè)性化的頁(yè)面,由登陸頁(yè)體現(xiàn)商家的核心訴求和價(jià)值傳遞,完成call-to-action的第一步。二,內(nèi)容展示

      內(nèi)容展示較為簡(jiǎn)單,對(duì)純購(gòu)物品牌而言包括: A,公告區(qū) B,幫助中心

      C,論壇(如需商城與論壇發(fā)生交互,則需自行開(kāi)發(fā),否則可集成discuz做同步登陸即可)大家都知道,就不多說(shuō)了。三,訂單確認(rèn)

      訂單確認(rèn),就是幫助消費(fèi)者正確提交訂單信息的環(huán)節(jié),看似簡(jiǎn)單,實(shí)則非常復(fù)雜,需要對(duì)很多信息邏輯判斷和處理,一般由2個(gè)部分組成:

      A,購(gòu)物車(chē)(購(gòu)物車(chē)浮層,購(gòu)物車(chē)頁(yè)面,無(wú)注冊(cè)購(gòu)買(mǎi))

      無(wú)注冊(cè)購(gòu)買(mǎi)是需要慎用的功能,除非刻意追求用戶的短平快下單,如團(tuán)購(gòu)/換購(gòu),一般不推薦使用,會(huì)造成系統(tǒng)異常復(fù)雜,開(kāi)發(fā)量也很大。B,訂單提交(返回購(gòu)物車(chē),收貨地址&地址薄,支付方式判斷,配送方式,發(fā)票,訂單標(biāo)記,實(shí)付金額計(jì)算等等)值得一提的是,幾乎大多數(shù)的促銷(xiāo)邏輯運(yùn)算在這個(gè)環(huán)節(jié)完成,充分考慮各種促銷(xiāo)方式之間的互斥與重疊是系統(tǒng)設(shè)計(jì)的核心,需要充分考慮各種情況,避免出現(xiàn)邏輯漏洞。四,支付系統(tǒng)

      與一般的想象不同,支付系統(tǒng)其實(shí)并不簡(jiǎn)單等于第三方支付工具接入:

      A,外部支付系統(tǒng)(支付寶將接口,財(cái)付通接口,網(wǎng)銀直聯(lián)端口,信用ka分期端口)B,內(nèi)部支付系統(tǒng)(賬戶余額,積分,禮品卡,優(yōu)惠券)支付系統(tǒng)的邏輯設(shè)計(jì)不但需要考慮到各種極端情況的發(fā)生(如一張訂單先用禮品卡,再用積分,最后網(wǎng)銀支付),還要預(yù)留財(cái)務(wù)做賬所需的相關(guān)字段,并充分考慮訂單取消之后如何回滾各類(lèi)內(nèi)部賬戶。五,用戶中心

      用戶中心的實(shí)質(zhì)是用戶自助功能的dashboard,一般4個(gè)部分組成: A,注冊(cè)&登陸(快速注冊(cè),完整注冊(cè),注冊(cè)有禮,推薦注冊(cè),密碼找回,主站id登陸,open-id登陸如QQ,新浪微博等)

      B,訂單中心(歷史訂單狀態(tài),中間狀態(tài)訂單修改,物流追蹤)

      C,服務(wù)中心(各類(lèi)自助服務(wù)如退款申請(qǐng),退換貨申請(qǐng),建議與投訴等)D,信息管理(用戶基本信息管理和賬戶信息管理)用戶中心的價(jià)值在于:盡可能引導(dǎo)用戶自行獲取所需的信息并提交所需的服務(wù),在提升服務(wù)準(zhǔn)確率,及時(shí)性的同時(shí)降低對(duì)人工成本。

      后臺(tái)系統(tǒng)包括:商品&促銷(xiāo),CRM,訂單處理,WMS,采購(gòu)管理,財(cái)務(wù)管理,報(bào)表管理,系統(tǒng)設(shè)置,WA系統(tǒng)9大模塊 一,商品&促銷(xiāo)

      商品&促銷(xiāo)模塊的核心在于確保消費(fèi)者下單之前,前臺(tái)內(nèi)容所見(jiàn)即所得 A,商品管理(品類(lèi)管理,品牌管理,單品管理)B,促銷(xiāo)管理(活動(dòng)管理和自定義活動(dòng)模板管理)在上述模塊中,最重要的是2個(gè)部分:?jiǎn)纹饭芾碇械呐慨a(chǎn)品生成的自動(dòng)程序和活動(dòng)管理中“共享與互斥”管理。前者用于大幅提升上新速度,后者避免促銷(xiāo)活動(dòng)失控。二,CRM CRM是對(duì)B2C核心資源—會(huì)員的管理,服務(wù)與再營(yíng)銷(xiāo)系統(tǒng),包括如下部分: A,會(huì)員管理(會(huì)員信息的增刪改查和到其他系統(tǒng)的鏈接)B,用戶關(guān)懷(條件觸發(fā)和人工觸發(fā)相關(guān)EDM & 短信 & OB)C,定向營(yíng)銷(xiāo)(會(huì)員分組和營(yíng)銷(xiāo)活動(dòng)管理)

      D,客服管理(內(nèi)容非常多,集成所有需前臺(tái)與后臺(tái)交互的功能,詳情還是看圖吧)E,呼叫中心(IVR,坐席管理,統(tǒng)計(jì)報(bào)表,參數(shù)傳遞與窗口嵌入)

      值得注意的,EDM和短信通道市面上已經(jīng)有成熟的外包服務(wù)商,一般都會(huì)外包;呼叫中心和在線客服自行開(kāi)發(fā)成本太高,特別是呼叫中心系統(tǒng),業(yè)務(wù)初期也都是外包的。三,訂單處理

      訂單處理是在訂單未正式進(jìn)入倉(cāng)儲(chǔ)部門(mén)處理之前,對(duì)訂單的前置性處理環(huán)節(jié)。A,訂單錄入(電話訂購(gòu),網(wǎng)上下單,外部團(tuán)購(gòu)訂單,無(wú)金額訂單錄入如禮品單)B,訂單審核(自動(dòng)審核和人工審核)C,RMA處理(RMA申請(qǐng)單和RMA處理單)

      RMA的邏輯也異常復(fù)雜,需要在效率和成本之間找平衡,確保在不拖垮倉(cāng)儲(chǔ)部門(mén)的正常出入庫(kù)的前提下對(duì)消費(fèi)者端快速有效close工單;對(duì)內(nèi)部則需要控制成本,貨損不能超過(guò)預(yù)算上限。

      四,WMS(Warehouse Management system倉(cāng)庫(kù)管理系統(tǒng))

      WMS的流程很長(zhǎng),功能模塊也很多,大致分為入庫(kù)管理,庫(kù)存管理,出庫(kù)管理和票據(jù)管理4個(gè)模塊四個(gè)模塊,細(xì)細(xì)道來(lái)就是另外一篇文章了,各位可以參考 我這篇文章:庖丁解牛—B2C倉(cāng)儲(chǔ)內(nèi)部運(yùn)作解密(上,中,下)http://blog.sina.com.cn/wangxida0855 五,采購(gòu)管理

      采購(gòu)管理的核心是有效跟進(jìn)采購(gòu)合同/發(fā)票的狀態(tài),大貨的采購(gòu)入庫(kù)/退庫(kù),財(cái)務(wù)結(jié)算和在倉(cāng)庫(kù)存查詢(xún)和處理。

      A,供應(yīng)商管理(供應(yīng)商信息管理,合同發(fā)票管理)B,采購(gòu)單管理(PO單管理,負(fù)PO單管理)

      C,庫(kù)存管理(庫(kù)存查詢(xún),庫(kù)存占用單,庫(kù)存變動(dòng)log)六,財(cái)務(wù)管理

      B2C的財(cái)務(wù)管理,主要是對(duì)供應(yīng)商,渠道和內(nèi)部費(fèi)用支出的成本控制。A,供應(yīng)商結(jié)算 B,渠道結(jié)算 C,配送結(jié)算 D,內(nèi)部結(jié)算 說(shuō)實(shí)在的,哥對(duì)財(cái)務(wù)這塊也不算很了解,大家將就看看,圖片上有明細(xì)。七,報(bào)表管理

      報(bào)表是B2C業(yè)務(wù)的宏觀表現(xiàn),理論上說(shuō),每個(gè)部門(mén)的KPI都應(yīng)該從中找到。A,搜索報(bào)表(站內(nèi)搜索量查詢(xún))

      B,銷(xiāo)售報(bào)表(多個(gè)維度銷(xiāo)量查詢(xún),優(yōu)惠券使用情況,報(bào)表導(dǎo)出)C,財(cái)務(wù)報(bào)表

      D,客服報(bào)表(客服日?qǐng)?bào)和坐席報(bào)表)

      前者反映與消費(fèi)者發(fā)生的日常交互(包括正常與異常),后者考核客服的工作績(jī)效 E,倉(cāng)儲(chǔ)物流報(bào)表

      這幾塊報(bào)表,是業(yè)務(wù)運(yùn)作的核心,涉及到公司機(jī)密,就不能寫(xiě)的太細(xì)了,見(jiàn)諒。八,系統(tǒng)設(shè)置

      這塊大家都知道是干嘛的,也就不多說(shuō)了,分成三塊。A,基礎(chǔ)設(shè)置(和業(yè)務(wù)有關(guān)的一些字段值)

      B,權(quán)限設(shè)置(不同賬號(hào)的操作權(quán)限和操作記錄)C,其他設(shè)置

      九,WA系統(tǒng)(Web Analytcis)

      網(wǎng) 站分析系 統(tǒng),幾乎全是外購(gòu),很少有能夠自建的,即使自建,最多做幾個(gè)簡(jiǎn)單的模塊。用于實(shí)戰(zhàn)的,要么是免費(fèi)的GA(Google Analytics),要么是昂貴的Omniture。這塊的知識(shí),細(xì)細(xì)說(shuō)來(lái)也是另外一篇文章了,有興趣的同學(xué)可以看我這篇科普文章:揭秘—我所知道的網(wǎng) 站分析(上,下)http://blog.sina.com.cn/wangxida0855 最后,上全系統(tǒng)大圖,再感慨一句,B2C系統(tǒng),真是一個(gè)大工程啊。fr http://blog.sina.com.cn/s/blog_59d6717c0100syh3.html

      第四篇:java技術(shù)架構(gòu)

      Java技術(shù)體系圖

      Java程序員

      高級(jí)特性

      反射、泛型、注釋符、自動(dòng)裝箱和拆箱、枚舉類(lèi)、可變

      參數(shù)、可變返回類(lèi)型、增強(qiáng)循環(huán)、靜態(tài)導(dǎo)入

      核心編程

      IO、多線程、實(shí)體類(lèi)、集合類(lèi)、正則表達(dá)式、XML和屬性文件

      圖形編程

      AWT(Java2D/JavaSound/JMF)、Swing、SWT、JFace

      網(wǎng)路編程

      Applet、Socket/TCP/UDP、NIO、RMI、CORBA

      Java語(yǔ)法基礎(chǔ)

      類(lèi)、抽象類(lèi)、接口、最終類(lèi)、靜態(tài)類(lèi)、匿名類(lèi)、內(nèi)部類(lèi)、異常類(lèi)、編碼規(guī)范

      Java開(kāi)發(fā)環(huán)境

      JDK、JVM、Eclipse、Linux

      Java核心編程技術(shù)

      Java,設(shè)計(jì)而又非常精巧的語(yǔ)言。學(xué)習(xí)Java,須從Java開(kāi)發(fā)環(huán)境開(kāi)始,到Java語(yǔ)法,再到Java的核心API。

      1.Java開(kāi)發(fā)入門(mén):Java開(kāi)發(fā)環(huán)境的安裝與使用,包括JDK命令、EclipseIDE、Linux下Java程序的開(kāi)發(fā)和部署等。

      2.Java語(yǔ)法基礎(chǔ):基于JDK和Eclipse環(huán)境,進(jìn)行Java核心功能開(kāi)發(fā),掌握J(rèn)ava面向?qū)ο蟮恼Z(yǔ)法構(gòu)成,包括類(lèi)、抽象類(lèi)、接口、最終類(lèi)、靜態(tài)類(lèi)、匿名類(lèi)、內(nèi)部類(lèi)、異常的編寫(xiě)。

      3.Java核心API:基于JDK提供的類(lèi)庫(kù),掌握三大核心功能:

      A。Java核心編程:包括Java編程的兩大核心功能——Java輸入/輸出流和多線程,以及常用的輔助類(lèi)庫(kù)——實(shí)體類(lèi)、集合類(lèi)、正則表達(dá)式、XML和屬性文件。

      B。Java圖形編程:包括Sun的GUI庫(kù)AWT(Java2D、JavaSound、JMF)和Swing,IBM和GUI庫(kù)SWT和Jface;

      C.Java網(wǎng)路編程:Applet組件編程,Socket編程,NIO非阻塞Socket編程、RMI和CORBA分布式開(kāi)發(fā)。

      4.Java高級(jí)特性:掌握J(rèn)DK1.4、JDK5.0、JDK6.0中的Java高級(jí)特性,包括反射、泛型、注釋?zhuān)约癹ava高級(jí)特性——自動(dòng)裝箱和拆箱、枚舉類(lèi)、可變參數(shù)、可變返回類(lèi)型、增強(qiáng)循環(huán)、靜態(tài)導(dǎo)入等。

      JavaEE初級(jí)軟件工程師

      JSF框架開(kāi)發(fā)技術(shù)

      配置文件(頁(yè)面導(dǎo)航、后臺(tái)Bean)、JSF組件庫(kù)(JSF EL語(yǔ)言、HTML標(biāo)簽、事件處理、)、JSF核心庫(kù)(格式轉(zhuǎn)換、輸入驗(yàn)證、國(guó)際化)

      Javaweb核心開(kāi)發(fā)技術(shù)

      開(kāi)發(fā)環(huán)境(Eclipse、Linux)

      三大組件(JSP、JavaBean、Servlet)

      擴(kuò)展技術(shù)(EL、JSTL、Taglib)

      網(wǎng)頁(yè)開(kāi)發(fā)技術(shù)

      HTML、XML、CSS、JavaScript、AJAX

      數(shù)據(jù)庫(kù)設(shè)計(jì)技術(shù)

      SQL、MySql、Oracle、SQLServer、JDBC

      Web服務(wù)器(Tomcat/Jetty/Resin/JBossWeb)

      JavaWeb核心技術(shù):

      JavaWeb項(xiàng)目開(kāi)發(fā)的全過(guò)程可以分解為:

      網(wǎng)頁(yè)開(kāi)發(fā)+數(shù)據(jù)庫(kù)設(shè)計(jì)——>JavaWeb項(xiàng)目開(kāi)發(fā),其中,javaWeb由6項(xiàng)基本技術(shù)組成:JSP+JavaBean+Servlet+EL+JSTL+Taglib,而JSF正是將這6種技術(shù)進(jìn)行有機(jī)結(jié)合的技術(shù)框架:

      JavaEE中級(jí)軟件工程師

      四種經(jīng)典架構(gòu)SSH1、SSI1、SSH2、SSI2

      Struts1表現(xiàn)層框架

      入門(mén)配置、核心組件、標(biāo)簽庫(kù)、國(guó)際化、數(shù)據(jù)檢驗(yàn)、數(shù)據(jù)庫(kù)開(kāi)發(fā)、Sitemesh集成、集成Hibernate/iBATIS

      Struts2表現(xiàn)層框架

      入門(mén)配置、核心組件、標(biāo)簽庫(kù)、國(guó)際化、數(shù)據(jù)校驗(yàn)、Sitemesh集成轉(zhuǎn)換器、攔截器、集成Hibernate/iBATIS

      Spring業(yè)務(wù)層框架

      入門(mén)配置、IoC容器、MVC、標(biāo)簽庫(kù)、國(guó)際化、數(shù)據(jù)校驗(yàn)、數(shù)據(jù)庫(kù)開(kāi)發(fā)

      Hibernate持久層框架

      MySQL、Oracle、SQLServer iBATIS持久層框架

      MySQL、Oracle、SQLServer

      Web服務(wù)器(Tomcat/Jetty/Resin/JBossWeb)

      Java高級(jí)軟件工程師

      javaWeb開(kāi)源技術(shù)與框架

      工作流、規(guī)則引擎

      搜索引擎、緩存引擎、任務(wù)調(diào)度、身份認(rèn)證

      報(bào)表服務(wù)、系統(tǒng)測(cè)試、集群、負(fù)載平衡、故障轉(zhuǎn)移

      JavaWeb分布式開(kāi)發(fā)技術(shù)

      JTA(Java事物管理)

      JAAS(Java驗(yàn)證和授權(quán)服務(wù))

      JNDI(Java命名和目錄服務(wù))

      JavaMail(Java郵件服務(wù))

      JMS(java信息服務(wù))

      WebService(web服務(wù))

      JCA(java連接體系)

      JMS(java管理體系)

      應(yīng)用服務(wù)器(JBossAS/WebLogic/WebSphere)

      JavaEE系統(tǒng)架構(gòu)師

      面向云架構(gòu)(COA)

      COA、SaaS、網(wǎng)格計(jì)算、集群計(jì)算、分布式計(jì)算、云計(jì)算

      面向資源架構(gòu)(ROA)

      ROA、RESI

      面向web服務(wù)架構(gòu)(SOA)

      WebService、SOA、SCA、ESB、OSGI、EAI

      Java設(shè)計(jì)模式

      創(chuàng)建式模式:抽象工廠/建造者/工廠方法/原型/單例

      構(gòu)造型模式:適配器/橋接/組合/裝飾/外觀/享元/代理

      行為型模式:責(zé)任鏈/命令/解釋器/迭代子/中介者/備忘錄/觀察者/狀態(tài)/策略/模板方法/訪問(wèn)者

      Java與UML建模

      對(duì)象圖、用例圖、組件圖、部署圖、序列圖、交互圖、活動(dòng)圖、正向工程與逆向工程

      CTO首席技術(shù)官

      發(fā)展戰(zhàn)略

      技術(shù)總監(jiān)

      團(tuán)隊(duì)提升

      團(tuán)隊(duì)建設(shè)

      項(xiàng)目管理

      產(chǎn)品管理

      第五篇:基于java技術(shù)的軟件開(kāi)發(fā)架構(gòu)總結(jié)

      基于java技術(shù)的軟件開(kāi)發(fā)架構(gòu)總結(jié)

      在具體的實(shí)現(xiàn)中,表現(xiàn)層可為Struts/JSF等,業(yè)務(wù)層、訪問(wèn)層可為JavaBean或EJB等,資源層一般為數(shù)據(jù)庫(kù)。

      宏觀上的層次就是這樣,在具體現(xiàn)實(shí)中,有如下幾種實(shí)現(xiàn)形式:

      1,輕量級(jí)實(shí)現(xiàn)

      表現(xiàn)層使用基于MVC的框架,比如Struts或JSF 業(yè)務(wù)層使用JavaBean(就是常說(shuō)的Service)訪問(wèn)層使用JavaBean(就是常說(shuō)的DAO)優(yōu)點(diǎn):

      輕量級(jí)實(shí)現(xiàn),簡(jiǎn)單明了? 缺點(diǎn):

      難以無(wú)法實(shí)現(xiàn)分布式應(yīng)用?

      以下功能必須通過(guò)編程實(shí)現(xiàn)?

      事務(wù)控制? 資源管理(包括組件的創(chuàng)建)?

      線程安全問(wèn)題?

      安全性?

      2,重量級(jí)J2EE實(shí)現(xiàn)

      表現(xiàn)層依然是基于MVC的框架

      訪問(wèn)層采用實(shí)體Bean實(shí)現(xiàn),如果可能最好采用CMP,實(shí)現(xiàn)起來(lái)更簡(jiǎn)潔。此處的實(shí)體Bean可以考慮采用本地接口

      業(yè)務(wù)層一分為二,服務(wù)控制器可以由會(huì)話Bean充當(dāng),用來(lái)封裝業(yè)務(wù)流程(相當(dāng)于輕量級(jí)實(shí)現(xiàn)中的Service),也可以考慮采用本地接口;門(mén)面也可以由會(huì)話Bean充當(dāng)(一般來(lái)說(shuō)無(wú)狀態(tài)會(huì)話Bean足矣),作為業(yè)務(wù)層的入口,應(yīng)該采用遠(yuǎn)程接口。優(yōu)點(diǎn):

      以下功能可由EJB容器自動(dòng)實(shí)現(xiàn),或通過(guò)配置實(shí)現(xiàn)?

      事務(wù)控制?

      遠(yuǎn)程訪問(wèn)?

      線程安全?

      資源管理?

      安全性?

      可以進(jìn)行分布式應(yīng)用?

      因?yàn)椴捎昧薊JB,故部分特征可以由裝配人員來(lái)配置(比如事務(wù),安全性等),不需要在軟件中硬編碼? EJB組件有更好的重用性?

      可利用容器提供的其他企業(yè)級(jí)的功能(比如集群,容錯(cuò),災(zāi)難恢復(fù)等)?

      可以加入MDB(實(shí)現(xiàn)異步通訊)等技術(shù)? 缺點(diǎn):

      開(kāi)發(fā)難度較高?

      如果不恰當(dāng)?shù)氖褂脤?shí)體Bean,會(huì)造成效率低下。如果采用CMP,則很多數(shù)據(jù)訪問(wèn)的操作不能直接實(shí)現(xiàn)。?

      缺少良好的開(kāi)發(fā)環(huán)境?

      軟件可能依賴(lài)于具體的EJB容器? EJB容器可能很貴,開(kāi)發(fā)軟件也可能很貴?

      3,輕量級(jí)和重量級(jí)J2EE的切換

      如果項(xiàng)目有需求,并有充分的時(shí)間,還可以通過(guò)在表現(xiàn)層和業(yè)務(wù)層的交界處加入“業(yè)務(wù)代表”(JavaBean + 服務(wù)定位器實(shí)現(xiàn))來(lái)對(duì)表現(xiàn)層隱藏對(duì)業(yè)務(wù)層訪問(wèn)的細(xì)節(jié)(JavaBean和EJB的訪問(wèn)方式顯然不同),只需替換“業(yè)務(wù)代表”就可以切換輕量級(jí)和重量級(jí)兩種實(shí)現(xiàn)。舉例說(shuō)明,一般電話上都有一個(gè)P/T開(kāi)關(guān)(脈沖/音頻開(kāi)關(guān)),隨著開(kāi)關(guān)狀態(tài)的不同,撥號(hào)時(shí)電話機(jī)會(huì)判斷是使用脈沖撥號(hào)還是音頻撥號(hào)。

      這種架構(gòu)唯一的缺點(diǎn)就是必須寫(xiě)兩套實(shí)現(xiàn)代碼??

      4,輕量級(jí)J2EE實(shí)現(xiàn)

      訪問(wèn)層通過(guò)JavaBean調(diào)用ORM框架實(shí)現(xiàn)(Hibernate,iBatis等),代碼簡(jiǎn)潔,功能完備(相對(duì)于EJB 2.x而言),如果用的是Hibernate,可以忽略底層數(shù)據(jù)庫(kù)的差異,如果用的是iBatis,則方便對(duì)SQL進(jìn)行優(yōu)化。

      業(yè)務(wù)層和訪問(wèn)層依靠AOP框架(如Spring)可以在切面中實(shí)現(xiàn)事務(wù),安全性等功能,同時(shí)不影響業(yè)務(wù)代碼。如果采用Spring,其中已經(jīng)內(nèi)置了事物切面,并可以輕易的與主流ORM框架進(jìn)行整合,實(shí)現(xiàn)聲明式的事物管理。當(dāng)然,更可以使用IoC模式降低組件間的耦合性。優(yōu)點(diǎn):

      可以通過(guò)AOP框架實(shí)現(xiàn)事物、安全性等功能,同時(shí)不影響業(yè)務(wù)代碼?

      ORM框架比CMP更靈活,比BMP更簡(jiǎn)潔(相對(duì)于EJB? 2.x而言),運(yùn)行效率也比較高

      如果使用Spring,可以用更簡(jiǎn)單的方式實(shí)現(xiàn)J2EE中比較復(fù)雜的功能?

      無(wú)需額外的容器?

      ORM和AOP框架可以找到免費(fèi)的開(kāi)源實(shí)現(xiàn),降低項(xiàng)目成本(不過(guò)也有人認(rèn)為采用開(kāi)源項(xiàng)目可能綜合成本更高)? 缺點(diǎn):

      非官方框架,缺少文檔、技術(shù)支持和業(yè)界經(jīng)驗(yàn)?

      采用技術(shù)太多,學(xué)習(xí)曲線較高,難以招到合適的程序員(咱們學(xué)員可以考慮在這方面下點(diǎn)功夫,呵呵)?

      某些企業(yè)級(jí)的功能輕量級(jí)框架還不能實(shí)現(xiàn)(或獨(dú)立實(shí)現(xiàn))??????????????????????????????????????????

      測(cè)試、調(diào)試均比較復(fù)雜?

      另類(lèi)之處:

      使用BMP + Hibernate(具體做法為BMP中的持久化方法,比如ejbLoad, ejbStore等都委托給Hibernate實(shí)現(xiàn))優(yōu)點(diǎn):

      借助于Hibernate強(qiáng)大的ORM功能彌補(bǔ)CMP的不足(特別是EJB-QL)缺點(diǎn):

      事物不好控制

      不倫不類(lèi),容易發(fā)生未知的錯(cuò)誤(比如Hibernate自身的緩存可能會(huì)于容易提供的緩存沖突)另類(lèi)之處:

      將業(yè)務(wù)層(也可能包含訪問(wèn)層)包裝成Web Services,支持遠(yuǎn)程調(diào)用 優(yōu)點(diǎn):

      借助于Web Services可以實(shí)現(xiàn)松散耦合分布式應(yīng)用,說(shuō)的大一點(diǎn),就是傳說(shuō)中的SOA,呵呵 缺點(diǎn):

      Web Services自身效率不高,無(wú)狀態(tài),安全性差

      當(dāng)然,即使不分層,也能做出軟件來(lái),但我們應(yīng)該思考怎么做才能最好?如果說(shuō)分層不好,那么不分層的優(yōu)勢(shì)又在哪里呢??如果說(shuō)分層有性能的損耗,那么性能損耗在哪里呢??如果不分層,軟件工程思想中的“分而治之”的原則啟不受到了質(zhì)疑?

      有人說(shuō),分層是為了減少代碼量,如果分層是為了減少代碼量,那怎么能減少,代碼的重用也許會(huì)減少一些,但是程序更多的是業(yè)務(wù),我們關(guān)心的也只是業(yè)務(wù),試問(wèn)分層的意義就是為了減少代碼量?

      總之我的觀點(diǎn)就是:軟件分層是必須做的。至于框架,不應(yīng)該問(wèn)用不用,而應(yīng)該問(wèn)用什么?要選用實(shí)踐檢驗(yàn)過(guò)的框架,畢竟實(shí)踐是檢驗(yàn)真理的唯一標(biāo)準(zhǔn)。

      二年的J2EE開(kāi)發(fā)之后,我們應(yīng)該掌握了一些主流的架構(gòu)模式,總結(jié)一下:

      宏觀上講,我們采用了分層的架構(gòu),將軟件分為如下的層次:

      下載Java反射技術(shù)總結(jié)word格式文檔
      下載Java反射技術(shù)總結(jié).doc
      將本文檔下載到自己電腦,方便修改和收藏,請(qǐng)勿使用迅雷等下載。
      點(diǎn)此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會(huì)在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        Java技術(shù)課程講稿

        Java技術(shù) 北京郵電大學(xué)計(jì)算機(jī)學(xué)院 mengxw@bupt.edu.cn 孟 一 上課要求 二 語(yǔ)言部分參考書(shū) 1 孟祥武,張玉潔:《面向?qū)ο蟮腏ava語(yǔ)言程序設(shè)計(jì)》,北京郵電大學(xué)出版社,2001年3月 2......

        java工程師技術(shù)集

        Java 工程師 --高慧超1.web技術(shù):html、div、css、javascript、ajax、js框架(jquery,dwr、ext、prototype、 dojo、等)、 flax、mvc模式、xml2.java技術(shù):java基礎(chǔ)(jvm、多線程、分......

        JAVA總結(jié)專(zhuān)題

        在這忙忙碌碌的這段時(shí)間里,經(jīng)過(guò)老師的輔導(dǎo),迅速的將一點(diǎn)沒(méi)有學(xué)的JAVA基礎(chǔ)搞定了!有了基礎(chǔ)學(xué)習(xí)還是好,萬(wàn)事開(kāi)頭難這句話說(shuō)的太對(duì)了,學(xué)計(jì)算機(jī)語(yǔ)言我覺(jué)得記憶好的方法就是多打代碼,課......

        Java格式總結(jié)

        Java定義格式: 1、 數(shù)據(jù)類(lèi)型的強(qiáng)制性轉(zhuǎn)換語(yǔ)法:(欲轉(zhuǎn)換的數(shù)據(jù)類(lèi)型)變量名稱(chēng); 2、 if語(yǔ)句的格式: if(條件判斷) 語(yǔ)句; 3、 if語(yǔ)句的格式: if(條件判斷) { 語(yǔ)句1;語(yǔ)句2;… 語(yǔ)句3; } 4、 if…......

        Java總結(jié)

        Java實(shí)驗(yàn) 1. 調(diào)試HelloWorld程序 2. this,super,get ,set,把課本90頁(yè)程序4.7中的name改成私有變量 3. 繼承,重寫(xiě),父類(lèi)引用指向子類(lèi)對(duì)象 4. 驗(yàn)證數(shù)組Arrays類(lèi)和Collection類(lèi) 5.......

        java總結(jié)

        調(diào)用父類(lèi)構(gòu)造方法 ? 在子類(lèi)的構(gòu)造方法中可使用super(argument_list)語(yǔ)句調(diào)用父類(lèi)的構(gòu)造方法 ? 如果子類(lèi)的構(gòu)造方法中沒(méi)有顯示地調(diào)用父類(lèi)構(gòu)造方法,也沒(méi)有使用this關(guān)鍵字調(diào)用重載......

        java ee技術(shù)調(diào)查報(bào)告(合集五篇)

        技術(shù)一.Weblogic服務(wù)器 特點(diǎn):Java EE提供了一個(gè)框架(一套標(biāo)準(zhǔn)API)用于開(kāi)發(fā)分布式結(jié)構(gòu)的應(yīng)用,這個(gè)框架的實(shí)際實(shí)現(xiàn)留給了第三方廠商。部分廠商只是專(zhuān)注于整個(gè)Java EE架構(gòu)中的的特......

        Java Web 開(kāi)發(fā)技術(shù)實(shí)驗(yàn)報(bào)告模版

        項(xiàng)目綜合實(shí)踐報(bào)告 題目:html+css 旅游門(mén)戶網(wǎng)站設(shè)計(jì) 班級(jí):計(jì)算機(jī)2010(1)姓名:丁一學(xué)號(hào):954211完成日期:2011.9.14 一、分析設(shè)計(jì) 用文字、圖表等說(shuō)明設(shè)計(jì)思路及設(shè)計(jì)結(jié)果。 二、主要......