java web入門(mén)——概念理解、名詞解釋

引言:當(dāng)你想入門(mén)java web后艺配,一定會(huì)查閱到很多相關(guān)的名詞:Servlet察郁,HTML衍慎,Spring...等等之類(lèi)的,但是對(duì)于他們之間的關(guān)系總是比較混亂的皮钠,這篇文章就是理清這些名詞的關(guān)系稳捆。

什么是web應(yīng)用?

web應(yīng)用是一種可以通過(guò)Web訪(fǎng)問(wèn)的應(yīng)用程序麦轰。在J2EE領(lǐng)域下乔夯,web應(yīng)用就是遵守基于JAVA技術(shù)的一系列標(biāo)準(zhǔn)的應(yīng)用程序。

最簡(jiǎn)單的web應(yīng)用什么樣款侵?

2個(gè)文件夾末荐、1個(gè)xml文件就能成為一個(gè)web應(yīng)用
第一個(gè)文件夾:應(yīng)用名,如test
第二個(gè)文件夾:在test文件夾中創(chuàng)建名為WEB-INF的文件夾
XML文件:在WEB-INF文件夾下創(chuàng)建web.xml文件新锈,文件內(nèi)容只需<web-app></web-app>

Servlet規(guī)范

Servlet(Server Applet)是Java Servlet的簡(jiǎn)稱(chēng)甲脏,稱(chēng)為小服務(wù)程序或服務(wù)連接器,用Java編寫(xiě)的服務(wù)器端程序妹笆,主要功能在于交互式地瀏覽和修改數(shù)據(jù)块请,生成動(dòng)態(tài)Web內(nèi)容。

狹義的Servlet是指Java語(yǔ)言實(shí)現(xiàn)的一個(gè)接口晾浴,廣義的Servlet是指任何實(shí)現(xiàn)了這個(gè)Servlet接口的類(lèi),一般情況下牍白,人們將Servlet理解為后者脊凰。Servlet運(yùn)行于支持Java的應(yīng)用服務(wù)器中。從原理上講茂腥,Servlet可以響應(yīng)任何類(lèi)型的請(qǐng)求狸涌,但絕大多數(shù)情況下Servlet只用來(lái)擴(kuò)展基于HTTP協(xié)議的Web服務(wù)器。

Servlet是J2EE 規(guī)范中的一種最岗,主要是為java程序提供一個(gè)統(tǒng)一的web應(yīng)用的規(guī)范帕胆,方便程序員統(tǒng)一的使用這種規(guī)范來(lái)編寫(xiě)程序,應(yīng)用容器可以使用提供的規(guī)范來(lái)實(shí)現(xiàn)自己的特性般渡。

因此懒豹,基本上所有的java web應(yīng)用都是基于Servlet規(guī)范,哪些常用框架如Struts驯用,Spring MVC只是對(duì)Servlet規(guī)范的封裝而已脸秽。

web.xml

web.xml學(xué)名叫部署描述符文件,是在Servlet規(guī)范中定義的蝴乔,是web應(yīng)用的配置文件记餐。由web容器(如Tomcat)讀取加載。

web.xml配置詳解

web.xml配置詳解

web.xml加載過(guò)程:

  • 啟動(dòng)WEB項(xiàng)目的時(shí)候,容器(如:Tomcat)會(huì)去讀它的配置文件web.xml.先讀取<context-param></context-param> 節(jié)點(diǎn)薇正。

  • 緊接著,容器創(chuàng)建一個(gè)ServletContext(上下文),這個(gè)WEB項(xiàng)目所有部分都將共享這個(gè)上下文.

  • 容器將<context-param></context-param>轉(zhuǎn)化為鍵值對(duì),并交給ServletContext.

  • 容器創(chuàng)建<listener></listener>中的類(lèi)實(shí)例,即創(chuàng)建監(jiān)聽(tīng)片酝。在監(jiān)聽(tīng)中會(huì)有contextInitialized(ServletContextEvent args) 的初始化方法,在這個(gè)方法中可以獲得context-param 節(jié)點(diǎn)的參數(shù):

    ServletContext = ServletContextEvent.getServletContext();   
    context-param的值 = ServletContext.getInitParameter("context-param的鍵");  
    

得到這個(gè)context-param的值之后,你就可以做一些操作了.注意,這個(gè)時(shí)候你的WEB項(xiàng)目還沒(méi)有完全啟動(dòng)完成.這個(gè)動(dòng)作會(huì)比所有的Servlet都要早.換句話(huà)說(shuō),這個(gè)時(shí)候,你對(duì)<context-param>中的鍵值做的操作,將在你的WEB項(xiàng)目完全啟動(dòng)之前被執(zhí)行囚衔。舉例.你可能想在項(xiàng)目啟動(dòng)之前就打開(kāi)數(shù)據(jù)庫(kù).那么這里就可以在<context-param>中設(shè)置數(shù)據(jù)庫(kù)的連接方式,在監(jiān)聽(tīng)類(lèi)中初始化數(shù)據(jù)庫(kù)的連接.

web.xml節(jié)點(diǎn)加載順序:

可以肯定的是,節(jié)點(diǎn)的加載順序與它們?cè)?web.xml 文件中的先后順序無(wú)關(guān)雕沿。即不會(huì)因?yàn)?filter 寫(xiě)在 listener 的前面而會(huì)先加載 filter练湿。
加載順序是:[context-param -> listener -> filter -> servlet] ,而同類(lèi)型節(jié)點(diǎn)之間的實(shí)際程序調(diào)用的時(shí)候的順序是根據(jù)對(duì)應(yīng)的 mapping 的順序進(jìn)行調(diào)用的晦炊。

Servlet

這里的Servlet是指Java語(yǔ)言實(shí)現(xiàn)的一個(gè)接口鞠鲜,也就是Servlet規(guī)范的實(shí)現(xiàn)。

通過(guò)下面一個(gè)例子體會(huì)一下Servlet(實(shí)現(xiàn)接口的對(duì)象)的作用:

一個(gè)網(wǎng)絡(luò)請(qǐng)求的過(guò)程

有這樣一個(gè)場(chǎng)景:當(dāng)用戶(hù)向?yàn)g覽器地址欄輸入一個(gè)網(wǎng)址
1断国、 瀏覽器使用ip:port(端口號(hào))連接服務(wù)器贤姆;
2、 瀏覽器將請(qǐng)求數(shù)據(jù)按照http協(xié)議打成一個(gè)數(shù)據(jù)包(請(qǐng)求數(shù)據(jù)包)發(fā)送給服務(wù)器稳衬, 請(qǐng)求數(shù)據(jù)包的內(nèi)容包含了請(qǐng)求資源路徑(如:/helloweb/sayHello?name=zs)霞捡,另外,在請(qǐng)求數(shù)據(jù)包當(dāng)中薄疚,還會(huì)包含瀏覽器自動(dòng)生成的一些信息碧信;
3、 服務(wù)器(web容器街夭,如Tomcat)創(chuàng)建兩個(gè)對(duì)象:請(qǐng)求對(duì)象(Request)和響應(yīng)對(duì)象(Response)服務(wù)器解析請(qǐng)求數(shù)據(jù)包砰碴,將解析之后的數(shù)據(jù)存放到請(qǐng)求對(duì)象里面,方便servlet讀取請(qǐng)求數(shù)據(jù)(因?yàn)閟ervlet不用解析請(qǐng)求數(shù)據(jù)包板丽,如果要解析呈枉,需要理解http協(xié)議)。請(qǐng)求對(duì)象是HttpServletRequest接口的一個(gè)實(shí)現(xiàn)埃碱。響應(yīng)對(duì)象是HttpServletResponse接口的一個(gè)實(shí)現(xiàn)猖辫,響應(yīng)對(duì)象由于存放servlet處理的結(jié)果;
4砚殿、 依據(jù)請(qǐng)求資源路徑找到相應(yīng)的servlet配置啃憎,通過(guò)反射創(chuàng)建servlet實(shí)例。然后調(diào)用其service()方法似炎;在調(diào)用service()方法時(shí)辛萍,會(huì)將事先創(chuàng)建好的請(qǐng)求對(duì)象(request)和響應(yīng)對(duì)象(response)作為參數(shù)進(jìn)行傳遞。在servlet內(nèi)部羡藐,可以通過(guò)request獲得請(qǐng)求數(shù)據(jù)叹阔,或者通過(guò)response設(shè)置響應(yīng)數(shù)據(jù),在這里完成你所需要的操作并放回結(jié)果传睹;
5耳幢、服務(wù)器從response中獲取數(shù)據(jù),按照http協(xié)議打成一個(gè)數(shù)據(jù)包(響應(yīng)數(shù)據(jù)包)。發(fā)送 給瀏覽器睛藻;
6启上、瀏覽器會(huì)解析響應(yīng)數(shù)據(jù)包,取出相應(yīng)的數(shù)據(jù)店印,生成相應(yīng)的界面冈在。

filter

也即Servlet過(guò)濾器,它具有客戶(hù)端(瀏覽器)請(qǐng)求的功能按摘,Servlet過(guò)濾器可以改變請(qǐng)求中的內(nèi)容來(lái)滿(mǎn)足實(shí)際開(kāi)發(fā)中的需求包券。

它是Servlet技術(shù)中最實(shí)用的技術(shù),WEB開(kāi)發(fā)人員通過(guò)Filter技術(shù)炫贤,對(duì)web服務(wù)器管理的所有web資源:例如JSP溅固,Servlet,靜態(tài)圖片文件或靜態(tài)HTML文件進(jìn)行攔截兰珍,從而實(shí)現(xiàn)一些特殊功能侍郭。例如實(shí)現(xiàn)URL級(jí)別的權(quán)限控制、過(guò)濾敏感詞匯掠河、壓縮響應(yīng)信息等一些高級(jí)功能亮元。

著名框架Struts就是基于filter實(shí)現(xiàn)的。

listener

監(jiān)聽(tīng)器的作用是監(jiān)聽(tīng)Web容器的有效事件唠摹,他是由容器管理的爆捞,可以監(jiān)聽(tīng)Application、Session勾拉、Request對(duì)象煮甥,當(dāng)這些對(duì)象發(fā)生變化就會(huì)調(diào)用對(duì)應(yīng)的監(jiān)聽(tīng)方法。

Struts2

Struts2是一個(gè)基于MVC設(shè)計(jì)模式的Web應(yīng)用框架望艺,它本質(zhì)上相當(dāng)于一個(gè)servlet苛秕,在MVC設(shè)計(jì)模式中肌访,Struts2作為控制器(Controller)來(lái)建立模型與視圖的數(shù)據(jù)交互找默。Struts 2是Struts的下一代產(chǎn)品,是在 struts 1和WebWork的技術(shù)基礎(chǔ)上進(jìn)行了合并的全新的Struts 2框架吼驶。其全新的Struts 2的體系結(jié)構(gòu)與Struts 1的體系結(jié)構(gòu)差別巨大惩激。Struts 2以WebWork為核心,采用攔截器的機(jī)制來(lái)處理用戶(hù)的請(qǐng)求蟹演,這樣的設(shè)計(jì)也使得業(yè)務(wù)邏輯控制器能夠與ServletAPI完全脫離開(kāi)风钻,所以Struts 2可以理解為WebWork的更新產(chǎn)品。雖然從Struts 1到Struts 2有著太大的變化酒请,但是相對(duì)于WebWork,Struts 2的變化很小。

Spring

Spring 框架的核心特性可以用于開(kāi)發(fā)任何 Java 應(yīng)用程序匣砖,但是在 Java EE 平臺(tái)上構(gòu)建 web 應(yīng)用程序是需要擴(kuò)展的。 Spring 框架的目標(biāo)是使 J2EE 開(kāi)發(fā)變得更容易使用囤萤,通過(guò)啟用基于 POJO 編程模型來(lái)促進(jìn)良好的編程實(shí)踐。

控制反轉(zhuǎn)——Spring通過(guò)一種稱(chēng)作控制反轉(zhuǎn)(IoC)的技術(shù)促進(jìn)了低耦合是趴。當(dāng)應(yīng)用了IoC涛舍,一個(gè)對(duì)象依賴(lài)的其它對(duì)象會(huì)通過(guò)被動(dòng)的方式傳遞進(jìn)來(lái),而不是這個(gè)對(duì)象自己創(chuàng)建或者查找依賴(lài)對(duì)象唆途。你可以認(rèn)為IoC與JNDI相反——不是對(duì)象從容器中查找依賴(lài)富雅,而是容器在對(duì)象初始化時(shí)不等對(duì)象請(qǐng)求就主動(dòng)將依賴(lài)傳遞給它。

面向切面——Spring提供了面向切面編程的豐富支持肛搬,允許通過(guò)分離應(yīng)用的業(yè)務(wù)邏輯與系統(tǒng)級(jí)服務(wù)(例如審計(jì)(auditing)和事務(wù)(transaction)管理)進(jìn)行內(nèi)聚性的開(kāi)發(fā)没佑。應(yīng)用對(duì)象只實(shí)現(xiàn)它們應(yīng)該做的——完成業(yè)務(wù)邏輯——僅此而已。它們并不負(fù)責(zé)(甚至是意識(shí))其它的系統(tǒng)級(jí)關(guān)注點(diǎn)滚婉,例如日志或事務(wù)支持图筹。

Spring MVC

Spring MVC 是一個(gè)模型 - 視圖 - 控制器(MVC)的Web框架建立在中央前端控制器servlet(DispatcherServlet),它負(fù)責(zé)發(fā)送每個(gè)請(qǐng)求到合適的處理程序让腹,使用視圖來(lái)最終返回響應(yīng)結(jié)果的概念远剩。Spring MVC 是 Spring 產(chǎn)品組合的一部分,它享有 Spring IoC容器緊密結(jié)合Spring松耦合等特點(diǎn)骇窍,因此它有Spring的所有優(yōu)點(diǎn)瓜晤。


Servlet是一個(gè)java web應(yīng)用的核心,而我們?cè)L問(wèn)網(wǎng)頁(yè)看到的界面可不是完全由java代碼生成的腹纳,這個(gè)頁(yè)面是由HTML+CSS構(gòu)成痢掠,但這只能是靜態(tài)頁(yè)面,動(dòng)態(tài)的頁(yè)面由JavaScript嘲恍,JSP等技術(shù)提供支持足画。

HTML

超文本標(biāo)記語(yǔ)言(英語(yǔ):HyperText Markup Language,簡(jiǎn)稱(chēng):HTML)是一種用于創(chuàng)建網(wǎng)頁(yè)的標(biāo)準(zhǔn)標(biāo)記語(yǔ)言佃牛⊙痛牵“超文本”就是指頁(yè)面內(nèi)可以包含圖片、鏈接俘侠,甚至音樂(lè)象缀、程序等非文字元素。超文本標(biāo)記語(yǔ)言的結(jié)構(gòu)包括“頭”部分(英語(yǔ):Head)爷速、和“主體”部分(英語(yǔ):Body)央星,其中“頭”部提供關(guān)于網(wǎng)頁(yè)的信息,“主體”部分提供網(wǎng)頁(yè)的具體內(nèi)容惫东。

簡(jiǎn)單點(diǎn)說(shuō)就是頁(yè)面的結(jié)構(gòu)是怎樣的莉给,這里顯示一張圖片,那邊是一個(gè)按鈕。

CSS

層疊樣式表(英文全稱(chēng):Cascading Style Sheets)是一種用來(lái)表現(xiàn)HTML(標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言的一個(gè)應(yīng)用)或XML(標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言的一個(gè)子集)等文件樣式的計(jì)算機(jī)語(yǔ)言颓遏。CSS不僅可以靜態(tài)地修飾網(wǎng)頁(yè)胁黑,還可以配合各種腳本語(yǔ)言動(dòng)態(tài)地對(duì)網(wǎng)頁(yè)各元素進(jìn)行格式化。

其實(shí)也就是控件的樣式了州泊,比如按鈕是什么顏色丧蘸,什么大小之類(lèi)的。

JavaScript

JavaScript(也可以簡(jiǎn)寫(xiě)為js)一種直譯式腳本語(yǔ)言遥皂,是一種動(dòng)態(tài)類(lèi)型力喷、弱類(lèi)型、基于原型的語(yǔ)言演训,內(nèi)置支持類(lèi)型弟孟。它的解釋器被稱(chēng)為JavaScript引擎,為瀏覽器的一部分样悟,廣泛用于客戶(hù)端的腳本語(yǔ)言拂募,最早是在HTML(標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言下的一個(gè)應(yīng)用)網(wǎng)頁(yè)上使用,用來(lái)給HTML網(wǎng)頁(yè)增加動(dòng)態(tài)功能窟她,可以把靜態(tài)頁(yè)面轉(zhuǎn)變成支持用戶(hù)交互并響應(yīng)應(yīng)用實(shí)踐的動(dòng)態(tài)頁(yè)面陈症。經(jīng)常應(yīng)用JavaScript進(jìn)行數(shù)據(jù)驗(yàn)證、控制瀏覽器以及生成時(shí)鐘震糖、日歷和時(shí)間戳文檔等录肯。

js主管動(dòng)作,減輕后臺(tái)的操作吊说,可以很簡(jiǎn)單的就實(shí)現(xiàn)對(duì)輸入的數(shù)據(jù)的驗(yàn)證论咏。比如說(shuō)注冊(cè)的時(shí)候,用js中的ajax到后臺(tái)實(shí)時(shí)驗(yàn)證本用戶(hù)名是否已經(jīng)被注冊(cè)颁井,驗(yàn)證碼是否正確或者用來(lái)實(shí)現(xiàn)異步更新厅贪,為用戶(hù)帶來(lái)更好的體驗(yàn)。用jquery來(lái)驗(yàn)證密碼的合法性雅宾,輸入密碼與確認(rèn)密碼是否一樣,從而反饋到html頁(yè)面上养涮,可以通過(guò)操控css或者h(yuǎn)tml頁(yè)面內(nèi)容來(lái)確認(rèn)輸入內(nèi)容是否有錯(cuò)。但是ajax和jquery都是js的一個(gè)庫(kù)秀又。

JSP

SUN首先發(fā)展出Servlet单寂,其功能比較強(qiáng)勁贬芥,體系設(shè)計(jì)也很先進(jìn)吐辙,只是,它輸出HTML語(yǔ)句還是采用了老的CGI方式蘸劈,是一句一句輸出昏苏,所以,編寫(xiě)和修改HTML非常不方便,并且不能把網(wǎng)站的邏輯和頁(yè)面的輸出分開(kāi)贤惯。為了解決Java Servlet的這種缺點(diǎn)洼专, 推出了類(lèi)似于ASP的鑲嵌型的JSP,把JSP TAG鑲嵌到HTML語(yǔ)句中孵构,這樣屁商,就大大簡(jiǎn)化和方便了網(wǎng)頁(yè)的設(shè)計(jì)和修改,這就是Java Server Pages—JSP颈墅。

JSP全名為Java Server Pages蜡镶,中文名叫java服務(wù)器頁(yè)面,其根本是一個(gè)簡(jiǎn)化的Servlet設(shè)計(jì)恤筛,它[1] 是由Sun Microsystems公司倡導(dǎo)官还、許多公司參與一起建立的一種動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)標(biāo)準(zhǔn)。JSP技術(shù)有點(diǎn)類(lèi)似ASP技術(shù)毒坛,它是在傳統(tǒng)的網(wǎng)頁(yè)HTML(標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言的子集)文件(.htm,.html)中插入Java程序段(Scriptlet)和JSP標(biāo)記(tag)望伦,從而形成JSP文件,后綴名為(*.jsp)煎殷。

JSP文件會(huì)被編譯器編譯成Servlet的class類(lèi)屯伞,所以我的理解是:為了方便編寫(xiě)頁(yè)面設(shè)計(jì)的另一形式的java代碼編寫(xiě)方式。


最后就是是數(shù)據(jù)相關(guān)的技術(shù)豪直,在網(wǎng)站上注冊(cè)的用戶(hù)愕掏,肯定是記錄下來(lái)的,不然下次就不能登錄了顶伞,數(shù)據(jù)存儲(chǔ)使用了數(shù)據(jù)庫(kù)饵撑。java層要訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)就需要用到JDBC。

JDBC

JDBC(Java DataBase Connectivity,java數(shù)據(jù)庫(kù)連接)是一種用于執(zhí)行SQL語(yǔ)句的Java API唆貌,可以為多種關(guān)系數(shù)據(jù)庫(kù)提供統(tǒng)一訪(fǎng)問(wèn)滑潘,它由一組用Java語(yǔ)言編寫(xiě)的類(lèi)和接口組成。JDBC提供了一種基準(zhǔn)锨咙,據(jù)此可以構(gòu)建更高級(jí)的工具和接口语卤,使數(shù)據(jù)庫(kù)開(kāi)發(fā)人員能夠編寫(xiě)數(shù)據(jù)庫(kù)應(yīng)用程序,同時(shí)酪刀,JDBC也是個(gè)商標(biāo)名粹舵。

Hibernate

Hibernate是一個(gè)開(kāi)放源代碼的對(duì)象關(guān)系映射框架,它對(duì)JDBC進(jìn)行了非常輕量級(jí)的對(duì)象封裝骂倘,它將POJO與數(shù)據(jù)庫(kù)表建立映射關(guān)系眼滤,是一個(gè)全自動(dòng)的orm框架,hibernate可以自動(dòng)生成SQL語(yǔ)句历涝,自動(dòng)執(zhí)行诅需,使得Java程序員可以隨心所欲的使用對(duì)象編程思維來(lái)操縱數(shù)據(jù)庫(kù)漾唉。 Hibernate可以應(yīng)用在任何使用JDBC的場(chǎng)合,既可以在Java的客戶(hù)端程序使用堰塌,也可以在Servlet/JSP的Web應(yīng)用中使用赵刑,最具革命意義的是,Hibernate可以在應(yīng)用EJB的J2EE架構(gòu)中取代CMP场刑,完成數(shù)據(jù)持久化的重任般此。

MyBatis

MyBatis 是一款優(yōu)秀的持久層框架,它支持定制化 SQL牵现、存儲(chǔ)過(guò)程以及高級(jí)映射恤煞。MyBatis 避免了幾乎所有的 JDBC 代碼和手動(dòng)設(shè)置參數(shù)以及獲取結(jié)果集。MyBatis 可以使用簡(jiǎn)單的 XML 或注解來(lái)配置和映射原生信息施籍,將接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java對(duì)象)映射成數(shù)據(jù)庫(kù)中的記錄居扒。

MyBatis 本是apache的一個(gè)開(kāi)源項(xiàng)目iBatis, 2010年這個(gè)項(xiàng)目由apache software foundation 遷移到了google code,并且改名為MyBatis 丑慎。2013年11月遷移到Github喜喂。
iBATIS一詞來(lái)源于“internet”和“abatis”的組合。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末竿裂,一起剝皮案震驚了整個(gè)濱河市玉吁,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌腻异,老刑警劉巖进副,帶你破解...
    沈念sama閱讀 218,204評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異悔常,居然都是意外死亡影斑,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)机打,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)矫户,“玉大人,你說(shuō)我怎么就攤上這事残邀〗粤桑” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,548評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵芥挣,是天一觀(guān)的道長(zhǎng)驱闷。 經(jīng)常有香客問(wèn)我,道長(zhǎng)空免,這世上最難降的妖魔是什么空另? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,657評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮鼓蜒,結(jié)果婚禮上痹换,老公的妹妹穿的比我還像新娘。我一直安慰自己都弹,他們只是感情好娇豫,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,689評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著畅厢,像睡著了一般冯痢。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上框杜,一...
    開(kāi)封第一講書(shū)人閱讀 51,554評(píng)論 1 305
  • 那天浦楣,我揣著相機(jī)與錄音,去河邊找鬼咪辱。 笑死振劳,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的油狂。 我是一名探鬼主播历恐,決...
    沈念sama閱讀 40,302評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼专筷!你這毒婦竟也來(lái)了弱贼?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,216評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤磷蛹,失蹤者是張志新(化名)和其女友劉穎吮旅,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體味咳,經(jīng)...
    沈念sama閱讀 45,661評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡庇勃,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,851評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了槽驶。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片匪凉。...
    茶點(diǎn)故事閱讀 39,977評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖捺檬,靈堂內(nèi)的尸體忽然破棺而出再层,到底是詐尸還是另有隱情,我是刑警寧澤堡纬,帶...
    沈念sama閱讀 35,697評(píng)論 5 347
  • 正文 年R本政府宣布聂受,位于F島的核電站,受9級(jí)特大地震影響烤镐,放射性物質(zhì)發(fā)生泄漏蛋济。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,306評(píng)論 3 330
  • 文/蒙蒙 一炮叶、第九天 我趴在偏房一處隱蔽的房頂上張望碗旅。 院中可真熱鬧渡处,春花似錦、人聲如沸祟辟。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,898評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)旧困。三九已至醇份,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間吼具,已是汗流浹背僚纷。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,019評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留拗盒,地道東北人怖竭。 一個(gè)月前我還...
    沈念sama閱讀 48,138評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像陡蝇,于是被迫代替她去往敵國(guó)和親侵状。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,927評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理毅整,服務(wù)發(fā)現(xiàn)趣兄,斷路器,智...
    卡卡羅2017閱讀 134,657評(píng)論 18 139
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法悼嫉,類(lèi)相關(guān)的語(yǔ)法艇潭,內(nèi)部類(lèi)的語(yǔ)法,繼承相關(guān)的語(yǔ)法戏蔑,異常的語(yǔ)法蹋凝,線(xiàn)程的語(yǔ)...
    子非魚(yú)_t_閱讀 31,631評(píng)論 18 399
  • 一. Java基礎(chǔ)部分.................................................
    wy_sure閱讀 3,811評(píng)論 0 11
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,811評(píng)論 6 342
  • 什么是知識(shí)圖譜鳍寂,我們可以把它理解成一張由知識(shí)點(diǎn)相互連接而成的語(yǔ)義網(wǎng)絡(luò)。 任何一種網(wǎng)絡(luò)都是由節(jié)點(diǎn)和節(jié)點(diǎn)關(guān)系構(gòu)成情龄。為了...
    高天蒲閱讀 36,030評(píng)論 2 25