JAVA EE 復(fù)習(xí)筆記

寫后記:

2017/11/22

最近因?yàn)榧ろ?xiàng)目需要做校園網(wǎng)的課表划滋、成績查詢功能,不得不使用模擬請求,去請求uims教務(wù)系統(tǒng)的信息勤家。

獲取后需要放在一個(gè)連有校園網(wǎng)(外網(wǎng)無法查詢)的服務(wù)器上,然后我們通過ajax請求服務(wù)器柳恐,服務(wù)器返回它在uims查完的信息伐脖。

我們用的是wamp安裝的apache服務(wù)器,然后我就把.py頁面放進(jìn)去了乐设,結(jié)果一直獲取不到url請求晓殊,

直到安裝了flask框架。

然后按照配置了 WSGI 伤提。

之前一直理解不了原理巫俺,現(xiàn)在總算是知其所以然了。


感謝? 吉林大學(xué) 計(jì)算機(jī)學(xué)院 的?姜老師



JAVA EE:標(biāo)準(zhǔn)開發(fā)架構(gòu)肿男,主要用于企業(yè)級應(yīng)用程序的開發(fā)

第一部分 Internet 與 Web 應(yīng)用

一介汹、web開發(fā)簡介

發(fā)展:靜態(tài)web->動(dòng)態(tài)web

靜態(tài)web


動(dòng)態(tài)web實(shí)現(xiàn)方式:php/jsp/cgi(公共網(wǎng)關(guān)接口)

動(dòng)態(tài)web主要特點(diǎn)

1.交互式;2.數(shù)據(jù)上傳舶沛、下載嘹承、查詢、存儲(chǔ)如庭;3.信息實(shí)時(shí)傳送

企業(yè)開發(fā)架構(gòu)

二叹卷、HTML簡介

HTML:一種標(biāo)記語言,通過嵌入代碼或標(biāo)記來表明文本格式

基本框架

<html>

? ? <head>

????????<meta charset="utf-8">

? ? ? ? <title>your title</title>

? ? </head>

? ? <body>

? ? ? ? ? ? ?<--your content -->

? ? </body>

</html>

表單

< form action="xxx.jsp" method="">? ? ? ? ? ? ? ? ? //遞交請求的頁面

< input type="submit" name="Submit" >? ? ? ? ? ?//遞交按鈕和按鈕的索引

< input type="text" name="password">

< input type="text" name="name">

< /form>

post和get的區(qū)別

get:拼接在頁面url中坪它,限制255個(gè)字符

post:不拼接骤竹,不限制



三、Tomcat 服務(wù)器

路徑


四往毡、簡單的程序 html+jsp

<%@? page language="java" import="java.util.*" pageEncoding="utf-8">? ?//按照學(xué)校的尿性肯定考試要默這句

<html>

<body>?

<%

out.println("<h1>并不是很有趣的JavaEE</h1>")

%>

</body>

</html>

第二部分 Servlet

一蒙揣、Servlet:Java對CGI程序的實(shí)現(xiàn)、多線程處理开瞭。服務(wù)器端程序懒震。

//其實(shí)就是負(fù)責(zé)處理http請求的程序罩息,服務(wù)器收到請求后,將請求交給servlet類處理个扰。

//servlet 處理完結(jié)果之后會(huì)交由服務(wù)器返回客戶端

二瓷炮、servlet實(shí)現(xiàn)



實(shí)現(xiàn)HttpServletResponse

客戶端每次訪問一個(gè)支持HTTP的Servlet程序時(shí),

處理請求:

Servlet引擎都將調(diào)用Servlet的service方法來進(jìn)行處理递宅。

service方法接受兩個(gè)參數(shù)娘香,

一個(gè)是用于封裝HTTP請求消息的對象,其類型為HttpServletRequest恐锣,

另一個(gè)是代表HTTP響應(yīng)消息的對象茅主,其類型為HttpServletResponse。

返回響應(yīng):

調(diào)用HttpServletResponse對象的getWriter方法可以獲得一個(gè)文本輸出流對象土榴,向這個(gè)流對象中寫入的數(shù)據(jù)將作為HTTP響應(yīng)消息的實(shí)體內(nèi)容部分發(fā)送給客戶端诀姚。

三、創(chuàng)建servlet

1.xxxx extends HttpServlet //集成httpservlet類

2.override [doGet],[doPost] //重寫httpservlet類的 處理get玷禽、post 請求的方法

3.將這個(gè)類的文件拷貝到web-inf/classes

web-inf文件夾只允許服務(wù)器訪問赫段,放入該文件夾的文件,用戶無法通過輸入url訪問(用戶端訪問)

4.在web.xml 中配置 servlet路徑


直接爬老師的課件了 = =

概括//考試時(shí)候這樣寫

import java.io.*

import javax.servlet.*

public class myServlet extends HttpServlet{

? ? public void doGet( HttpServletRequest req,HttpServletResponse resp )thirows IOException{

????????PrintWriter out = resp.getWriter();

? ? ? ? out.println("<h1>hahaha</h1>")

????}

}

配置

<servlet>

< servlet-name >hello</ servlet-name >

< servlet-class> org.lxh.servletdemo.HelloServlet ?<?servlet-class>

</servlet>

<servlet-mapping>



<?servlet-name?>hello< /servlet- name? >? ?// 映射路徑矢赁,出現(xiàn)下列路徑時(shí)跳轉(zhuǎn)到servlet

<?url-pattern>/hello.asp<? ?url-pattern >

</servlet-mapping>

將表單的請求交由servlet類處理

表單

<form action=" myServlet?" method="GET">? ? ? ? ? ? ? ? ? //遞交請求的頁面

< input type="submit" name="Submit" >? ? ? ? ? ?//遞交按鈕和按鈕的索引

< input type="text" name="password">

< input type="text" name="Name">

< /form>

public class myServlet extents HttpSetvlet{

????public void doGet(HttpServletRequest rq,HttpServletResponse resp) throw IOException{

? ? ? ? string password= rq.getParameter("password");

? ??????string Name= rq.getParameter("Name");

? ? ? ? PrintWriter out =resp.getWriter();

? ? ? ? out.println("<h1>"+ password +"</h1>")

????}

}


四糯笙、Servlet生命周期


servlet容器:tomcat等,控制servlet類的生命周期撩银。

什么時(shí)候?qū)嵗旱谝淮问褂酶椋蛘遷eb容器啟動(dòng)的時(shí)候(配置);

初始化:init()方法

銷毀:destory()方法 //銷毀前調(diào)用

servlet的部署:

Cookie: 把用戶的數(shù)據(jù)寫給用戶的瀏覽器(客戶端)

Session: 用戶的數(shù)據(jù)寫到用戶獨(dú)占的session中(服務(wù)器端)额获;需要客戶端的?cookie 協(xié)作够庙;會(huì)話,生命周期是一段周期(不訪問超過一定市場抄邀,服務(wù)器將其銷毀)

Application:這個(gè)就不多談了耘眨,不理解

使用:

get / setAttribute 方法存鍵值對

五、獲取初始化 = =我也不知道怎么用境肾,先記著

//寫在 myServlet里面

public void init(ServletConfig config) throws ServletException{

????this.initParam=config.getInitParameter("ref") ;//接收初始化參數(shù)

}

六剔难、獲取其他初始化對象

//寫在 myServlet doGet/doPost里面

(HttpServletRequest req,HttpServletResponse resp)throw IOExceotion

{

//Session

HttpSession ses = req.getSession();

ses.getAttribute("username");//從回話去鍵值

ses.setAttribute("name","朱陳超");//這個(gè)就不多談了

//獲取application

ServletContext application = super.getServletContext();

System.out.println (application.getRealPath("/"));

}

七、Servlet跳轉(zhuǎn)

1.客戶端跳轉(zhuǎn)

使用HttpServletResponse接口的sendRedirect()方法奥喻;

此跳轉(zhuǎn)只能傳遞session范圍的屬性偶宫,而無法傳遞request范圍的屬性;

resp.sendRedirect();

在頁面中接收session屬性? //ppt中忽然插入這個(gè)衫嵌,猝不及防= =

<%@ page contentType="text/html" pageEncoding="utf-8">//頁面配置

<html>

<body>

<h1><%=session.getAttribute("name") %></h1>

</body>

</html>

2.服務(wù)器跳轉(zhuǎn) //記不住读宙,這幾分不要了

RequestDispatcher rd = req.getRequestDispatcher("get_info.jsp");

rd.forward(req,resp) ;//服務(wù)器跳轉(zhuǎn)

敲代碼的時(shí)候百度

八、servlet處理文件的操作

1.文件讀取

doGet(HttpServletRequest req,HttpServletResponse resp){

resp.setContentType("text/html");

resp.setCharacterEncoding("utf-8");

PrintWriter out = resp.getWriter();

String filename = "afile.txt";

String realPath = req.getRealPath(filename);

File file = new File(realPath);

if(file.exists()){

????FileReader reader = new FileReader(file);

????BufferedReader br = new? BufferedReader(reader);

????String line = null;

????while(line=br.readline()!=null){

? ? ? ? out.print("<h3>"+line+"</h3>");

????}

}else{

? ? //文件不存在

}

}?

2.文件寫

doGet(HttpServletRequest req,HttpServletResponse resp){

resp.setContentType("text/html");

resp.setCharacterEncoding("utf-8");

PrintWriter out = resp.getWriter();

String filename = "afile.txt";

String realPath = req.getRealPath(filename);

File file = new File(realPath);

FileWriter writer = new FileWriter (file);

BufferedWriter bfw=new BufferedWriter( writer );

bfw,write(" l write");

bfw.flush();

bfw.close();

writer.close


}

3.文件上傳 // 真復(fù)雜

//表單

<form method="post" action="FileUpload" ENCTYPE="multipart/form-data">

文件:<input type="file" name="file">

<input type="submit" value="上傳" name="submit">

</form>


//servlet-doPost

//import java.io.*

//import javax.servlet.*

//import org.apache.commons.fileupload.*

public? void doPost(HttpServletRequest req,HttpServletResponse resp){

boolen isMultipart = ServletFileUpload.isMultipartContent(request);//請求是不是上傳文件

if( isMultipart?){

????FileItemFactory factory = new DiskFileItemFactory();

????ServletFileUpload upload = new ServletFileUpload(factory);

????lterator items;

????try{

? ? ? ? items = upload.parseRequest(request).iterator();//用迭代器解析request請求中的信息

? ? ? ? while(item.hashNext()){

? ? ? ? ? ? FileItem item=(Fileltem)items.next();

? ? ? ? ????if(!item.isFormFiels){

? ? ? ? ? ? //取出上傳文件的文件名

? ? ? ? ? ? String name = item.getName();

? ? ? ? ? ? String fileName = name.substring(name.lastIndexOf("\\")+1,name.length());

? ? ? ? ? ? String path=request.getRealPath("file")+File.separatorChar+fileName;

????????????//上傳

? ? ? ? ? ? File uploadFile = new File(Path)

? ? ? ? ? ? item.write(uploadedFile);

????????????}

????????}

????}

}

}

第三部分 JSP

JSP:動(dòng)態(tài)網(wǎng)站技術(shù)標(biāo)準(zhǔn)楔绞,它是在傳統(tǒng)的HTML網(wǎng)頁文檔中加入能夠生成動(dòng)態(tài)內(nèi)容的可執(zhí)行Java程序片段和JSP標(biāo)記所構(gòu)成的代碼

结闸!瀏覽器請求jsp文件時(shí)候,先由服務(wù)器執(zhí)行文件的程序段酒朵,執(zhí)行完畢后再發(fā)送給瀏覽器桦锄。

一、例子

<%@ page contentType="text/html" ; charset="Utf-8" %>//配置頁面

<%@ page language="java" %>

<%! String s1,s2,s3,s4>//定義<%! xxxxx %>

<html>

? ? <body>

????????<h1>JSP<h2>

? ? ? ? <% s1="1";s2="2";s3="3";out.println(s1+s2+s3) %>

? ? </body>

</html>

二蔫耽、應(yīng)用方式

JSP+Servlet+JDBC+JavaBeans

<%

? ? String name="zhucc"http://requset.getParameter("Name");

? ? if(name! = null)

????{

%>

? ? //這里面可以些html標(biāo)簽與<%=name%>的賦值结耀、<%%>操作

<%

????}else{

%>

? ? //這里面可以些html標(biāo)簽與<%=name%>的賦值、<%%>操作

<%

????}

%>

注釋

<-- content --> //用戶端可以看到(html注釋)

<%-- content --%>//用戶端看不到(jsp注釋)

三匙铡、<jsp : forward>

強(qiáng)制調(diào)轉(zhuǎn)請求到另外的文件如JSP图甜、Servlet或者是靜態(tài)頁面來處理并將當(dāng)前頁面的執(zhí)行停止。

1.寫法

//不傳遞參數(shù)

<jsp:forward page=" {文件路徑}? ">

//傳遞參數(shù)

<jsp:forward page=" {文件路徑}? ">

? ? <jsp:param name="KEY" value="VALUR" />

? ? ...//多個(gè)參數(shù)

</jsp:forward>

2.和response.sendRedirect的區(qū)別

<jsp : forward>

1.服務(wù)器內(nèi)部轉(zhuǎn)換

2.使用同一個(gè)請求//就是說兩個(gè)頁面可以從request.getParameter獲取同樣的參數(shù)

3.跳轉(zhuǎn)后不再執(zhí)行后面的語句

4.速度快

response.sendRedirect

1.需要在客戶端往返

2.不同的請求

3.繼續(xù)執(zhí)行后面的語句

4.速度慢

四鳖眼、包含操作 include

1.<%@include> 靜態(tài)包含

在JSP中動(dòng)態(tài)地包含入一個(gè)靜態(tài)或動(dòng)態(tài)的頁面資源黑毅,當(dāng)JSP執(zhí)行時(shí),將所包含的資源進(jìn)行處理钦讳,并將這些頁面如同在同一個(gè)JSP中一樣地運(yùn)行矿瘦、顯示、輸出愿卒。

<html>

<body>

<h1>Title</h1>

<%@include file="xxxx.jsp"? ?%>

</body>

</html>

2.<jsp:include> 動(dòng)態(tài)包含

動(dòng)態(tài)包含語句缚去,可以自動(dòng)區(qū)分被包含的頁面是靜態(tài)還是動(dòng)態(tài)。

//先分別處理被包含的頁面(jsp 動(dòng)態(tài)頁面)琼开,再將結(jié)果包含進(jìn)來

不傳遞參數(shù)

<jsp:include page=" { 文件路徑 } " flush=“true|fasle”>

傳遞參數(shù)

< jsp:include page=" { 文件路徑 } " flush=“true|fasle”>

? ? <jsp:param name="KEY" value="VALUE">

</jsp:include

五易结、<jsp:plugin>

在客戶端顯示和執(zhí)行Java,Applet或JavaBean,該動(dòng)作可以自動(dòng)檢測客戶端瀏覽器的類型柜候,當(dāng)一個(gè)plugin不能被加載時(shí)該動(dòng)作還可以自動(dòng)下載和安裝該plugin搞动,并使用動(dòng)作將文本插入到頁面中。該動(dòng)作還支持很多屬性

//不寫這個(gè)了改橘,暫時(shí)沒體會(huì)到有啥用滋尉,需要的時(shí)候再查

六、JAVABeam

1.操作

<jsp:params>:為Java applet 或JavaBean 定義一組參數(shù)

<jsp:useBean>:定義一個(gè)在JSP中使用的JavaBean

<jsp:getProperty>:從指定的JavaBea中獲取一個(gè)屬性值

<jsp:setProperty>:設(shè)定一個(gè)JavaBean實(shí)例的某個(gè)屬性值

2.示例

<jsp:useBean id = "? formMail " class = " util.formMail " >

? ? <jsp:setProperty name="formMail" property="*" />

</jsp:useBean>

七飞主、操作錯(cuò)誤頁面

<%@page errorPage="error.jsp" %> //程序一單出現(xiàn)錯(cuò)誤則跳轉(zhuǎn)到該頁面

error.jsp

<%@page languag="java" contentType="text/html" pageEncoding="utf-8"? %>

<%@page isErrorPage="true" %>

<h1>程序出現(xiàn)了錯(cuò)誤</h1>

八狮惜、JSP內(nèi)置對象的四種屬性范圍

pageContext: 只在一個(gè)頁面中保存屬性,跳轉(zhuǎn)后無效

request: 只在一次請求中保存碌识,服務(wù)器跳轉(zhuǎn)后依然有效

session: 在一次會(huì)話范圍中無論如何跳轉(zhuǎn)都有效碾篡,但是新開瀏覽器無效

application: 在整個(gè)服務(wù)器上保存,所有的用戶都可以使用

1.操作

public void setAttribute(String keyName,Object keyValue);//添加

public Object getAttribute(String name);//獲取

Date aDay=(Date)pageContext.getAttribute("birthday");

public void removeAttribute(String name);//刪除

pageContext 使用<jsp:forward page="">是不好使的筏餐,因?yàn)橹荒墚?dāng)前頁面使用

//不是很理解开泽,那用變量不是都可以解決嘛,有啥作用魁瞪?穆律?惠呼??峦耘?

至于request和session和application剔蹋,很好理解,就不多談了辅髓。

(href 跳轉(zhuǎn) 屬于客戶端調(diào)準(zhǔn)泣崩, request 不是同一個(gè))

2.表單傳參,request獲取

<form action = "xxx.jsp" method = "post">

<input type="text" name="uname">

<input type="submit" value="遞交">

</form>

//我的xxx.jsp

<%

request.setCharacterEncoding("utf-8");

var name =request.getParameter("name");

%>

<h1><%=name%></h1>

九洛口、response常用方法

1.設(shè)置響應(yīng)頭

response.setHeader("KEY","VALUE");

2.跳轉(zhuǎn)

response.sendRedirect(""hello.html);

3.操作Cookie


//創(chuàng)建cookie

<%

Cookie c1 = new Cookie("Name","ZCC");//創(chuàng)建cookie

c1.setMaxAge(60);//設(shè)置cookie保存60秒矫付;

response.addCookie(c1);//向客戶端增加cookie

%>

//獲取cookie

<%

Cookie c[]=request.getCookie()://獲取全部cookie

c[0].getName();

c[0].getValue();

%>

十、Session常用方法

當(dāng)一個(gè)用戶連接到服務(wù)器之后第焰,服務(wù)器會(huì)自動(dòng)為此session自動(dòng)分配一個(gè)不會(huì)重復(fù)的Session Id买优,服務(wù)器依靠這些不同的Session Id來區(qū)分每一個(gè)不同的用戶。

1.獲取session id

string id = session.getId();

2.是否是新的session (新用戶)

boolean isNew = session.isNew();

3...取得用戶創(chuàng)建時(shí)間什么的

就不多談了樟遣,用到baidu

十一而叼、servlet與jsp 的開發(fā)模式 // 究極盜圖

1.Model 1


2.Model 2



第四部分JDBC

一、JDBC的任務(wù)

1.同一個(gè)數(shù)據(jù)庫建立連接

2.向數(shù)據(jù)庫發(fā)送SQL語句

3.處理數(shù)據(jù)庫返還的結(jié)果

二豹悬、JDBC的驅(qū)動(dòng)管理器

驅(qū)動(dòng)管理器是【DriverManage類】葵陵,它在數(shù)據(jù)庫和用戶驅(qū)動(dòng)器間工作,在數(shù)據(jù)庫和適合的驅(qū)動(dòng)器間建立聯(lián)系瞻佛。真正進(jìn)行數(shù)據(jù)庫連接的是【Driver】類中的【connect()】方法脱篙。

三、用SQL指令操作數(shù)據(jù)庫

1.載入JDBC驅(qū)動(dòng)程序

Class.forName("com.mysql.jdbc.Driver");//所選定驅(qū)動(dòng)程序的名稱

2.連接到DBMS

getConnection();

getConnection(String url);

getConnection(String url,Properties info);

getConnection(String url,String user,String password);

String url="jdbc:mysql:// localhost:3306/graduation_design"

3.創(chuàng)建并執(zhí)行語句

通過Statement對象發(fā)送SQL語句伤柄,返回查詢結(jié)果绊困。

Statement對象用于執(zhí)行簡單的SQL語句,也就是沒有參數(shù)的SQL語句适刀;

PreparedStatement對象用于執(zhí)行需要重復(fù)執(zhí)行的預(yù)編譯過的SQL語句秤朗;

CallableStatement對象用于執(zhí)行一個(gè)數(shù)據(jù)庫的存儲(chǔ)過程。

//創(chuàng)建Statement

Statement stmt = connect.createStatment();

//

executeQuery( String sql );//執(zhí)行給定的SQL查詢語句笔喉,返回ResultSet對象取视。

executeUpdate( String sql );//執(zhí)行給定的SQL更新語句,返回INSERT常挚、UPDATE或DELETE語句的行計(jì)數(shù)作谭,或者返回0表示不返回任何內(nèi)容。

execute( String sql ); //執(zhí)行給定的SQL查詢語句奄毡,該語句可能返回多個(gè)結(jié)果折欠。

//關(guān)閉

stmt.close();

4.處理DBMS返回的數(shù)據(jù)

JDBC接收查詢結(jié)果是通過ResultSet對象實(shí)現(xiàn)的//結(jié)果集

用戶可以通過get方法來訪問

//元數(shù)據(jù):數(shù)據(jù)信息

DatabaseMetaData dbmd=connection.getMetaData();

5.終止與DBMS的連接

connection.close();

6.DEMO

String diver="com.mysql.jdbc.Driver";

String url="jdbc:mysql://localhost:3306/graduation_design"

String user="root";

String password="";

//第一步:載入JDBC驅(qū)動(dòng)程序

Class.forName(driver);

//第二步:連接到數(shù)據(jù)庫

Connection connect=DriverManage.getConnection(url,user,password);

//第三部:創(chuàng)建Statement對象

Statement stmt = connect.createStatement();

//獲取查詢結(jié)果

String query = “SELECT * FROM namelist”;

ResultSet result =stmt.executeQuery(query);

ResultSetMetaData md=result.getMetaData();

StringBuffer s =new StringBuffer();

for(int i=1;i<=md.getColumnCount;i++){

s.append(md.getColumnName(i));

}

//關(guān)閉連接

result.close();

stmt.close();

connect.close();

第五部分 JavaBean概述

javaBean:簡單地說JavaBean就是普通的Java類,在遵循JavaBean特定規(guī)范下對功能進(jìn)行封裝

一锐秦、demo

public class SimpleBean(){

private string name;

public void setName(String name){this.name=name}

public String getName(){return this.name}

}

//每一個(gè)屬性都要有public 的 setter和getter


web開發(fā)標(biāo)準(zhǔn)目錄結(jié)構(gòu)

javaBean保存著 classes文件夾里面

二咪奖、jsp使用javaBean

1.import

<%@page import="cn.mldn.*" %>

<%

SimpleBean simple = new SimpleBean() ;

simple.setName("李興華") ;

%>

<%=simple.getName()%>

2.使用<jsp:useBean>

<jsp:useBean id="實(shí)例化對象名稱" scope="保存范圍" class="包.類名" />

<jsp:useBean id="simple" scope="page" class="cn.mldn.lxh.demo.SimpleBean" />

<%

simple.setName("ZCC");

%>

三、javaBean與表單

1.表單

<form action="input_bean.jsp" method="post">

? ? <input type="text" name="name">

? ? <input type="submit" value="遞交">

</form>

2.jsp接收表單內(nèi)容

<%@page import="cn.mldx.lxh.demo.*" pageEncoding="utf-8" %>

<% request.setCharacterEncoding("utf-8")%>

<%

SimpleBean simple=new SimpleBean();

simple.setName(request.getParameter("name"));

%>

3.設(shè)置屬性的參數(shù)

<jsp:useBean id="simple" scope="page" class="cn.mldn.lxh.demo.SimpleBean"/>

<jsp:setProperty name="simple" property="name" param="name"/>

4.取得屬性

<h1>姓名: < jsp:getProperty name="simple" property="age"/> <h1>

5.刪除javaBean

1)刪除page范圍

pageContext.removeAttribute(JAVABEAN的名稱)农猬;

2)刪除request赡艰、session售淡、application范圍

request.removeAttribute(JAVABEAN的名稱)斤葱;

session .removeAttribute(JAVABEAN的名稱);

application .removeAttribute(JAVABEAN的名稱)揖闸;

—— END ——

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末揍堕,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子汤纸,更是在濱河造成了極大的恐慌衩茸,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,198評論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件贮泞,死亡現(xiàn)場離奇詭異楞慈,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)啃擦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評論 3 398
  • 文/潘曉璐 我一進(jìn)店門囊蓝,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人令蛉,你說我怎么就攤上這事聚霜。” “怎么了珠叔?”我有些...
    開封第一講書人閱讀 167,643評論 0 360
  • 文/不壞的土叔 我叫張陵蝎宇,是天一觀的道長。 經(jīng)常有香客問我祷安,道長姥芥,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,495評論 1 296
  • 正文 為了忘掉前任汇鞭,我火速辦了婚禮凉唐,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘虱咧。我一直安慰自己熊榛,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,502評論 6 397
  • 文/花漫 我一把揭開白布腕巡。 她就那樣靜靜地躺著玄坦,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上煎楣,一...
    開封第一講書人閱讀 52,156評論 1 308
  • 那天豺总,我揣著相機(jī)與錄音,去河邊找鬼择懂。 笑死喻喳,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的困曙。 我是一名探鬼主播表伦,決...
    沈念sama閱讀 40,743評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼慷丽!你這毒婦竟也來了蹦哼?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,659評論 0 276
  • 序言:老撾萬榮一對情侶失蹤要糊,失蹤者是張志新(化名)和其女友劉穎纲熏,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體锄俄,經(jīng)...
    沈念sama閱讀 46,200評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡局劲,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,282評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了奶赠。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片鱼填。...
    茶點(diǎn)故事閱讀 40,424評論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖车柠,靈堂內(nèi)的尸體忽然破棺而出剔氏,到底是詐尸還是另有隱情,我是刑警寧澤竹祷,帶...
    沈念sama閱讀 36,107評論 5 349
  • 正文 年R本政府宣布谈跛,位于F島的核電站,受9級特大地震影響塑陵,放射性物質(zhì)發(fā)生泄漏感憾。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,789評論 3 333
  • 文/蒙蒙 一令花、第九天 我趴在偏房一處隱蔽的房頂上張望阻桅。 院中可真熱鬧,春花似錦兼都、人聲如沸嫂沉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,264評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽趟章。三九已至杏糙,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間蚓土,已是汗流浹背宏侍。 一陣腳步聲響...
    開封第一講書人閱讀 33,390評論 1 271
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留蜀漆,地道東北人谅河。 一個(gè)月前我還...
    沈念sama閱讀 48,798評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像确丢,于是被迫代替她去往敵國和親绷耍。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,435評論 2 359

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