现在的位置: 首页 > 综合 > 正文

JSP脚本元素…

2017年10月02日 ⁄ 综合 ⁄ 共 1977字 ⁄ 字号 评论关闭

为了更好的理解JSP,我从网上收集了有关JSP脚本元素的相关资料如下:

脚本元素:将Java代码插入到与jsp页面对应的servlet(n.小服务程序)中

JSP脚本元素的3种形式:1.表达式,2.Scriptlet(n.小脚本),3.声明。

------------------------------------------------------------------------------------------
1.JSP表达式标准语法:

   <%=JAVA表达式 %>     如: <%=a+b%>    <%-- 输出a+b的值 --%>
   

   JSP表达式xml语法:

   <jsp:expression>JAVA表达式</jsp:expression>    如: <jsp:expression>a+b</jsp:expression>

2.JSP表达式后面不加分号;

3.操作后的结果将转换为字符串,插入到当前servlet(n.小脚本)的输入流中

4.JSP表达式将生成Servlet(n.小脚本)的print语句,HTML转换为print语句时,使用双引号将文本引起来。

  JSP表达式转换为没有双引号的print语句。

5.这些语句都会放入_jspService方法中,无论doGet还是doPost都调用该_jspService方法。
------------------------------------------------------------------------------------------

Scriptlet(脚本段): 将Java代码插入到servlet(n.小脚本)的_jspService方法中。

 1,Scriptlet标准语法:

  <%java代码 %>

 Scriptlet的xml语法格式:

  <jsp:scriptlet> scriptlet </jsp:scriptlet>

 2,scriptlet语句后面要加分号。

 3,Scriptlet可以访问到表达式能够访问的所有自动定义变量。

 4,Scriptlet代码会按出现的次序插入到_jspService方法中。

 5,在Scriptlet中声明的变量都转译为_jspService方法中的本地变量。所以变量是线程安全的。
------------------------------------------------------------------------------------------

声明(declaration):将方法或字段定义插入到servlet类的主定义体中(_jspService方法除外)。

 1,声明的语法:

  <%!可在此处进行变量、类、方法的声明%>

 声明的xml语法格式:

  <jsp:declaration>可在此处进行变量、类、方法的声明</jsp:declaration>

 2,声明只在当前JSP页面中有效。

 3,声明不产生输出。

 4,不要使用JSP声明覆盖Servlet的(service方法)。

 5,可以使用JSP声明覆盖jspInit或jspDestroy方法来初始化和销毁JSP页面,而不要直接使用init和destroy方法。

 注意:这里是jspInit和jspDestroy而不是_jspInit和_jspDestroy方法。

 JSP容器会在调用_jspInit和_jspDestroy方法后调用自定义的jspInit和jspDestroy方法。
------------------------------------------------------------------------------------------

表达式,Scriptlet,声明的比较
 
 语法:

  Scriptlet 和 声明都是java语句,而JSP表达式只是表达式。一个完整的语句需要分号表示结束,而表达式不需要。

 Java代码插入位置:

  表达式:    _jspService方法的输出流的print方法中;

  Scriptlet : _jspService方法体中对应的位置。

  声明:       servlet类的主定义体中(_jspService方法除外);

 变量访问范围:

  表达式:    可以访问serlvet类中的类的域和_jspService方法中的局部变量。

  Scriptlet:    同表达式。

  声明:    不能访问声明外的局部变量,比如_jspService方法中的局部变量(隐含对象)。

 线程安全性:

  表达式和Scriptlet是线程安全的。

  声明是线程不安全的。
------------------------------------------------------------------------------------------

抱歉!评论已关闭.