JSP的內(nèi)置對(duì)象

JSP的內(nèi)置對(duì)象

大家好概而,我是IT修真院深圳分院第4期的學(xué)員,一枚正直純潔善良的JAVA程序員

今天給大家分享一下囱修,修真院官網(wǎng)JAVA任務(wù)四赎瑰,深度思考中的知識(shí)點(diǎn)——JSP的內(nèi)置對(duì)象。

分享人:魏振恒


1.背景介紹

JSP內(nèi)置對(duì)象

雖然目前web開發(fā)更為常見的組合SpringMVC+AJAX破镰,但作為一個(gè)合格的java工程師還是很有必要了解一下JSP的九大內(nèi)置對(duì)象的餐曼。像request、response鲜漩、session這些常用的對(duì)象源譬,即便使用其他框架也是會(huì)經(jīng)常用到的。因此十分有了解的必要孕似。

這些對(duì)象可以在JSP頁面中調(diào)用瓶佳,而不需要事先定義,這使得JSP編程更加的方便和快捷鳞青。其實(shí)這些內(nèi)置對(duì)象都對(duì)應(yīng)著某個(gè)Servlet類霸饲,在JSP被翻譯成Servlet之后,這些內(nèi)置對(duì)象會(huì)相應(yīng)轉(zhuǎn)換成對(duì)應(yīng)的類實(shí)例臂拓。


九大內(nèi)置對(duì)象

request客戶端請(qǐng)求-----response服務(wù)器響應(yīng)-----page頁面本身

session會(huì)話-----applicationWEB 應(yīng)用本身-----out輸出流

exception錯(cuò)誤異常-----config JSP配置信息-----pageContext頁面上下文


request

request內(nèi)置對(duì)象是最常用的對(duì)象之一厚脉,它代表的是java.servlet.HttpServletRequest類的對(duì)象。request內(nèi)置對(duì)象中包含了有關(guān)瀏覽器請(qǐng)求的信息胶惰,并提供了多個(gè)用于獲取cookie傻工、header以及session內(nèi)數(shù)據(jù)的方法。所以他的方法很多。

getMethod():返回HTTP請(qǐng)求信息中所使用到的方法名稱中捆;

getServletPath():返回請(qǐng)求信息中調(diào)用Servlet的URL部分鸯匹;

getQueryString():返回HTTP GET請(qǐng)求信息中URL之后的查詢字符串;

getContentType():返回請(qǐng)求實(shí)體的MIME類型泄伪;

getProtocol():返回請(qǐng)求信息中的協(xié)議名名字與版本號(hào)殴蓬;

getPathInfo():返回有關(guān)任何路徑信息;

getServletName():返回接受請(qǐng)求的服務(wù)器主機(jī)蟋滴;

getServletPort():返回服務(wù)器的端口號(hào)染厅;

getRemoteHost():返回提交請(qǐng)求的客戶機(jī)的規(guī)范名字;

getRemoteAddr():返回提交請(qǐng)求的客戶機(jī)的IP地址津函;

getScheme():返回請(qǐng)求使用的模式(協(xié)議)名字肖粮;

getParameter():返回客戶端通過表單提交過來的參數(shù)值。例如request.getParameter(“myname”)尔苦,通過該語句來獲取客戶端傳遞過來的myname 參數(shù)涩馆。

getContextPath():返回HTTP 請(qǐng)求中指示請(qǐng)求上下文的部分。

getHeaderNames():返回一個(gè)枚舉類型允坚,此枚舉集合中包含了請(qǐng)求所含有的所有請(qǐng)求名凌净。

getAuthType():返回用于保護(hù)Servlet 的認(rèn)證模式的名字。例如屋讶,BASIC冰寻,SSL 或者NULL(沒有保護(hù))。

gtRequestURL():返回HTTP 請(qǐng)求信息中的第一行從協(xié)議名開始直至查詢字符串之間的URL 部分皿渗。例如斩芭,對(duì)HTTP GET 請(qǐng)求http://www.zzbsite.com/helloworld?name=johnson&age=20,這個(gè)方法將返回http://www.zzbsite.com/helloworld 字符串乐疆。

gtCountLength():返回整數(shù)划乖,表示請(qǐng)求實(shí)體的長度(以字節(jié)為單位)。

gtUestPrincipal():返回java.security 類的Principal 對(duì)象挤土,其中包含有目前授權(quán)用戶的名字琴庵。

iUserInRole(String role):返回一個(gè)布爾值,指示某個(gè)授權(quán)用戶是否包含在某個(gè)具體的邏輯角色role 中仰美。

gtRemoteHost():如果用戶已經(jīng)被授權(quán)迷殿,則返回提交請(qǐng)求的用戶的注冊名字,否則返回一個(gè)NULL咖杂。


response

response對(duì)象提供了多個(gè)方法用來處理HTTP響應(yīng)庆寺,可以調(diào)用response中的方法修改ContentType中的MIME類型以及實(shí)現(xiàn)頁面的跳轉(zhuǎn)等等

以下列出常用的方法

setContentLength(int len):此方法用于設(shè)置響應(yīng)頭的長度。

setContentType(String type):用于設(shè)置HTTP響應(yīng)的contentType中的MIME類型诉字,其中可以包含字符編碼的規(guī)則懦尝。例如可以把contentType設(shè)置為“text/html;char

set=GBK”知纷。在Servelet編寫過程中,需要調(diào)用此方法進(jìn)行設(shè)置陵霉,但是在JSP中一般都是使用page指令直接指定contentType的屬性琅轧。

getOutputStream():此方法返回一個(gè)Servlet的輸出流。用于在響應(yīng)中寫入二進(jìn)制數(shù)據(jù)踊挠。Servlet容器不對(duì)二進(jìn)制數(shù)據(jù)進(jìn)行編碼乍桂。

getWriter():此方法返回一個(gè)PrintWriter對(duì)象,在Servlet編寫過程使用的比較頻繁止毕,而在JSP文件中,由于out是用getWriter()創(chuàng)建的PrintWriter對(duì)象的隱含對(duì)象漠趁,所以可以直接調(diào)用out對(duì)象作輸出響應(yīng)扁凛。

getCharacterEncoding():該方法獲得此時(shí)響應(yīng)所采用的字符編碼類型。

sendError(int status):使用指定錯(cuò)誤狀態(tài)碼向客戶機(jī)發(fā)送相應(yīng)的錯(cuò)誤信息闯传。

sendError(int status, String message):使用自定義的錯(cuò)誤狀態(tài)碼以及描述信息向客戶機(jī)發(fā)送錯(cuò)誤的提示信息谨朝。

sendRedirect(String location):將請(qǐng)求重新定位到一個(gè)不同的URL(頁面)上。此方法在實(shí)際開發(fā)過程中會(huì)經(jīng)常使用到甥绿。

setDateHeader(String headername, long date):把指定的頭名稱以及日期設(shè)置為響應(yīng)頭信息字币。其中日期是用long值表示的,這是按照從新紀(jì)元開始算起的毫秒數(shù)共缕。

ContainsHeader(String name):檢測指定的頭信息是否存在洗出。返回一個(gè)布爾類型。

setHeader(String headername, String value):此方法使用指定的頭名字以及相應(yīng)的值來設(shè)置頭信息图谷。如果此頭信息已經(jīng)設(shè)置翩活,則新的值會(huì)覆蓋掉舊的值。如果頭信息已經(jīng)被發(fā)送出去便贵,則此方法的設(shè)置將被忽略菠镇。

addheader(String headername, String value):把指定的頭名字以及相應(yīng)值添加到頭信息當(dāng)中去。

addIntHeader(String headername, int value):把指定的頭名字以及整數(shù)值設(shè)置為頭信息承璃。如果頭信息已經(jīng)設(shè)置了利耍,則新的設(shè)置值將覆蓋掉以前的值。

setStatus(int sc):給響應(yīng)設(shè)置狀態(tài)的代碼盔粹。

setStatus(int sc, String sm):為響應(yīng)設(shè)置狀態(tài)代碼以及信息隘梨。這是在沒有錯(cuò)誤的時(shí)候使用的。

上述方法中舷嗡,getWriter()和sendRedirect(String location)在實(shí)際開發(fā)中使用的最為頻繁出嘹。? ? ? ? ? ? getWriter()常出現(xiàn)在Servlet編寫中。所以這個(gè)代碼展示就用這兩個(gè)咬崔。


page

page對(duì)象有點(diǎn)類似于Java編程中的this指針税稼,就是指當(dāng)前JSP頁面本身烦秩。page是java.lang.Object類的對(duì)象。

以下列出常用的方法

getClass():返回當(dāng)時(shí)Object的類郎仆。

hashCode():返回此Object的哈希代碼只祠。

toString():把此時(shí)的Object類轉(zhuǎn)換成字符串。

equals(Object o):比較此對(duì)象是否和指定的對(duì)象是否相等扰肌。

copy(Object o):把此對(duì)象復(fù)制到指定的對(duì)象當(dāng)中去抛寝。

clone():對(duì)此對(duì)象進(jìn)行克隆。


session

session是與請(qǐng)求有關(guān)的會(huì)話期曙旭,它是java.servlet.http.HttpSession類的對(duì)象盗舰,用來表示和存儲(chǔ)當(dāng)前頁面的請(qǐng)求信息。

在實(shí)際的Web應(yīng)用開發(fā)過程會(huì)經(jīng)常遇到這樣的一個(gè)問題:會(huì)話狀態(tài)的維持桂躏。當(dāng)然有很多種方法可以用來解決這個(gè)問題凤薛,例如:Cookies彤委、隱藏的表單輸入域或者將狀態(tài)信息直接附加到URL當(dāng)中去辜限,但是這些方法使用非常不便逊移。

Java Servlet提供了一個(gè)可以在多個(gè)請(qǐng)求之間持續(xù)有效的會(huì)話對(duì)象HttpSession,此對(duì)象允許用戶存儲(chǔ)和提取會(huì)話狀態(tài)的信息鳞绕。JSP同樣也支持了Servlet中的這個(gè)概念失仁。JSP中的session內(nèi)置對(duì)象就是對(duì)應(yīng)于Servlet中的HttpSession對(duì)象。當(dāng)Web應(yīng)用系統(tǒng)希望通過多個(gè)頁面完成一個(gè)事務(wù)的時(shí)候们何,session的使用是非常有用和方便的萄焦。

session一般在服務(wù)器上設(shè)置了一個(gè)30分鐘的過期時(shí)間,當(dāng)客戶端停止操作后30分鐘冤竹,session中存儲(chǔ)的信息會(huì)自動(dòng)失效楷扬。

此外需要注意的,session中保存和查找的信息不能是基本的類型贴见,如int烘苹、double等,而必須是Java相對(duì)應(yīng)的對(duì)象片部,例如Integer镣衡、Double等。

以下列出常用的方法

getId():此方法返回唯一的標(biāo)識(shí)档悠,這些標(biāo)識(shí)為每個(gè)session而產(chǎn)生廊鸥。當(dāng)只有一個(gè)單一的值與一個(gè)session聯(lián)合時(shí),或當(dāng)日志信息與先前的sessions有關(guān)時(shí)辖所,它被當(dāng)作鍵名用惰说。

getCreationTime():返回session被創(chuàng)建的時(shí)間。最小單位為千分之一秒缘回。為得到一個(gè)對(duì)打印輸出很有用的值吆视,可將此值傳給Date constructor 或者GregorianCalendar的方法setTimeInMillis典挑。

getLastAccessedTime():返回session最后被客戶發(fā)送的時(shí)間。最小單位為千分之一秒啦吧。

getMaxInactiveInterval():返回總時(shí)間(秒)您觉,負(fù)值表示session永遠(yuǎn)不會(huì)超時(shí)。

getAttribute(String key):通過給定的關(guān)鍵字獲取一個(gè)存儲(chǔ)在session中相對(duì)應(yīng)的信息授滓。例如琳水,Integer item = (Integer) session.getAttrobute("item")。

setAttribute(String key, Object obj):提供一個(gè)關(guān)鍵詞和一個(gè)對(duì)象值般堆,然后存在session當(dāng)中在孝。例如,session.setAttribute("ItemValue", itemName)淮摔。


application

application是javax.servlet.ServletContext類對(duì)象的一個(gè)實(shí)例私沮,用于實(shí)現(xiàn)用戶之間的數(shù)據(jù)共享(多使用于網(wǎng)絡(luò)聊天系統(tǒng))。

application對(duì)象與session對(duì)象的區(qū)別

它的作用有點(diǎn)類似session內(nèi)置對(duì)象噩咪。但是它們之間還是有區(qū)別的顾彰,一般來說极阅,一個(gè)用戶對(duì)應(yīng)著一個(gè)session胃碾,并且隨著用戶的離開session中的信息也會(huì)消失,所以不同客戶之間的會(huì)話必須要確保某一時(shí)刻至少有一個(gè)客戶沒有終止會(huì)話筋搏;而applicat則不同仆百,它會(huì)一直存在,類似于系統(tǒng)的“全局變量”奔脐,而且只有一個(gè)實(shí)例俄周。

application常用方法

getAttribute(String key):通過一個(gè)關(guān)鍵字返回用戶所需要的信息,返回類型為對(duì)象(Object)髓迎,類似于session中的getAttribute(String key)方法峦朗。

getAttributeNames():返回所有可用的屬性名,返回類型為枚舉(Enumeration)排龄。

setAttribute(String key, Object obj):保存一個(gè)對(duì)象信息波势,并指定給一個(gè)關(guān)鍵字。

removeAttribute(String key):通過關(guān)鍵字來刪除一個(gè)對(duì)象信息橄维。

getServletInfo():返回JSP引擎的相關(guān)信息尺铣。

getRealPath(String path):返回虛擬路徑的真實(shí)路徑。

getContext(String URLPath):返回執(zhí)行Web應(yīng)用的application對(duì)象争舞。

getMajorVersion()和getMinorVersion():返回服務(wù)器所支持的Servlet API最大和最小版本號(hào)凛忿。

getMineType(String file):返回指定文件的MIME類型。

getResource(String path):返回指定資源的URL路徑竞川。

getResourceAsStream(String path):返回指定資源的輸入流店溢。

getRequestDispatcher(String URLPath):返回指定資源的RequestDispatcher對(duì)象叁熔。

getServlet(String name):返回指定名稱的Servlet。

getServlets():返回所有的Servlet逞怨,返回類型為枚舉型者疤。

getServletNames():返回所有的Servlet名稱,返回類型為枚舉型叠赦。

log(String msg):把指定信息寫入到Servlet的日志文件中驹马。

log(String msg, Throwable throwable):把棧軌跡以及給出的Throwable異常的說明信息寫入Servlet的日志文件。

本次用的是瀏覽器計(jì)數(shù)除秀,本段代碼證明application是基于服務(wù)器的糯累,不會(huì)因?yàn)闀?huì)話關(guān)閉就清除。? ? ? ? ? ? 和session對(duì)象一樣册踩,application存儲(chǔ)的是對(duì)象類型而不是普通的數(shù)值類型泳姐。此處調(diào)用了application對(duì)象中的getAttribute()方法來獲取前一個(gè)頁面所存儲(chǔ)的信息,并把讀取出的計(jì)數(shù)值加一暂吉,然后重新存儲(chǔ)在application當(dāng)中去胖秒。


out

out對(duì)象是在JSP開發(fā)過程中使用得最為頻繁的對(duì)象,但使用也是最為簡單的慕的。

print():在頁面中打印出字符串信息阎肝,不換行;

println():在頁面中打印出字符串信息肮街,并且換行风题;

clear():清除掉緩沖區(qū)中尚存在的內(nèi)容。

clearBuffer():此方法清除掉當(dāng)前緩沖區(qū)中尚存在的內(nèi)容嫉父。

flush():清除掉數(shù)據(jù)流沛硅。

getBufferSize():返回緩沖區(qū)的內(nèi)存大小,單位為字節(jié)流绕辖。如果不進(jìn)行緩沖區(qū)的設(shè)置摇肌,大小為0。

getRemaining():此方法返回緩沖區(qū)還剩下多少字節(jié)數(shù)可以使用仪际。

isAutoFlush():檢查當(dāng)前緩沖區(qū)是設(shè)置為自動(dòng)清空围小,還是滿了就拋出異常。

close():關(guān)閉輸出流弟头。


exception

exception內(nèi)置對(duì)象是用來處理頁面出現(xiàn)的異常錯(cuò)誤吩抓,它是java.lang.Throwable類的一個(gè)對(duì)象。前面已經(jīng)講過赴恨,在實(shí)際JSP網(wǎng)站開發(fā)過程中疹娶,通常是在其頁面中加入page指令的errorPage屬性來將其指向一個(gè)專門處理異常錯(cuò)誤的頁面。如果這個(gè)錯(cuò)誤處理頁面已經(jīng)封裝了這個(gè)頁面收到的錯(cuò)誤信息伦连,并且錯(cuò)誤處理頁面頁面含有的isErrorpage屬性設(shè)置為true雨饺,則這個(gè)錯(cuò)誤處理頁面可以使用以下方法來訪問錯(cuò)誤的信息:

getMessage()和getLocalizedMessage():這兩種方法分別返回exception對(duì)象的異常消息字符串和本地化語言的異常錯(cuò)誤钳垮。

printStackTrace():顯示異常的棧跟蹤軌跡。

toString():返回關(guān)于異常錯(cuò)誤的簡單消息描述额港。

fillInStackTrace():重寫異常錯(cuò)誤的棧執(zhí)行軌跡饺窿。


config

config內(nèi)置對(duì)象是ServletConfig類的一個(gè)實(shí)例。在Servlet初始化的時(shí)候移斩,JSP引擎通過config向它傳遞信息肚医。這種信息可以是屬性名/值匹配的參數(shù),也可以是通過ServletContext對(duì)象傳遞的服務(wù)器的有關(guān)信息向瓷。

getServletContext():此方法將返回一個(gè)含有服務(wù)器相關(guān)信息的ServletContext對(duì)象肠套。

getInitParameter(String name):返回初始化參數(shù)的值。

getInitParameterNames():返回包含了Servlet初始化所需要的所有參數(shù)猖任,返回類型是枚舉型你稚。

一般在JSP開發(fā)過程很少使用到config內(nèi)置對(duì)象。只有在編寫Servlet時(shí)朱躺,需要重載Servlet的init()方式時(shí)才用到刁赖。


pagecontext

pageContext對(duì)象是一個(gè)比較特殊的對(duì)象。它相當(dāng)于頁面中所有其他對(duì)象功能的最大集成者长搀,即使用它可以訪問到本頁面中所有其他對(duì)象宇弛,例如前面已經(jīng)描述的request、response以及application對(duì)象等盈滴。

getRequest():返回當(dāng)前頁面中的request對(duì)象涯肩。

getResponse():使用此方法將返回當(dāng)前頁面中的response對(duì)象轿钠。

getPage():此方法返回當(dāng)前頁面中的page對(duì)象巢钓。

getSession():返回當(dāng)前頁面中的session對(duì)象。

getOut():返回當(dāng)前頁面中的out對(duì)象疗垛。

getException():返回當(dāng)前頁面中的exception對(duì)象症汹。

getServletConfig():返回當(dāng)前頁的config對(duì)象。

getServletContext():返回當(dāng)前頁中的application對(duì)象贷腕。

setAttribute(String name):給指定的屬性名設(shè)置屬性值背镇。

getAttribute(String name):根據(jù)屬性名稱找到相應(yīng)的屬性值。

setAttribute(String name, Object obj, int scope):在給定的范圍內(nèi)設(shè)置相應(yīng)的屬性值泽裳。

getAttribute(String name, int scope):在指定的范圍內(nèi)獲取到相應(yīng)的屬性值瞒斩。

findAttribute(String name):尋找一個(gè)屬性并返回,如果沒有找到則返回一個(gè)null涮总。

removeAttribute(String name):通過屬性名刪除掉某個(gè)屬性胸囱。

removeAttribute(String name, int scope):在指定的某個(gè)范圍內(nèi)刪除某個(gè)屬性。

getAttributeScope(String scope):返回某屬性的作用域瀑梗。

getAttributeNamesInScope(int scope):返回指定范圍內(nèi)的所有屬性名的枚舉烹笔。

release():釋放掉pageContext()所占的所有資源裳扯。

forward(String relativeURLpath):使用當(dāng)前頁面重導(dǎo)到另一個(gè)頁面。

include(String relativeURLpath):使用當(dāng)前位置包含的另一個(gè)頁面谤职。



undefined_騰訊視頻

提問與回答

1饰豺、request、session和application的作用域的區(qū)別允蜈?

答:request的作用域是當(dāng)前頁面冤吨,是生命周期最短的,只在一次提交中有效饶套;session指的是會(huì)話锅很,定義是只要不退出當(dāng)前頁面,這個(gè)session就一直存在凤跑;application是項(xiàng)目本身爆安,作用域是所有用戶共享的,生命周期和項(xiàng)目一樣仔引,項(xiàng)目關(guān)閉時(shí)銷毀扔仓。?

2、pagecontext怎么使用

pagecontext是頁面上下文咖耘,相當(dāng)于spring的配置文件翘簇,可以從里面加載內(nèi)置對(duì)象中的所有對(duì)象。

3儿倒、Forword和SendRedirect區(qū)別

前者僅是容器中控制權(quán)的轉(zhuǎn)向版保,在客戶端瀏覽器地址欄中不會(huì)顯示出轉(zhuǎn)向后的地址;

后者則是完全的跳轉(zhuǎn)夫否,瀏覽器將會(huì)得到跳轉(zhuǎn)的地址彻犁,并重新發(fā)送請(qǐng)求鏈接。這樣凰慈,從瀏覽器的地址欄中可以看到跳轉(zhuǎn)后的鏈接地址汞幢。

所以,前者更加高效微谓,在前者可以滿足需要時(shí)森篷,盡量使用forward()方法,并且豺型,這樣也有助于隱藏實(shí)際的鏈接仲智。但在有些情況下,

比如姻氨,需要跳轉(zhuǎn)到一個(gè)其它服務(wù)器上的資源钓辆,則必須使用sendRedirect()方法。

forward是服務(wù)器請(qǐng)求資源,服務(wù)器直接訪問目標(biāo)地址的URL岩馍,把那個(gè)URL的響應(yīng)內(nèi)容讀取過來碉咆,然后把這些內(nèi)容再發(fā)給瀏覽器,

瀏覽器根本不知道服務(wù)器發(fā)送的內(nèi)容是從哪兒來的蛀恩,所以它的地址欄中還是原來的地址疫铜。redirect就是服務(wù)端根據(jù)邏輯,發(fā)送一個(gè)狀態(tài)碼,

告訴瀏覽器重新去請(qǐng)求那個(gè)地址,一般來說瀏覽器會(huì)用剛才請(qǐng)求的所有參數(shù)重新請(qǐng)求双谆,所以session,request參數(shù)都可以獲取壳咕。


7.參考文獻(xiàn)

網(wǎng)絡(luò)

8.更多討論

歡迎大家交流和討論

鳴謝

感謝大家觀看

BY : 魏振恒

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市顽馋,隨后出現(xiàn)的幾起案子谓厘,更是在濱河造成了極大的恐慌,老刑警劉巖寸谜,帶你破解...
    沈念sama閱讀 211,042評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件竟稳,死亡現(xiàn)場離奇詭異,居然都是意外死亡熊痴,警方通過查閱死者的電腦和手機(jī)他爸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來果善,“玉大人诊笤,你說我怎么就攤上這事〗砩拢” “怎么了讨跟?”我有些...
    開封第一講書人閱讀 156,674評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長鄙煤。 經(jīng)常有香客問我晾匠,道長,這世上最難降的妖魔是什么馆类? 我笑而不...
    開封第一講書人閱讀 56,340評(píng)論 1 283
  • 正文 為了忘掉前任混聊,我火速辦了婚禮弹谁,結(jié)果婚禮上乾巧,老公的妹妹穿的比我還像新娘。我一直安慰自己预愤,他們只是感情好沟于,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,404評(píng)論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著植康,像睡著了一般旷太。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,749評(píng)論 1 289
  • 那天供璧,我揣著相機(jī)與錄音存崖,去河邊找鬼。 笑死睡毒,一個(gè)胖子當(dāng)著我的面吹牛来惧,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播演顾,決...
    沈念sama閱讀 38,902評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼供搀,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了钠至?” 一聲冷哼從身側(cè)響起葛虐,我...
    開封第一講書人閱讀 37,662評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎棉钧,沒想到半個(gè)月后屿脐,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,110評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡宪卿,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年摄悯,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片愧捕。...
    茶點(diǎn)故事閱讀 38,577評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡奢驯,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出次绘,到底是詐尸還是另有隱情瘪阁,我是刑警寧澤,帶...
    沈念sama閱讀 34,258評(píng)論 4 328
  • 正文 年R本政府宣布邮偎,位于F島的核電站管跺,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏禾进。R本人自食惡果不足惜豁跑,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,848評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望泻云。 院中可真熱鬧艇拍,春花似錦、人聲如沸宠纯。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽婆瓜。三九已至快集,卻和暖如春贡羔,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背个初。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評(píng)論 1 264
  • 我被黑心中介騙來泰國打工乖寒, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人院溺。 一個(gè)月前我還...
    沈念sama閱讀 46,271評(píng)論 2 360
  • 正文 我出身青樓宵统,卻偏偏與公主長得像,于是被迫代替她去往敵國和親覆获。 傳聞我的和親對(duì)象是個(gè)殘疾皇子马澈,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,452評(píng)論 2 348

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