zoukankan      html  css  js  c++  java
  • jsp基础知识

    JSP技术类似于ASP和PHP技术,其实就是在HTML文档中嵌入脚本小程序和JSP标记等元素,从而形成JSP文档。JSP本质上就是Servlet,当JSP第一次被请求的时候,Web服务器上的JSP容器会将其转化为相应的Servlet文件,然后再编译成为Servlet类文件,并且被装载和实例化。此后,每次对jsp的请求都将通过调用已实例化的Servlet对象中的方法来产生相应,所以第一次访问JSP页面会非常慢,而以后就很快。

    JSP基本语法

    1. 声明

      JSP声明用于定义JSP程序所要用到的变量、方法、和类,声明方式与java相同,格式为:

      <%! 变量,方法或类的声明 %>

      在JSP声明中声明的变量、方法、类在整个JSP页面中都有效。

    2. 表达式

      JSP表达式的值由服务器负责计算,并将计算结果自动转换为字符串并发送到客户端显示

      语法格式为:

      <%= 表达式 %>

      表达式必须有返回值,且末尾不能加分号。

    3. 程序块(脚本小程序)

      脚本小程序是在 “<%” 和 “%>” 之间插入的 java 程序段,语法格式为:

      <% java代码块 %>

    4. 指令标记

      JSP指令标记是专门为JSP引擎设计的,仅用于告知JSP引擎如何处理JSP页面,而不会产生任何可见的输出,其语法格式如下:

      <%@ 指令名 属性=“值” 属性=“值” ... %>

      JSP指令有三种,即为page指令、include指令、taglib指令。

      1. page指令

        page指令用于设置整个页面的相关属性和功能,其语法格式如下:

        <%@ page 属性=“值” 属性=“值” ...>


        属性说明
        language声明脚本语言的种类,目前只能用“java”
        import指明需要导入的java包,格式为import=”{package.class|package.*},……”
        contentType设置MIME类型和字符编码方式,格式为contentType=”text/html;charset=UTF-8”
        pageEncoding设置字符集
        extends指明JSP编译时需要加入的java class的全名
        session设定客户是否需要HTTP Session,若为false,则不能使用定义了scope=session的jsp:usebean标签
        buffer指定buffer的大小
        autoFlush指定buffer溢出时是否需要强制输出
        isTreadSafe设置JSP页面是否能够多线程使用
        info指定执行JSP时会加入其中的文本
        errorPage设置用于处理异常事件的JSP文件
        isErrorPage设置当前页面是否为出错页面
      2. include指令

        用于设置JSP页面中静态包含一个文件,语法格式为:

        <%@ include file="被包含文件的路径" %>

        静态包含:指JSP页面和被包含的文件先合并成为一个新的JSP页面,然后JSP引擎将这个新的JSP页面转译成为Java类文件,但必须保证合并而成的页面要符合JSP的语法规范。

      3. taglib指令

        用于引用标签库并指定相应的标记前缀,其语法格式为:

        <@ taglib uri="标记库的路径" prefix="相应的标记前缀">

        该taglib指令用于引用Struts2的标记库。

    5. 动作标记

      ​ 共有7个动作标记。

      1. param动作

        param动作标签用于标记用于以键值对的形式为其他标记提供附加信息,必须与include、forward或plugin等动作标记一起使用,其语法格式如下:

        < jsp:param name="parameterName" value="{ parameterValue | <%= 表达式 %>} " />

      2. includ动作

        includ动作标签用于告知JSP页面动态加载一个文件,即在运行JSP页面时才将文件引入,具体语法如下:

        1
        2
        3
        4
        5
        6
        7
        <!-- 不带param子标记: -->
        < jsp:include page="指定动态加载的文件" flush="true" />

        <!-- 带param子标记 -->
        < jsp:include page="指定动态加载的文件" flush="true" >
        < jsp:param name="parameterName" value="parameterValue" />
        </jsp:include>

        include动作与include指令

        includ动作是在JSP页面运行时动态地生成总页面,而includ指令则是先将JSP页面与它所包含的页面编译成一个静态总页面

      3. forward动作

        forward动作标签用于跳转至指定界面


        <!-- 不带param子标签 -->
        < jsp:forward page=" 指定页面路径 | <% 表达式 %> " />

        <!-- 不带param子标签 -->
        < jsp:forward page="指定页面路径 | <% 表达式 %>" >
        < jsp:param name="parameterName" value="parameterValue" />
        </jsp:forward>
      4. plugin动作

        jsp:plugin动作元素用来在JSP中嵌入Java插件,比如Applet。jsp:plugin将会根据浏览器的版本替换成标签或者标签。

        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11
        12
        13
        14
        15
        <jsp:plugin
        type="bean | applet"
        name="Applet名称"
        code="java类名"
        codebase="Java类所在目录"
        align="对齐方式"
        height="高度"
        width="宽度"
        hspace="水平间距"
        vspace="垂直间距"
        archive="预先加载的类列表"
        jreversion="JRE版本"
        iepluginurl="URL"
        nspluginurl="URL">
        </jsp:plugin>
      5. useBean、getProperty与setProperty动作
    6. 注释

      1. html注释(客户端注释)

        <!-- 注释内容-->

        JSP引擎会将这个注释发送到客户端

      2. JSP注释

        <%--注释内容--%>

        此注释只可在服务器端见,客户端不可见,故也叫隐藏注释。

      3. java注释

        注释JSP页面中的相关java代码。

    7. JSP对象

      ​ JSP内置对象是在JSP运行环境中已预定义好的对象,可在JSP脚本部分直接使用。内置对象共有9个。

      1. out对象

        out 对象用于在Web浏览器内输出信息,并且管理应用服务器上的输出缓冲区。在使用 out 对象输出数据时,可以对数据缓冲区进行操作,及时清除缓冲区中的残余数据,为其他的输出让出缓冲空间。待数据输出完毕后,要及时关闭输出流

        对输出缓存区和输出流进行操做。

      2. request对象

        request对象封装了客户端请求的所有信息,主要用于接受通过HTTP协议传送到服务器的数据。request对象的作用域为一次请求。

        request对象是javax.servlet.http.HttpServletRequest的实例 ,具有request作用域。

      3. response对象

        response对象 是javax.servlet.http.HttpServletResponse类的实例具有page作用域。response对象为响应对象,用于对客户端请求进行动态响应,可向客户端发送数据,在实际应用中,response对象主要用于将JSP数据处理后的结果返回到客户端。

      4. session对象

        session对象为会话对象,该对象封装了当前用户会话的有关信息。借助于session对象,可对各个客户端请求期间的会话进行跟踪。

        session从客户端打开第一个JSP页面时就被创建,直至客户端关闭浏览器,session才会被摧毁。而从客户端打开第一个JSP页面到客户端关闭浏览器这个过程称为一次会话。

      5. application对象

        application对象为应用对象,负责提供Web应用程序在服务器运行期间的某些全局性信息,与session不同的是,application对象针对Web应用程序的所有用户,并由所有用户共享。

        该对象代表web应用本身,整个web应用共享一个application对象,该对象主要用于在多个JSP页面或者Servlet之间共享变量。application通过setAttribute()方法将一个值放入某个属性,该属性的值对整个Web 应用有效,因此Web 应用的每个JSP 页面或Servlet都可以访问该属性,访问属性的方法为getAttribute 。

      6. exception对象

        exception对象为异常对象,其中封装了从某个JSP页面中所抛出的异常信息,常用于处理JSP页面在执行时所发生的错误和异常。exception对象是javax.lang.Throwable类的实例,具有page作用域。如果一个页面要使用exception对象,就必须将该页面page指令的isErrorPage属性值设置为true。

      7. page对象

        page对象为页面对象,是页面实例的引用,代表JSP页面本身,即JSP页面被转译后的Servlet。

        page对象是java.lang.Object类的实例,具有page作用域.

      8. config对象

        config对象是配置对象,主要用于获取Servlet或者JSP引擎的初始化参数。config对象是javax.servlet.ServletConfig类的实例,具有page作用域,config对象包含了初始化参数以及一些实用方法,可为使用web.xml文件的服务器程序与JSP页面在其环境中设置初始化参数。

      9. pageContext对象

        pageContext对象是JSP中很重要的一个内置对象,不过在一般的JSP程序中,很少用到它。它是javax.servlet.jsp.PageContext类的实例对象,可以使用PageContext类的方法。实际上,pageContext对象提供了对JSP页面所有的对象及命名空间的访问。可实现对页面内所有对象的访问。

  • 相关阅读:
    Jira-dashboard
    SCQA 结构化表达案例:让开场白、讲故事精彩的结构
    outlook 2016 系列1--自动回复
    outlook 2016 系列1--如何将同一回复主题的邮件放在一起
    C++ 成员限定符
    TCP/IP 协议分层
    TCP之拥塞控制
    TCP之流量控制
    TCP之滑动窗口
    TCP中的定时器
  • 原文地址:https://www.cnblogs.com/xm99/p/10741907.html
Copyright © 2011-2022 走看看