Javaweb基礎(chǔ)(五)Servlet交互-作用域?qū)ο?JSP

一.Web之間跳轉(zhuǎn)和信息共享

1.為什么需要Web組件之間跳轉(zhuǎn)和信息共享

之前編寫的Servlet都是相互獨(dú)立的,彼此之間沒(méi)有任何的交互.
我們?cè)陂_發(fā)的時(shí)候,從A組件跳轉(zhuǎn)到B組件,在跳轉(zhuǎn)的過(guò)程中需要傳遞數(shù)據(jù),供組件使用.

例子需求:從ListServlet中查詢出所有的學(xué)生對(duì)象(List集合),跳轉(zhuǎn)到JSP頁(yè)面負(fù)責(zé)顯示所有的學(xué)生信息,在學(xué)生信息的列表中點(diǎn)擊刪除操作之后,又重新回到學(xué)生列表界面.

Web組件信息共享例子.png

2.Web組件之間跳轉(zhuǎn)

在上述例子中,我們看到了Web組件(Servlet/JSP/Filter/Listener)之間需要協(xié)同完成任務(wù),就需要跳轉(zhuǎn)和數(shù)據(jù)共享.

Web組件之間的跳轉(zhuǎn),有三種方式:

  • 方式1:請(qǐng)求轉(zhuǎn)發(fā)(forward)
  • 方式2:URL重定向(redirect)
  • 方式3:請(qǐng)求包含(include):req.getRequestDispatcher("/include/s2").include(req, resp);
1).請(qǐng)求轉(zhuǎn)發(fā)(forward):

語(yǔ)法:

   request對(duì)象.getRequestDispatcher(String path).forward(request,response);

如:

request.getRequestDispatcher("/WEB-INF/views/list.jsp").forward(request, response);

參數(shù):
path:資源路徑,跳轉(zhuǎn)目標(biāo)的地址.
注意:一定要記得調(diào)用forward方法,如果沒(méi)有調(diào)用,則不能跳轉(zhuǎn).

請(qǐng)求轉(zhuǎn)發(fā)的特點(diǎn):

  • 1):請(qǐng)求轉(zhuǎn)發(fā)的時(shí)候,瀏覽器地址欄不會(huì)改變依然是跳轉(zhuǎn)之前的地址(不會(huì)顯示目標(biāo)地址).
  • 2):請(qǐng)求轉(zhuǎn)發(fā)只發(fā)送了一個(gè)請(qǐng)求,Servlet1和Servlet2共享請(qǐng)求(共享請(qǐng)求中的數(shù)據(jù)).
    Servlet1和Servlet2之間可以在同一個(gè)請(qǐng)求中共享數(shù)據(jù).
  • 3):最終給瀏覽器的響應(yīng)有Servlet2來(lái)決定(如此:Servlet1沒(méi)必要做響應(yīng)).
  • 4):請(qǐng)求轉(zhuǎn)發(fā)只能訪問(wèn)當(dāng)前應(yīng)用的資源,不能跨域訪問(wèn).
  • 5):請(qǐng)求轉(zhuǎn)發(fā)可以訪問(wèn)WEB-INF里面的資源.
請(qǐng)求轉(zhuǎn)發(fā).png
2).URL重定向(redirect):

語(yǔ)法:

   response對(duì)象.sendRedirect(String path);

參數(shù):
path:資源路徑,跳轉(zhuǎn)目標(biāo)的地址.

URL重定向的特點(diǎn):

  • 1):URL重定向的時(shí)候,瀏覽器地址欄發(fā)生改變,變成了目標(biāo)的地址.
  • 2):URL重定向發(fā)送了兩個(gè)請(qǐng)求,Servlet1和Servlet2的請(qǐng)求不同.
    因?yàn)镾ervlet1和Servlet2不共享同一個(gè)請(qǐng)求,所以也不共享請(qǐng)求中的數(shù)據(jù).
  • 3):最終給瀏覽器的響應(yīng)有Servlet2來(lái)決定(如此:Servlet1沒(méi)必要做響應(yīng)).
  • 4):URL重定向支持跨域訪問(wèn).
  • 5):URL重定向不能訪問(wèn)WEB-INF里面的資源.
Paste_Image.png
3).請(qǐng)求轉(zhuǎn)發(fā)和URL重定向的區(qū)別?
  • 1):解釋什么是請(qǐng)求轉(zhuǎn)發(fā),URL重定向(操作代碼).
  • 2):羅列各自的特點(diǎn).
  • 3):特點(diǎn)羅列完畢之后,拿相同的特點(diǎn)做對(duì)比--->區(qū)別.
  • 4):什么時(shí)候使用請(qǐng)求轉(zhuǎn)發(fā)/URL重定向(特點(diǎn)不同,用途不同).
4).如何選擇

什么時(shí)候使用forward:

  • 1):需要共享同一個(gè)請(qǐng)求中的數(shù)據(jù).
  • 2):訪問(wèn)WEB-INF里面的資源文件.
    什么時(shí)候使用redirect:
  • 1):當(dāng)前應(yīng)用需要跨域訪問(wèn).
  • 2):防止表單的重復(fù)提交.

其他時(shí)候,任選.

二.Servlet的三大作用域?qū)ο?/h2>

1.Servlet的三大作用域?qū)ο?/h4>

Web組件在跳轉(zhuǎn)的時(shí)候可以共享數(shù)據(jù)(信息共享),Web組件信息共享必須依賴作用域?qū)ο?
我們是把共享的信息先存放在共享對(duì)象中再做傳遞,在目標(biāo)里面從共享對(duì)象中獲取數(shù)據(jù).
Servlet1 ------------>作用域?qū)ο?數(shù)據(jù))-----------> Servlet2


根據(jù)作用域的大小分成三種:

作用域?qū)ο竺Q 對(duì)象的類型 對(duì)象描述
request HttpServletRequest 請(qǐng)求對(duì)象,每次新的請(qǐng)求都會(huì)創(chuàng)建新的request.
session HttpSession 會(huì)話對(duì)象,每次打開新的瀏覽器,再訪問(wèn)(可以包含多個(gè)請(qǐng)求).
servletContext(application) ServletContext 應(yīng)用對(duì)象,描述了這一個(gè)Web應(yīng)用(項(xiàng)目),啟動(dòng)Tomcat創(chuàng)建ServletContext對(duì)象,關(guān)閉Tomcat銷毀該對(duì)象.(包含多次會(huì)話)

作用域?qū)ο笕绾蝸?lái)共享數(shù)據(jù)(把數(shù)據(jù)存放到作用域,從作用域取出數(shù)據(jù),修改/刪除數(shù)據(jù)):
所有作用域?qū)ο蟮牟僮?/strong>方法都是相同的:

  • 設(shè)置共享數(shù)據(jù): 作用域?qū)ο?setAttribute(String name,Object value)
  • 獲取共享數(shù)據(jù): Object val = 作用域?qū)ο?getAttribute(String name);
  • 刪除共享數(shù)據(jù): 作用域?qū)ο?removeAttribute(String name);

注意:從哪一個(gè)作用域中設(shè)置共享數(shù)據(jù),就只能從該作用域中取出共享數(shù)據(jù).
如果需要共享請(qǐng)求中的數(shù)據(jù),只能使用請(qǐng)求轉(zhuǎn)發(fā)(forward).

作用域?qū)ο蟮牟僮?png

在request對(duì)象中:getParameter/getAttribute分不清:
String getParameter(String name):獲取用戶輸入的參數(shù).
Object getAttribute(String name):獲取request中的共享數(shù)據(jù),該共享數(shù)據(jù)是程序猿設(shè)置的(setAttribute).

2.servletcontext:ServletContext接口和常用方法

1).ServletContext接口,表示Servlet的上下文(環(huán)境).

ServletContext其實(shí)表示的就是當(dāng)前應(yīng)用對(duì)象,在一個(gè)應(yīng)用中,有且只有一個(gè)ServletContext對(duì)象,我們習(xí)慣吧該對(duì)稱application.
該對(duì)象在Tomcat啟動(dòng)的時(shí)候就創(chuàng)建,在關(guān)閉Tomcat的時(shí)候該對(duì)象被銷毀.
可以被所有的Web組件共享數(shù)據(jù).

2).如何獲取ServletContext對(duì)象:
  • 方式1:ServletContext ctx = request對(duì)象.getServletContext();(Tomcat7才支持)
  • 方式2:ServletContext ctx = request對(duì)象.getSession().getServletContext();
  • 方式3:在Servlet類中: :ServletContext ctx = super.getServletContext();
    getServletContext方法是ServletConfig接口中的,而ServletConfig接口是HttpServlet類的父接口.
    獲取的ServletContext都是相同的.
3).常用方法:
  • 1):String getContextPath():獲取當(dāng)前應(yīng)用的上下文路徑(<Context path="XXXX"/>)
    和request.getContextPath是相同的.

  • 2):String getRealPath(String path):返回當(dāng)前資源名稱的真實(shí)路徑(絕對(duì)路徑).

  • 3):之前講解初始化參數(shù),是在<servlet>元素中做的配置,如此一來(lái),該初始化參數(shù)就只能當(dāng)前Servlet使用.
    如果有N個(gè)Servlet有相同的初始化參數(shù)配置,就得重復(fù)配置N次,很不爽,------>全局初始化參數(shù).
    全局初始化參數(shù):可以供所有的Web組件共享,配置如下圖圖.
    如何獲取全局初始化:就只能使用ServletContext對(duì)象.getInitParameter(String name)

全局初始化參數(shù).png

三.動(dòng)態(tài)網(wǎng)頁(yè)JSP

1.JSP為何而生

JSP:Java Server Page(Java的服務(wù)網(wǎng)頁(yè)),也是Java的動(dòng)態(tài)網(wǎng)頁(yè).
在之前講過(guò)Java的另外一個(gè)動(dòng)態(tài)網(wǎng)頁(yè)技術(shù):Servlet.

使用Servlet來(lái)開發(fā)動(dòng)態(tài)網(wǎng)頁(yè):
動(dòng)態(tài)網(wǎng)頁(yè) = Java代碼為主 + html為輔;
這種開發(fā): 網(wǎng)頁(yè)開發(fā)成本大,維護(hù)性很低.

使用JSP來(lái)開發(fā)動(dòng)態(tài)網(wǎng)頁(yè):
其本質(zhì)就是html頁(yè)面(代碼),再加上 Java代碼.
動(dòng)態(tài)網(wǎng)頁(yè) = Java代碼為輔 + html為主;

jsp.png

開發(fā)JSP:

  • 1):設(shè)置JSP文件模板的編碼:UTF-8.
  • 2):JSP的運(yùn)行必須依賴服務(wù)器,不能直接拖拽到瀏覽器.
  • 3):改變了JSP文件的內(nèi)容,不需要重啟Tomcat,直接刷新網(wǎng)頁(yè)即可.

2.JSP的原理

JSP的本質(zhì):其實(shí)就是一個(gè)Servlet.
JSP---->翻譯成Servlet類---->編譯成字節(jié)碼文件--->解釋執(zhí)行了.

JSP的工作流程.png

所有的以.jsp結(jié)尾的資源在請(qǐng)求Tomcat的時(shí)候,都會(huì)被JspServlet類所接受,該類就是把JSP文件翻譯成一個(gè)個(gè)Servlet類.
翻譯到Tomcat根/work/Catalina/localhost/_/org/apache/jsp/目錄下.

JSP的類.png

JSP輸出動(dòng)態(tài)網(wǎng)頁(yè)的原理:
其實(shí)就是在JSP翻譯出來(lái)的Servlet類中,依然使用輸出流向外輸出一個(gè)html代碼片段.
這和我們自己使用Servlet做動(dòng)態(tài)網(wǎng)頁(yè)是相同的.
幫我們屏蔽了,在Servlet類中編寫惡心的html代碼.

JSP輸出動(dòng)態(tài)網(wǎng)頁(yè).png

3.JSP基本語(yǔ)法

JSP語(yǔ)法:

1闯捎、JSP的注釋:

        作用:注釋Java腳本代碼

        語(yǔ)法:<%--這是注釋--%>,JSP的注釋不會(huì)被翻譯到Servlet代碼中去.
2、JSP的Java腳本表達(dá)式:

        作用:輸出數(shù)據(jù)到頁(yè)面上

        語(yǔ)法:<%=表達(dá)式%>(實(shí)際上就是調(diào)用輸出流打印到頁(yè)面上) out.print(表達(dá)式);

3瑞你、JSP中的Java腳本片段:(實(shí)際開發(fā)中刁岸,應(yīng)做到JSP中不能出現(xiàn)一行Java腳本片段)

        作用:書寫Java代碼邏輯

        語(yǔ)法:<%

      Java代碼
                  %>

        原理:其中的語(yǔ)句會(huì)原封不動(dòng)的被服務(wù)器翻譯到對(duì)應(yīng)的Servlet的_jspService方法中宏怔。

4祸挪、JSP的聲明:

        作用:定義類的成員

        語(yǔ)法:<%!

                Java代碼

                    %>

        原理:其中的語(yǔ)句會(huì)原封不動(dòng)的被服務(wù)器翻譯到對(duì)應(yīng)的Servlet的類中,作為成員方法和變量冻河。
JSP語(yǔ)法.png

4.JSP三大指令

1).標(biāo)準(zhǔn)指令:設(shè)定JSP網(wǎng)頁(yè)的整體配置信息

特點(diǎn):

  • 1):并不向客戶端產(chǎn)生任何輸出莉擒,

  • 2):指令在JSP整個(gè)文件范圍內(nèi)有效 (每一個(gè)JSP都得設(shè)置指令)

  • 3):為翻譯階段提供了全局信息

2).JSP三大指令: page/include/taglib指令

格式:<%@ 指令名稱 屬性="屬性值" %>

1.page

    作用:定義JSP頁(yè)面的各種屬性

    屬性:

        language:指示JSP頁(yè)面中使用腳本語(yǔ)言。默認(rèn)值java恋博,目前只支持java齐佳。

        extends:指示JSP對(duì)應(yīng)的Servlet類的父類。不要修改债沮。

        *import:導(dǎo)入JSP中的Java腳本使用到的類或包炼吴。(如同Java中的import語(yǔ)句)

                    JSP引擎自動(dòng)導(dǎo)入以下包中的類:

                            javax.servlet.*

                            javax.servlet.http.*

                            javax.servlet.jsp.*

                注意:一個(gè)import屬性可以導(dǎo)入多個(gè)包,用逗號(hào)分隔秦士。

        *sessioin:指示JSP頁(yè)面是否創(chuàng)建HttpSession對(duì)象。默認(rèn)值是true永高,創(chuàng)建

        *buffer:指示JSP用的輸出流的緩存大小.默認(rèn)值是8Kb隧土。

        autoFlush:自動(dòng)刷新輸出流的緩存提针。

        isThreadSafe:指示頁(yè)面是否是線程安全的(過(guò)時(shí)的)。默認(rèn)是true曹傀。

                true:不安全的辐脖。

                false:安全的。指示JSP對(duì)應(yīng)的Servlet實(shí)現(xiàn)SingleThreadModel接口皆愉。

        *errorPage:指示當(dāng)前頁(yè)面出錯(cuò)后轉(zhuǎn)向(轉(zhuǎn)發(fā))的頁(yè)面嗜价。

                    目標(biāo)頁(yè)面如果以"/"(當(dāng)前應(yīng)用)就是絕對(duì)路徑。

                    

                    配置全局錯(cuò)誤提示頁(yè)面:

                        web.xml

                         <error-page>

                            <exception-type>java.lang.Exception</exception-type>

                            <location>/error.jsp</location>

                          </error-page>

                          <error-page>

                            <error-code>404</error-code>

                            <location>/404.jsp</location>

                          </error-page>

        *isErrorPage:指示當(dāng)前頁(yè)面是否產(chǎn)生Exception對(duì)象幕庐。

        *contentType:指定當(dāng)前頁(yè)面的MIME類型久锥。作用與Servlet中的response.setContentType()作用完全一致

        *pageEncoding:通知引擎讀取JSP時(shí)采用的編碼(因?yàn)橐g)

                還有contentType屬性的作用。

        *isELIgnored:是否忽略EL表達(dá)式异剥。${1+1}瑟由。默認(rèn)值是false。

        

    page指令最簡(jiǎn)單的使用方式:<%@ page pageEncoding="UTF-8"%>
page指令.png

JSP的錯(cuò)誤頁(yè)面設(shè)置:
訪問(wèn)當(dāng)前JSP的時(shí)候,出現(xiàn)錯(cuò)誤(404找不到/500代碼有問(wèn)題),我們可以專門提供一個(gè)錯(cuò)誤頁(yè)面. 出錯(cuò)之后,就跳轉(zhuǎn)到錯(cuò)誤頁(yè)面,顯示錯(cuò)誤信息.

JSP錯(cuò)誤頁(yè)面配置.png

上述的errorPage屬性,每一個(gè)JSP都要設(shè)置.
我們可以在web.xml中統(tǒng)一的設(shè)置錯(cuò)誤頁(yè)面.

統(tǒng)一的設(shè)置錯(cuò)誤頁(yè)面.png

2.include(靜態(tài)包含,開發(fā)中能用靜的不用動(dòng)的)

    作用:包含其他的組件冤寿。

    語(yǔ)法:<%@include file=""%>file指定要包含的目標(biāo)組件歹苦。路徑如果以"/"(當(dāng)前應(yīng)用)就是絕對(duì)路徑。

    原理:把目標(biāo)組件的內(nèi)容加到源組件中督怜,輸出結(jié)果殴瘦。

    

    動(dòng)態(tài)包含:

        采用動(dòng)作元素:<jsp:include page=""/>路徑如果以"/"(當(dāng)前應(yīng)用)就是絕對(duì)路徑。

3.taglib

    作用:引入外部的標(biāo)簽

    語(yǔ)法:<%@taglib uri="標(biāo)簽名稱空間" prefix="前綴"%>

        <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

5.JSP九大內(nèi)置對(duì)象和四大作用域?qū)ο?/h4>
九大內(nèi)置對(duì)象1.png
九大內(nèi)置對(duì)象2.png

1).JSP的九大內(nèi)置對(duì)象

JSP中預(yù)先定義好的九個(gè)Java對(duì)象.

查看:JSP翻譯成Servlet代碼之后,_jspService方法中的九個(gè)局部變量.

對(duì)象名稱 對(duì)象類型 對(duì)象描述
pageContext PageContext JSP的四大作用域?qū)ο?表示當(dāng)前JSP頁(yè)面的作用域.
request HttpServletRequest JSP的四大作用域?qū)ο?表示每一個(gè)請(qǐng)求對(duì)象.
session HttpSession JSP的四大作用域?qū)ο?表示一個(gè)會(huì)話對(duì)象.
application ServletContext JSP的四大作用域?qū)ο?表示當(dāng)前Web應(yīng)用對(duì)象.
response HttpServletResponse 響應(yīng)對(duì)象.
config ServleConfig 表示Servlet的配置信息對(duì)象.
out JspWriter 表示字符輸出流對(duì)象.
page Object 表示當(dāng)前JSP翻譯成Servlet的對(duì)象.
exeception Throwable 異常對(duì)象(必須給當(dāng)前JSP設(shè)置為:isErrorPage="true")
2).JSP的四大作用域?qū)ο?
對(duì)象名稱 對(duì)象類型 對(duì)象描述
pageContext PageContext JSP的四大作用域?qū)ο?表示當(dāng)前JSP頁(yè)面的作用域.
request HttpServletRequest JSP的四大作用域?qū)ο?表示每一個(gè)請(qǐng)求對(duì)象.
session HttpSession JSP的四大作用域?qū)ο?表示一個(gè)會(huì)話對(duì)象.
application ServletContext JSP的四大作用域?qū)ο?表示當(dāng)前Web應(yīng)用對(duì)象.

6.JSP常用的動(dòng)作元素

1).JSP動(dòng)作元素:

<jsp:include/>
<jsp:forward/>
<jsp:param/>:在包含和轉(zhuǎn)發(fā)時(shí)号杠,利用該標(biāo)簽傳遞請(qǐng)求參數(shù)

JSP動(dòng)作元素.png
2).JSP的包含操作:

可以解決JSP代碼重復(fù)的問(wèn)題.
包含方式:

  • 方式1:使用JSP的include指令,靜態(tài)包含.
  • 方式2:使用JSP的include動(dòng)作元素,動(dòng)態(tài)包含.

區(qū)別:

  • 頁(yè)面包含的時(shí)機(jī)不一樣.
    • 靜態(tài)包含:在JSP翻譯成Servlet的時(shí)候,就合并在一起,只生成一個(gè)Servlet類.
    • 動(dòng)態(tài)包含:有幾個(gè)JSP文件就翻譯成幾個(gè)Servlet類,也編譯成幾個(gè)字節(jié)碼文件.
      在加載進(jìn)JVM,動(dòng)態(tài)合并在一起.
  • 動(dòng)態(tài)包含,可以給被包含的頁(yè)面?zhèn)鬟f參數(shù).
JSP的包含1.png
JSP的包含2.png

7.Servlet+JSP綜合

Servlet.png
JSP.png

四.小結(jié)

今日面試題:
1):說(shuō)說(shuō)請(qǐng)求轉(zhuǎn)發(fā)和URL重定向的區(qū)別.
2):說(shuō)說(shuō)forward和redirect的區(qū)別.
3):說(shuō)說(shuō)Servlet的三大作用域?qū)ο?
4):說(shuō)說(shuō)什么是JSP,說(shuō)說(shuō)你對(duì)JSP的理解.
5):JSP的三大指令.
6):說(shuō)說(shuō)JSP的注釋和HTML注釋的區(qū)別.
7):JSP的九大內(nèi)置對(duì)象.
8):JSP的四大作用域?qū)ο?
9):靜態(tài)包含和動(dòng)態(tài)包含的區(qū)別.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末蚪腋,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子究流,更是在濱河造成了極大的恐慌辣吃,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,214評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件芬探,死亡現(xiàn)場(chǎng)離奇詭異神得,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)偷仿,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門哩簿,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人酝静,你說(shuō)我怎么就攤上這事节榜。” “怎么了别智?”我有些...
    開封第一講書人閱讀 152,543評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵宗苍,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我,道長(zhǎng)讳窟,這世上最難降的妖魔是什么让歼? 我笑而不...
    開封第一講書人閱讀 55,221評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮丽啡,結(jié)果婚禮上谋右,老公的妹妹穿的比我還像新娘。我一直安慰自己补箍,他們只是感情好改执,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,224評(píng)論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著坑雅,像睡著了一般辈挂。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上霞丧,一...
    開封第一講書人閱讀 49,007評(píng)論 1 284
  • 那天呢岗,我揣著相機(jī)與錄音,去河邊找鬼蛹尝。 笑死后豫,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的突那。 我是一名探鬼主播挫酿,決...
    沈念sama閱讀 38,313評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼愕难!你這毒婦竟也來(lái)了早龟?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,956評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤猫缭,失蹤者是張志新(化名)和其女友劉穎葱弟,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體猜丹,經(jīng)...
    沈念sama閱讀 43,441評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡芝加,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,925評(píng)論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了射窒。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片藏杖。...
    茶點(diǎn)故事閱讀 38,018評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖脉顿,靈堂內(nèi)的尸體忽然破棺而出蝌麸,到底是詐尸還是另有隱情,我是刑警寧澤艾疟,帶...
    沈念sama閱讀 33,685評(píng)論 4 322
  • 正文 年R本政府宣布来吩,位于F島的核電站敢辩,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏弟疆。R本人自食惡果不足惜责鳍,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,234評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望兽间。 院中可真熱鬧,春花似錦正塌、人聲如沸嘀略。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)帜羊。三九已至,卻和暖如春鸠天,著一層夾襖步出監(jiān)牢的瞬間讼育,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評(píng)論 1 261
  • 我被黑心中介騙來(lái)泰國(guó)打工稠集, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留奶段,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,467評(píng)論 2 352
  • 正文 我出身青樓剥纷,卻偏偏與公主長(zhǎng)得像痹籍,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子晦鞋,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,762評(píng)論 2 345

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