丰满少妇女人a毛片视频-酒色成人网-日韩欧美一-日韩精品一区二区av在线观看-成人久久免费-欧美精品一二三四区-国产午夜免费-亚洲男人第一天堂-一区二区三区福利视频-午夜激情影院-av中文天堂在线-免费一区二区-欧美日韩xxx-91区视频-亚洲另类激情专区小说图片-黄色的网站在线观看-香蕉精品在线

高分網 > 答案大全 > 其它答案 >

java web知識點總結

時間: 炎婷2 其它答案

  Java Web相關知識點

  在JDK1.6中,AWT新增加了兩個類:Desktop和SystemTray。

  前者可以用來打開系統默認瀏覽器瀏覽指定的URL,打開系統默認郵件客戶端給指定的郵箱發(fā)郵件,用默認應用程序打開或編輯文件(比如,用記事本打開以txt為后綴名的文件),用系統默認的打印機打印文檔;后者可以用來在系統托盤區(qū)創(chuàng)建一個托盤程序。

  二:使用JAXB2來實現對象與XML之間的映射

  JAXB是Java Architecture for XML Binding的縮寫,可以將一個Java對象轉變成為XML格式,反之亦然。

  我們把對象與關系數據庫之間的映射稱為ORM,其實也可以把對象與XML之間的映射稱為OXM(Object XML Mapping)。原來JAXB是Java EE的一部分,在JDK1.6中,SUN將其放到了Java SE中,這也是SUN的一貫做法。JDK1.6中自帶的這個JAXB版本是2.0,比起1.0(JSR 31)來,JAXB2(JSR 222)用JDK5的新特性Annotation來標識要作綁定的類和屬性等,這就極大簡化了開發(fā)的工作量。

  實際上,在Java EE 5.0中,EJB和Web Services也通過Annotation來簡化開發(fā)工作。另外,JAXB2在底層是用StAX(JSR 173)來處理XML文檔。除了JAXB之外,我們還可以通過XMLBeans和Castor等來實現同樣的功能。

  三:理解StAX

  StAX(JSR 173)是JDK1.6.0中除了DOM和SAX之外的又一種處理XML文檔的API。

  StAX 的來歷:在JAXP1.3(JSR 206)有兩種處理XML文檔的方法:DOM(Document Object Model)和SAX(Simple API for XML)。

  由于JDK1.6.0中的JAXB2(JSR 222)和JAX-WS 2.0(JSR 224)都會用到StAX所以Sun決定把StAX加入到JAXP家族當中來,并將JAXP的版本升級到1.4(JAXP1.4是JAXP1.3的維護版本)。JDK1.6里面JAXP的版本就是1.4。

  StAX是The Streaming API for XML的縮寫,一種利用拉模式解析(pull-parsing)XML文檔的API.StAX通過提供一種基于事件迭代器(Iterator)的API讓程序員去控制xml文檔解析過程,程序遍歷這個事件迭代器去處理每一個解析事件,解析事件可以看做是程序拉出來的,也就是程序促使解析器產生一個解析事件然后處理該事件,之后又促使解析器產生下一個解析事件,如此循環(huán)直到碰到文檔結束符;

  SAX也是基于事件處理xml文檔,但卻是用推模式解析,解析器解析完整個xml文檔后,才產生解析事件,然后推給程序去處理這些事件;DOM采用的方式是將整個xml文檔映射到一顆內存樹,這樣就可以很容易地得到父節(jié)點和子結點以及兄弟節(jié)點的數據,但如果文檔很大,將會嚴重影響性能。

  四:使用Compiler API

  現在我 們可以用JDK1.6 的Compiler API(JSR 199)去動態(tài)編譯Java源文件,Compiler API結合反射功能就可以實現動態(tài)的產生Java代碼并編譯執(zhí)行這些代碼,有點動態(tài)語言的特征。

  這個特性對于某些需要用到動態(tài)編譯的應用程序相當有用,比如JSP Web Server,當我們手動修改JSP后,是不希望需要重啟Web Server才可以看到效果的,這時候我們就可以用Compiler API來實現動態(tài)編譯JSP文件,當然,現在的JSP Web Server也是支持JSP熱部署的,現在的JSP Web Server通過在運行期間通過Runtime.exec或ProcessBuilder來調用javac來編譯代碼,這種方式需要我們產生另一個進程去做編譯工作,不夠優(yōu)雅而且容易使代碼依賴與特定的操作系統;Compiler API通過一套易用的標準的API提供了更加豐富的方式去做動態(tài)編譯,而且是跨平臺的。

  五:輕量級Http Server API

  JDK1.6 提供了一個簡單的Http Server API,據此我們可以構建自己的嵌入式Http Server,它支持Http和Https協議,提供了HTTP1.1的部分實現,沒有被實現的那部分可以通過擴展已有的Http Server API來實現,程序員必須自己實現HttpHandler接口,HttpServer會調用HttpHandler實現類的回調方法來處理客戶端請求,在這里,我們把一個Http請求和它的響應稱為一個交換,包裝成HttpExchange類,HttpServer負責將HttpExchange傳給HttpHandler實現類的回調方法。

  六:插入式注解處理API(Pluggable Annotation Processing API)

  插入式注解處理API(JSR 269)提供一套標準API來處理Annotations(JSR 175)

  實際上JSR 269不僅僅用來處理Annotation,我覺得更強大的功能是它建立了Java 語言本身的一個模型,它把method,package,constructor,type,variable, enum,annotation等Java語言元素映射為Types和Elements(兩者有什么區(qū)別?),從而將Java語言的語義映射成為對象,我們可以在javax.lang.model包下面可以看到這些類。 所以我們可以利用JSR 269提供的API來構建一個功能豐富的元編程(metaprogramming)環(huán)境。

  JSR 269用Annotation Processor在編譯期間而不是運行期間處理Annotation,Annotation Processor相當于編譯器的一個插件,所以稱為插入式注解處理.如果Annotation Processor處理Annotation時(執(zhí)行process方法)產生了新的Java代碼,編譯器會再調用一次Annotation Processor,如果第二次處理還有新代碼產生,就會接著調用Annotation Processor,直到沒有新代碼產生為止.每執(zhí)行一次process()方法被稱為一個"round",這樣整個Annotation processing過程可以看作是一個round的序列。

  JSR 269主要被設計成為針對Tools或者容器的API. 舉個例子,我們想建立一套基于Annotation的單元測試框架(如TestNG),在測試類里面用Annotation來標識測試期間需要執(zhí)行的測試方法。

  七:用Console開發(fā)控制臺程序

  JDK1.6中提供了java.io.Console 類專用來訪問基于字符的控制臺設備。你的程序如果要與Windows下的cmd或者Linux下的Terminal交互,就可以用Console類代勞。但我們不總是能得到可用的Console,一個JVM是否有可用的Console依賴于底層平臺和JVM如何被調用。如果JVM是在交互式命令行(比如Windows的cmd)中啟動的,并且輸入輸出沒有重定向到另外的地方,那么就可以得到一個可用的Console實例。

  八:對腳本語言的支持

  如: ruby,groovy,javascript。

50667 安远县| 新竹县| 南昌市| 滦平县| 石门县| 邵武市| 阳东县| 曲松县| 汨罗市| 保山市| 类乌齐县| 新沂市| 平武县| 琼结县| 周宁县| 光山县| 无极县| 大邑县| 抚宁县| 崇礼县| 伊金霍洛旗| 石首市| 和硕县| 图木舒克市| 盐城市| 鄂伦春自治旗| 大渡口区| 叙永县| 灵山县| 东方市| 宁南县| 武隆县| 新化县| 阳江市| 邹平县| 鹤壁市| 万年县| 武强县| 土默特左旗| 广灵县| 葵青区|