JSP笔记


  • JSP 基本结构

    JSP 页面组成:模板文本(HTML,XML,纯文本),JSP 元素;

    JSP 元素:脚本元素,指令元素,动作元素

      脚本元素
          脚本  <% %>
          表达式 <%=%>
          声明  <%!%>
          注释  <%-- --%>
    
      指令元素
          <%@page
          <%@include
          <%@taglib
    
      动作元素
          <jsp:include
          <jsp:forward
          <jsp:param
          <jsp:useBean
    
  • JSP 脚本

      语法:<% JSP脚本 %>
    
      JSP 表达式(简单的输出形式)
      语法:<%= 表达式 %>
    
      JSP 声明(声明一个或多个变量和方法,在 JSP 页面初始化时进行初始化,类的成员变量和方法)
      语法:<%! JSP 声明 %>
    
      JSP 注释
      语法:<%-- JSP注释 --%>
    

  • JSP 指令

    1. page 指令

      描述了和页面相关的信息,导入所需类包,指明输出内容类型,控制 Session 等;
      语法:<%@page 属性列表 %>

      属性:
      language Java
      import 导入 Java 软件包或类名列表
      isThreadSafe true
      contentType MIME 类型和 JSP 页面响应时的编码方式,"text/htm;charset=ISO8859-1"
      pageEncoding 指定 JSP 文件本身编码方式,pageEncoding="UTF-8"
      session true
      errorPage 设定 JSP 页面异常时重新指向的页面 URL
      isErrorPage true
      isELIgnored false
      buffer
      autoFlush

    2. include 指令(静态包含)

      在页面翻译期间引入另一个文件,被包含的文件可以是 JSP,HTML 或文本文件;
      语法:<%@include file="文件"%>

    3. taglib 指令

      指定 JSP 页面所使用的标签库,可以在 JSP 页面中使用标签库中的标签
      语法:<%@taglib url="标签库URI" prefix="标签前缀"%>

      保留前缀有:java,javax,jsp,jspx,servlet,sun,sunw


  • JSP 动作

    JSP 标准动作:在 JSP 中可以使用 XML 语法格式的一些特殊标记来控制行为,
    动态地插入文件,调用 JavaBean 组件,重定向页面等功能;

    <jsp:include>           在页面被请求时引入一个文件;(动态包含)
    <jsp:forward>           把请求转发给另一个页面;
    <jsp:useBean>           用于查找或实例化一个 JavaBean;
    <jsp:setProperty>       设置 JavaBean 的属性;
    <jsp:getProperty>       输出某个 JavaBean 的属性;
1. <jsp:include>
语法:<jsp:include page="urlSpec" flush="true"/>
          <jsp:include page="urlSpec" flush="true">
                    <jsp:param name="name" value="value"/>
                    .......
          </jsp:include>
          
          flush="true" 表示设定是否自动刷新缓冲区,包含大量数据时为缩短客户端延迟,
          可将一部分内容先行输出;
2. <jsp:forward>
语法:
    <jsp:forward page="relativeURLSpec" />
        <jsp:forward page="relativeURLSpec" />
                <jsp:param name="name" value="value"/>
                .......
        </jsp:forward>

        <jsp:forward>带着 request 信息跳转;sendRedirect 不带 request 信息跳转;
3. <jsp:useBean>
语法:
        <jsp:useBean id="name" class="className" scope="page|request|session|application" />
        <jsp:useBean id="name" type="typeName" scope="page|request|session|application" />

        id 指定该 JavaBean 实例的变量名,通过 id 可以访问这个实例;
        class 指定 JavaBean 的类名;
        scope 指定 JavaBean 的作用范围;默认 page
        type 指定 JavaBean 对象的类型,通常在查找已存在的 JavaBean 时使用,这时使用 type 将不会产生新的对象;
4. <jsp:setProperty>
语法:
        <jsp:setProperty name="beanName" property="propertyName" value="propertyValue" />
        <jsp:setProperty name="beanName" property="propertyName" param="parameterName" />

        name 指定 JavaBean 对象名,与 useBean 动作中的 id 相对应;
        property 指定 JavaBean 中需要赋值的属性名;
        value 指定要为属性设置的值;
        param 指定请求中的参数名(表单传值,或 URL 传值),并将参数的值赋给 property 所指定的属性;
5. <jsp:getProperty>
语法:
        <jsp:getProperty name="beanName" property="propertyName" />    
        转换成 String 类型的值     
  • JSP 内置对象
    request     javax.servlet.http.HttpServletRequest       请求对象,提供客户端 HTTP 请求数据的访问
    response     javax.servlet.http.HttpServletResponse    响应对象,用来向客户端输出响应
    out         javax.servlet.jsp.JspWriter               输出对象,提供对象输出流的访问
    session        javax.servlet.http.HttpSession              会话对象,用来保存服务器与每个客户端会话过程中的信息
    application    javax.servlet.ServletContext                 应用程序对象,用来保存整个应用环境的信息
    pageContext    javax.servlet.jsp.PageContext             页面上下文对象,用来存储当前 JSP 页面的相关信息
    config       javax.servlet.ServletConfig                 页面配置对象,JSP 页面的配置信息对象
    page          javax.servlet.jsp.HttpJspPage                当前 JSP 页面对象,即 this
    exception      java.lang.Throwable                        异常对象,用于处理 JSP 页面中的错误
1. request

    void setCharacterEncoding(String charset)
    String getParameter(String name)
    String[] getParameterValues(String name)
    void setAttribute(String name, Object value)
    Object getAttribute(String name)

2. response

    void setContentType(String name)
    void sendRedirect(String url)

3. out

    javax.servlet.jsp.JspWriter 与 HttpServletResponse 接口的 getWriter() 方法获得的 PrintWriter 对象功能相同,
    继承自 java.io.Writer 类

    数据的输出
        print/println(基本数据类型)       输出一个基本数据类型的值
        print/println(Object obj)       输出对象的引用地址
        print/println(String str)       输出一个换行符
        newLine()                       换行符

    缓冲区的处理
        void clear()            清除输出缓冲区的内容,若缓冲区为空,则产生 IOException 异常
        void clearBuffer()      清除输出缓冲区的内容,若缓冲区为空,不会产生 IOException 异常
        void flush()            直接将目前暂存于缓冲区的数据刷新输出
        void close()            关闭输出流,流一旦被关闭,则不能再使用 out 对象做任何操作
        int getBufferSize()     获取目前缓冲区的大小(kb)
        int getRemaining()      获取目前使用后还剩下的缓冲区大小(kb)
        boolean isAutoFlush()   返回 true 表示缓冲区满时(8kb)会自动刷新输出;false 表示缓冲区满时
                                不会自动清除并产生异常处理


4. session 
    一次对话可以包含多次请求与响应

    void setAttribute(String name, Object value)
    Object getAttribute(String name)
    void invalidate()                   使 session 对象失效,释放所有属性空间

    通常把与用户会话状态相关的信息放入 session 范围内,对于一次请求资源间的信息传递,应该把信息传递给
    request 范围内,然后通过请求转发实现;

5. application
    application 对象在容器启动时实例化,在容器关闭时销毁。作用域为整个 Web 容器的生命周期
    实现了 javax.servlet.ServletContext 接口

    void setAttribute(String name, Object value)
    Object getAttribute(String name)
    void removeAttribute(String name)               根据属性名从 application 域中移除属性


6. pageContext
    表示当前页面运行环境,用以获取当前 JSP 页面的相关信息;
    pageContext 对象作用范围为当前 JSP 页面,可以访问当前 JSP 页面所有的内置对象

    ServletRequest getRequest()      获取当前 JSP 页面的请求对象
    ServletResponse getResponse()      获取当前 JSP 页面的响应对象
    HttpSession getSession()            获取当前 JSP 页面有联系的会话对象
    ServletConfig getServletConfig()    获取当前 JSP 页面的 ServletConfig 对象
    ServletContext getServletContext()  获取当前 JSP 页面的运行环境对象
    Object getPage()                    获取当前 JSP 页面的 Servlet 实体
    Exception getException()            获取当前 JSP 页面的异常对象,page指令的 isErrorPage 设为 true
    JspWriter getOut()                获取当前 JSP 页面的输出流对象

    存取域属性的方法
    Object getAttribute(String name, int scope)                 获取范围为 scope,名为 name 的属性对象
    void setAttribute(String name, Object value, int scope)     以名/值对的方式存储 scope 范围域属性
    void removeAttribute(String name, int scope)                   从 scope 范围移除名为 name 的属性
    Enumeration getArributeNamesInScope(int scope)               从 scope 范围中获取所有属性的名称

    scope 参数
        PAGE_SCOPE = 1          代表 page 范围
        REQUEST_SCOPE = 2       代表 request 范围
        SESSION_SCOPE = 3       代表 session 范围
        APPICATION_SCOPE = 4    代表 application 范围


7. page 对象
    JSP 翻译后的 Servlet 对象,很少使用

8. config 对象
    JSP 翻译后的 Servlet 的 ServletConfig 对象,Servlet 初始化参数,web.xml


9. exception 对象
    必须将此页面中 page 指令的 isErrorPage 属性值设为 true
  • JSP 四种作用域

    1. 页面域
      生命周期:页面执行期间
      可访问性:存储在页面域的对象只对它所在的页面可访问的

    2. 请求域
      生命周期:一次请求过程,包括请求被转发(forward)或者被包含(include)的情况
      可访问性:存储在请求域中的对象只有在此请求过程中才可以被访问

    3. 会话域
      生命周期:某个客户端与服务器所连接的时间,客户端在第一次访问服务器时创建会话,在关闭浏览器或主动退出后,会话结束
      可访问性:存储在会话域中的对象在整个会话期间(可能包含多次请求)都可以被访问

    4. 应用域
      生命周期:从服务器开始执行服务到服务器关闭为止,时间最长的
      可访问性:存储在应用域中的对象在整个应用程序运行期间可以被所有 JSP 和 Servlet 共享访问,使用时要特别注意存储数据的大小和安全性,否则可能会造成服务器负载过重和线程安全性问题

    对应 pageContext,request,session,application
    都通过 setAttribute(String name, Object value) getAttribute(String name) 实现属性对象在不同作用域的数据共享

  • JavaBean
    1. 简介
      一种是有用户界面(UI,UserInterface)的 JavaBean,例如 GUI 组件
      另一种是没有用户界面,主要负责封装数据,业务处理的 JavaBean.(JSP 通常访问后一种)

    2. 规范(Java 类)

      1. JavaBean 是一个公开的(public)类,以便被外部程序访问;
      2. 具有一个无参的构造方法(默认构造方法),以便被外部程序实例化时调用;
      3. 提供 setXxx() 方法和 getXxx() 方法,以便让外部程序设置和获取其属性;
    <jsp:useBean>: 创建或查找 JavaBean 实例对象
    <jsp:setProperty>: 设置 JavaBean 对象的属性值,相当于调用 JavaBean 对象的 setter 方法
    <jsp:getProperty>: 获取 JavaBean 对象的属性值
        <jsp:useBean id="product" class="ProductBean" />
        <jsp:setProperty property="price" value="23.5" name="product" />
        <jsp:setProperty property="num" value="2" name="product" />
        <jsp:getProperty property="totalPrice" name="product" />
<jsp:useBean>
        语法:
        <jsp:useBean id="beanInstanceName" class="package.class" scope="page|request|session|application" />

        id 属性:指定 JavaBean 对象的引用名称和其存储域属性名;
        class属性:指定 JavaBean 对象的完整类名;
        scope 属性:默认 page
    ```
    <jsp:setProperty>
    语法:
    <jsp:setProperty name="beanInstanceName" property="propertyName" value="propertyName"|
                                             property="propertyName" param="parameterName"|   //有请求
                                             property="propertyName"|
                                             property="*"
    />

    name 属性指定 JavaBean 对象的名称,其值应与<jsp:useBean>标签中的 id 属性值相同;
    property 属性指定 JavaBean 对象的属性名;
    value 属性指定 JavaBean 对象的某个属性的值,可选;
    param 属性将一个请求参数的值赋给 JavaBean 对象的某个属性,可选;

    <jsp:setProperty>元素还可用于<jsp:useBean>元素起始标签和终止标签间,
    表示 JavaBean 对象实例化时,对其属性进行初始化。若对象已存在,不执行。

    <jsp:getProperty>
    语法:
    <jsp:getProperty name="beanInstanceName" property="propertyName" />

* 表达式式语言(EL)
    1. EL 的启用
    <%@page isELIgnored = "true|false" %>

    true EL表达式被当成字符串直接输出
    false JSP引擎调用EL引擎解释执行(默认)
        特点:
            可以访问 JSP 的内置对象;
            简化了对 JavaBean,集合的访问方式;
            可以对数据进行自动类型转换;
            可以通过各种运算符进行运算;
            可以使用自定义函数实现复杂业务功能;

    2. EL 语法
    ${表达式}
        表达式可以是常量,变量,可以使用 EL 隐含对象,EL 运算符和 EL 函数;

        1. EL中的常量
            布尔常量:true,false
            整形常量:Long.MIN_VALUE 到 Long.MAX_VALUE 之间
            浮点数常量:Double.MIN_VALUE 到 Double.MAX_VALUE
            字符串常量:使用单引号或双引号引起来的一连串字符
            NULL常量:表示引用对象为空,${null} 输出空

        2. EL中的变量
            ${varname}
            表达式按照 page, request, session, application 范围顺次查找名为 varname 的属性,
            找到传回,没有找到回传 null

            EL保留字
                and     or      not     empty       div     mod     instance of     
                eq      ne      It      gt          le      ge      true 
                false   null

        3. EL中的操作符
        "."操作符:访问对象的某个属性                                ${productBean.category.name}
        "[]"操作符:可用于访问对象的属性,属性需使用双引号括起来  ${productBean["category"]["name"]}
            当属性中包含了特殊字符,如:"."和"-"                   ${header["user-agent"]}
            "[]"可以访问有序集合或数组中的指定索引位置的某个元素    ${array[0]}
            "[]"可以访问 Map 对象的 key 关键字的值                  ${map["key"]}
            "[]"可以和点操作符结合使用                             ${user[0].username}

        4. EL的错误处理机制
            不提供警告,只提供默认值和错误,默认值是空字符串,错误是抛出一个异常

            不存在的变量:输出空字符串
            不存在对象的属性:输出空字符串
            存在对象的不存在属性:抛出 PropertyNotFoundException


    3. EL隐含对象
        1. 与范围有关的隐含对象
        pageScope              =pageContext.getAttribute()
        requestScope            =request.getAttrbute()
        sessionScope            =session.getAttrbute()
        applicationScope        =application.getAttrbute()
        2.与请求参数有关的隐含对象
            param                   =request.getParameter()
            paramValues             =request.getParameterValues()

        3.其它隐含对象
            pageContext         相当于 JSP 页面中的 pageContext 对象,用于获取 ServletContext,request,response,session
            header              =request.getHeader(String name)
            headerValues        =request.getHeader(String name)
            cookie              
            initParam           =application.getInitParameter(String name)


    4. 运算符

        1. 算术运算符
        +   -   *   /或div       %或mod

        2. 关系运算符
        ==或eq       !=或ne       <或lt     >或gt       <=或le       >=或ge

        3. 逻辑运算符
        &&或and  ||或or       !或not

        4. 条件运算符
        A?B:C

        5. empty运算符
        检测一个值是否为null或"空"

            当操作数指向的对象为null时,返回true
            当操作数是空字符串时,返回true
            当操作数是集合或数组时,如没有任何元素,返回true
            当操作数是java.util.Map对象一个关键字时,如Map为空,返回true



* 标准标签库(JSTL)
    
    1. JSTL函数库分类
    标签库             前缀名称        URI
    核心标签库       c               http://java.sun.com/jsp/jstl/core           包含Web应用的通用操作的标签
    I18N标签库         fmt             http://java.sun.com/jsp/jstl/fmt            包含实现Web应用程序的国际化的标签
    SQL标签库      sql             http://java.sun.com/jsp/jstl/sql            包含用于访问数据库和对数据库中的数据进行操作的标签
    XML标签库      x               http://java.sun.com/jsp/jstl/xml            包含对XML文档中的数据进行操作的标签
    函数标签库       fn              http://java.sun.com/jsp/jstl/functions      由JSTL提供一套EL自定义函数,包含了JSP页面制作者经常要用到的字符串操作
    2. [下载地址](https://tomcat.apache.org/taglibs/standard/)

      将四个jar包导入相应工程下的WebContent/WEB-INF/lib

      使用:在JSP页面使用JSTL标签库时,使用 taglib 指令指定需要使用的函数库前缀和URI
    例:<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

    3.  核心标签库

        1. 通用标签,用于操作变量
            <c:out>标签       用于输出数据,等同于<%=表达式%>
            <c:out value="value" [escapeXml="{true|false}"] [default="defaultValue"] />
            value表示要输出的数据,可以是JSP表达式,EL表达式或静态值
            escapeXml表示是否将>,<,&,'," 等特殊字符进行HTML字符实体转换后再进行输出,默认值为 true
            default表示如果value属性的值为null时所输出的默认值
            <c:set>标签       用于设置各种范围域的属性
            <c:set var="varName" value="value" [scope="{page|request|session|application}"] />
            varName 指定要设置的范围域属性名;
            value 指定var属性的属性值;
            scope 指定var属性的范围域,默认page;
            <c:remove>标签        用于删除各种范围域属性
            <c:remove var="varName" [scope="{page|request|session|application}"] />
            <c:catch>标签         用于捕获嵌套在标签体中的内容抛出的异常
            <c:catch [var="varName"]>
                    nested actions
            </c:catch>
            var属性用于标识捕获的异常对象名称,并将异常对象保存在page域中;
            若未指定var属性,则仅捕获异常而不在page域中保存异常对象

        2. 条件标签,用于流程控制

            <c:if>          用于条件判断
                <c:if test="condition" [var="varName"] [scope="{page|request|session|application}"] >
                    //condition为true时执行的代码
                </c:if>

                test  用于指定条件表达式,返回boolean类型值;
                var   用于指定将test属性的执行结果保存到某个范围作用域的属性名称;
                scope 用于指定将test属性的执行结果保存到哪个范围作用域中

            <c:choose>
            <c:choose>
                //<c:when>或<c:otherwise>子标签
            </c:choose>
            <c:when>
                <c:when test="condition">
                    //condition为true时,执行的代码
                </c:when>

                <c:when>标签代表<c:choose>标签的一个条件分支,必须以<c:choose>为父标签,且必须在<c:otherwise>标签之前

            <c:otherwise>
                <c:otherwise>
                    //执行的代码
                </c:otherwise>

        3. 迭代标签,用于循环遍历集合

            <c:forEach>

                <c:forEach [var="varName"] items="collection" [varStatus="varStatusName"] [begin="begin"] [end="end"] [step="step"]>
                    //标签体内容
                </c:forEach>

                var用于指定将当前迭代到的元素保存到page域中的属性名称;
                items指定将要迭代的集合对象;
                varStatus表示当前被迭代到的对象的状态信息,包括四个属性:
                    index:当前迭代成员的索引值;
                    count:当前已迭代成员的数量;
                    first:当前迭代到的成员是否为第一个;
                    last:当前迭代到的成员是否为最后一个;
                begin表示遍历的起始索引,值为整数;
                end表示遍历的结束索引,值为整数;
                step表示迭代的步长,值为整数;

            <c:forTokens>
                <c:forTokens items="stringOfTokens" delims="delimiters"
                                                    [var="varName"] [varStatus="varStatusName"]
                                                    [begin=begin] [end=end] [step=step]>
                        //标签体内容
                </c:forTokens>

                items用于指定将要迭代的字符串;
                delims用于指定一个或多个分隔符;
                var用于将当前迭代的子字符串保存到page域中的属性名称;

        4. URL标签,用于针对URL相关的操作

            <c:url>
                <c:url value="value"
                        [var="varName"] [scope="{page|request|session|application}"]
                        [context="context"]>
                        [<c:param name="paramName" value="paramValue"/>]
                </c:url>

                value 指定要构造的 URL;
                var 指定构造出的 URL 结果保存到范围域中的属性名称;
                context 指定 URL 地址所需的同一容器下的 Web 应用上下文;此时value属性中地址必须是以"/"开头的地址
                <c:param>标签指定 URL 地址传递的参数;(可选)

            <c:import>
                在 JSP 页面中导入一个 URL 地址指向的资源内容,静态或动态文件

                <c:import url="url"
                                    [var="varName"] [scope="{page|request|session|application}"]
                                    [context="context"] [charEncoding="charEncoding"]>
                                    [<c:param name="paramName" value="paramValue"/>]
                </c:import>

                <c:import>标签与<jsp:include>动作指令功能相似,但<jsp:include>只能包含当前应用下的文件资源;
                而<c:import>标签可以包含任何其他应用或网站下的资源

            <c:redirect>
                =response.sendRedirect()

                <c:redirect url="value" [context="context"]>
                        [<c:param name="paramName" value="paramValue"/>]
                </c:redirect>

                url 用于指定重定向的目标资源的 URL 地址;

    4. I18N 标签库
        实现国际化和格式化功能,封装了 java.util 和 java.text

        国际化标签:绑定资源包,从资源包中的本地资源文件读取文本内荣的功能

        格式化标签:对数字,日期时间等本地敏感的数据按本地化信息显示的功能

        导入I18N标签库:<%@ taglib="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>

        <fmt:formatDate>标签
            <fmt:formatData value="date"
            [type="{time|date|both}"]
            [dateStyle="{default|short|medium|long|full}"]
            [timeStyle="{default|short|medium|long|full}"]
            [pattern="customPattern"] [timeZone="timeZone"]
            [var="varName"] [scope="{page|request|session|application"] />

            value 指定要格式化的日期或时间;
            type 指定输出时间部分还是日期部分,或者两者都输出;
            dateStyle 指定日期部分的输出格式,type=date或both
            timeStyle 指定时间部分的输出格式,type=time或both
            pattern 指定一个自定义的日期和时间输出格式
            timeZone 指定当前采用的时区;
            var 指定将格式化结果保存到某个范围域中某个属性的名称;

        <fmt:formatNumber>标签
            <fmt:formatNumber value="numbericValue"
                        [type="{number|currency|percent}"] [pattern="customPattern"]
                        [currencyCode="currencyCode"] [currencySymbol="currencySymbol"]
                        [groupingUsed="{true|false}"]
                        [var="varName"] [scope="{page|request|session|application"] />

            value 指定需要格式化的数字;
            type 指定值得类型,数字(number),货币(currency),百分比(percent);
            currencyCode 指定货币编码;
            currencySymbol 指定货币符号

            <fmt:setLocale value="zh_CN"/>
    5. 函数标签库
        <%@ taglib="fn" uri="http://java.sun.com/jsp/jstl/functions" %>

        ${fn:函数名(参数列表)}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,233评论 4 360
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,013评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,030评论 0 241
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,827评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,221评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,542评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,814评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,513评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,225评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,497评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,998评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,342评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,986评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,055评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,812评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,560评论 2 271
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,461评论 2 266

推荐阅读更多精彩内容

  • jsp概述 jsp全称是 Java Server Page,它和servlet技术一样,都是SUN公司定义的一种用...
    持续进步者阅读 589评论 0 2
  • title: JSP笔记date: 2017-02-24 21:51:49tags: JSP JSP&Servle...
    fanyank阅读 454评论 0 1
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,293评论 18 399
  • 1.学习内容 JSP技术入门和常用指令 JSP的内置对象&标签介绍 EL表达式&EL的内置对象 2.JSP技术入门...
    WendyVIV阅读 2,035评论 1 18
  • 一、JSP基础 1.1什么是JSP JSP(Java ServerPage)是Java服务器端动态页面技术。是su...
    晨星资源阅读 1,099评论 0 6