• JSP教程:1天玩转JSP网站开发技术
  • JSP是什么?
  • JSP的特点与工作流程
  • JSP与ASP、PHP的比较
  • JSP页面的组成及其元素
  • JSP开发环境搭建(Tomcat的安装和配置)
  • 第一个JSP程序
  • JSP注释(多种注释详解)
  • JSP声明:变量、方法和类的声明
  • JSP中嵌入Java代码
  • JSP表达式
  • JSP开发模式(四种模式)
  • JSP常见错误以及解决方案
  • JSP指令详解(三大指令)
  • JSP page指令
  • JSP include指令
  • JSP指令应用实例
  • JSP动作
  • JSP include动作
  • JSP param动作
  • JSP forward动作
  • JSP plugin动作
  • JSP useBean动作
  • JSP setProperty动作
  • JSP getProperty动作
  • JSP application 对象
  • JSP out对象:向客户端输出数据
  • JSP request对象:获取客户端的请求信息
  • JSP response对象:响应客户端的请求并向客户端输出信息
  • JSP session对象
  • JSP pageContext对象
  • JSP page对象
  • JSP config对象
  • JSP获取并显示字符串长度
  • 什么是JavaBean?
  • JavaBean工具
  • JavaBean规范
  • JavaBean的属性(Simple、Indexed、Bound、Constrained)
  • JavaBean的Scope属性
  • JavaBean事件
  • JavaBean实现用户登录界面
  • Servlet是什么?
  • Servlet的生命周期
  • Servlet的类和方法
  • Servlet客户端跳转
  • EL是什么?(详解)
  • JSP EL表达式的基本语法及运算符的优先级(一览表)
  • JSP EL 点(.)运算符和下标([])运算符
  • JSP EL算数运算符
  • JSP EL关系运算符
  • JSP EL逻辑运算符
  • JSP EL条件运算符
  • JSP EL empty空运算符
  • EL表达式中的常量与变量
  • EL表达式的保留字
  • EL表达式的内置对象及其作用域
  • 使用EL表达式访问JavaBean
  • 使用EL表达式访问集合
  • EL表达式内置对象param和paramValues
  • EL表达式内置对象cookie
  • EL表达式内置对象initParam
  • JDBC 的定义及产品组件
  • 建立JDBC连接
  • 利用JDBC发送SQL语句
  • JDBC API ResultSet接口(记录集接口)
  • JDBC RowSet接口
  • JDBC BaseRowSet类和CachedRowSet类
  • 填充CachedRowSet对象记录集(三种方法)
  • File类(在JSP中的使用)详解
  • 使用字节流读/写文件
  • RandomAccessFile类
  • JSP文件上传
  • XML是什么?
  • XML的基本语法
  • JDK 中的 XML API
  • DOM解析XML
  • SAX解析XML
  • DOM4j解析XML
  • 在 JSP 页面中可以声明变量、方法和类,其声明格式如下:

    1. <%!声明变量、方法和类的代码%>

    特别要注意,在“<%“与“!”之间不要有空格。声明的语法与在 Java 语言中声明变量和方法时的语法是一样的。

    声明变量

    在“<%!”和“%>”标记之间声明变量,即在“<%!”和“%>”之间放置 Java 的变量声明语句。变量的类型可以是 Java 语言允许的任何数据类型。我们将这些变量称为 JSP 页面的成员变量。

    【例1】声明变量:

    1. <%!
    2. int x,y=100,z;
    3. String tom=null,jery="Love JSP";
    4. Date date;
    5. %>

    这里,“<%!”和“%>”之间声明的变量在整个 JSP 页面内都有效,因为 JSP 引擎将 JSP 页面转译成 Java 文件时,将这些变量作为类的成员变量,这些变量的内存空间直到服务器关闭才被释放。

    当多个客户请求一个 JSP 页面时,JSP 引擎为每个客户启动一个线程,这些线程由 JSP 引擎服务器来管理。这些线程共享 JSP 页面的成员变量,因此任何一个用户对 JSP 页面成员变量操作的结果,都会影响到其他用户。

    声明方法

    在“<%!”和“%>”标记之间声明的方法,在整个 JSP 页面有效,但是,方法内定义的变量只在方法内有效。

    【例2】声明方法:

    1. <%@ page contentType="text/html; charset=utf-8" %>
    2. <%!
    3. int num = 0; //声明一个计数变量
    4. synchronized void add()
    5. {
    6. //该方法实现访问次数的累加操作
    7. num++;
    8. }
    9. %>
    10. <% add(); %>
    11. <html>
    12. <body><center>您是第<%=num%>位访问该页面的游客!</center></body>
    13. </html>

    运行结果如图 1 所示。

    使用方法的声明
    图1 使用方法的声明

    示例中声明了一个 num 变量和 add() 方法。add() 方法对 num 变量进行累加操作,synchronized 修饰符可以使多个同时访问 add() 方法的线程排队调用。

    当第一个用户访问该页面后,变量 num 被初始化,服务器执行 <% add(); %> 小脚本程序,从而 add() 方法被调用,num 变为 1。当第二个用户访问时,变量 num 不再被重新初始化,而使用前一个用户访问后的 num 值,之后调用 add() 方法,num 值变为 2。

    声明类

    可以在“<%!”和“%>”之间声明一个类。该类在 JSP 页面内有效,即在 JSP 页面的 Java 程序段部分可以使用该类创建对象。下例中,定义了一个 Circle 类,该类的对象负责求圆的面积。当客户向服务器提交圆的半径后,该对象计算圆的面积。

    【例3】使用类的声明:

    1. <%@ page contentType="text/html; charset=utf-8"%>
    2. <html>
    3. <head>
    4. <title></title>
    5. </head>
    6. <body>
    7. <p>
    8. <font size="4">请输入圆的半径:<br></font>
    9. </p>
    10. <form action="" method="get" name="form" id="form">
    11. <font size="4"><input type="text" name="cat" value="1"> <input type="submit" value="送出" name="submit"></font>
    12. </form><%!
    13. public class Circle
    14. {
    15. double r;
    16. Circle(double r)
    17. {
    18. this.r = r;
    19. }
    20. double 求面积()
    21. {
    22. return Math.PI*r*r;
    23. }
    24. }
    25. %><%
    26. String str = request.getParameter("cat");
    27. double r;
    28. if(str != null)
    29. {
    30. r = Double.parseDouble(str);
    31. }
    32. else
    33. {
    34. r = 1;
    35. }
    36. Circle circle = new Circle(r);
    37. %>
    38. <p>
    39. <font size="4">圆的面积是:<%=circle.求面积()%></font>
    40. </p>
    41. </body>
    42. </html>

    运行结果如图 2 所示。

    使用类声明
    图2 使用类声明