新手入门:简单学习JSP的基本语法

2016-02-19 13:18 19 1 收藏

在这个颜值当道,屌丝闪边的时代,拼不过颜值拼内涵,只有知识丰富才能提升一个人的内在气质和修养,所谓人丑就要多学习,今天图老师给大家分享新手入门:简单学习JSP的基本语法,希望可以对大家能有小小的帮助。

【 tulaoshi.com - Web开发 】

  JSP编译器指引与指令元件有五种型态.在JSP 1.0之后,大部分的JSP是包含在以% 作为开始%作为结束的单一标签里.新的 JSP 1.1规格已经发表了,它同时也与XML相容.

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/webkaifa/)

  五种JSP的编译器指引如下所示:

1 编译器指引 %@ 编译器指引 %
2 预定义 %! 预定义 %
3 运算式 %= 运算式 %
4 程序代码 % 程序代码 %
5 注解 %-- 注解 --%

  下面我们分析一个简单的 JSP 页面。您可以在 JSWDK 的 examples 目录下创建另外一个目录存放此文件,文件名字可以任意,但扩展名必须为 .jsp 。从下面的代码清单中可以看到, JSP 页面除了比普通 HTML 页面多一些 Java 代码外,两者具有基本相同的结构。 Java 代码是通过 % 和 % 符号加入到 HTML 代码中间的,它的主要功能是生成并显示一个从 0 到 9 的字符串。在这个字符串的前面和后面都是一些通过 HTML 代码输出的文本。

  HTML
  HEAD TITLEJSP 页面 /TITLE /HEAD
  BODY
  %@ page language="java" %
  %! String str="0"; %
  % for (int i=1; i 10; i++) {
  str = str + i;
  } %
  JSP 输出之前。
  P
  %= str %
  P
  JSP 输出之后。
  /BODY
  /HTML
   这个 JSP 页面可以分成几个部分来分析。

  首先是 JSP 指令。它描述的是页面的基本信息,如所使用的语言、是否维持会话状态、是否使用缓冲等。 JSP 指令由 %@ 开始, % 结束。在本例中,指令“ %@ page language="java" % ”只简单地定义了本例使用的是 Java 语言(当前,在 JSP 规范中 Java 是唯一被支持的语言)。

  接下来的是 JSP 声明。 JSP 声明可以看成是定义类这一层次的变量和方法的地方。 JSP 声明由 %! 开始, % 结束。如本例中的“ %! String str="0"; % ”定义了一个字符串变量。在每一项声明的后面都必须有一个分号,就象在普通 Java 类中声明成员变量一样。

  位于 % 和 % 之间的代码块是描述 JSP 页面处理逻辑的 Java 代码,如本例中的 for 循环所示。

  最后,位于 %= 和 % 之间的代码称为 JSP 表达式,如本例中的“ %= str % ”所示。 JSP 表达式提供了一种将 JSP 生成的数值嵌入 HTML 页面的简单方法。

  二、会话状态管理

  会话状态维持是 Web 应用开发者必须面对的问题。有多种方法可以用来解决这个问题,如使用 Cookies 、隐藏的表单输入域,或直接将状态信息附加到 URL 中。 Java Servlet 提供了一个在多个请求之间持续有效的会话对象,该对象允许用户存储和提取会话状态信息。 JSP 也同样支持 Servlet 中的这个概念。

  在 Sun 的 JSP 指南 中可以看到许多有关隐含对象的说明(隐含的含义是,这些对象可以直接引用,不需要显式地声明,也不需要专门的代码创建其实例)。例如 request 对象,它是 HttpServletRequest 的一个子类。该对象包含了所有有关当前浏览器请求的信息,包括 Cookies , HTML 表单变量等等。 session 对象也是这样一个隐含对象。这个对象在第一个 JSP 页面被装载时自动创建,并被关联到 request 对象上。与 ASP 中的会话对象相似, JSP 中的 session 对象对于那些希望通过多个页面完成一个事务的应用是非常有用的。

  为说明 session 对象的具体应用,接下来我们用三个页面模拟一个多页面的 Web 应用。第一个页面( q1.html )仅包含一个要求输入用户名字的 HTML 表单,代码如下:

  HTML
  BODY
  FORM METHOD=POST ACTION="q2.jsp"
 请输入您的姓名:
  INPUT TYPE=TEXT NAME="thename"
  INPUT TYPE=SUBMIT VALUE="SUBMIT"
  /FORM
  /BODY
  /HTML
  第二个页面是一个 JSP 页面( q2.jsp ),它通过 request 对象提取 q1.html 表单中的 thename 值,将它存储为 name 变量,然后将这个 name 值保存到 session 对象中。 session 对象是一个名字 / 值对的集合,在这里,名字 / 值对中的名字为“ thename ”,值即为 name 变量的值。由于 session 对象在会话期间是一直有效的,因此这里保存的变量对后继的页面也有效。 q2.jsp 的另外一个任务是询问第二个问题。下面是它的代码:

  HTML
  BODY
  %@ page language="java" %
  %! String name=""; %
  %
  name = request.getParameter("thename");
  session.putValue("thename", name);
  %
 您的姓名是: %= name %
  p
  FORM METHOD=POST ACTION="q3.jsp"
 您喜欢吃什么 ?
  INPUT TYPE=TEXT NAME="food"
  P
  INPUT TYPE=SUBMIT VALUE="SUBMIT"
  /FORM
  /BODY
  /HTML
  第三个页面也是一个 JSP 页面( q3.jsp ),主要任务是显示问答结果。它从 session 对象提取 thename 的值并显示它,以此证明虽然该值在第一个页面输入,但通过 session 对象得以保留。 q3.jsp 的另外一个任务是提取在第二个页面中的用户输入并显示它:

  HTML
  BODY
  %@ page language="java" %
  %! String food=""; %
  %
  food = request.getParameter("food");
  String name = (String) session.getValue("thename");
  %
 您的姓名是: %= name %
  P
 您喜欢吃: %= food %
  /BODY
  /HTML

  一、 JSP 技术概述

  在 Sun 正式发布 JSP(JavaServer Pages) 之后,这种新的 Web 应用开发技术很快引起了人们的关注。 JSP 为创建高度动态的 Web 应用提供了一个独特的开发环境。按照 Sun 的说法, JSP 能够适应市场上包括 Apache WebServer 、 IIS4.0 在内的 85% 的服务器产品。即使您对 ASP “一往情深”,我们认为,关注 JSP 的发展仍旧很有必要。

  ㈠ JSP 与 ASP 的简单比较

  JSP 与 Microsoft 的 ASP 技术非常相似。两者都提供在 HTML 代码中混合某种程序代码、由语言引擎解释执行程序代码的能力。在 ASP 或 JSP 环境下, HTML 代码主要负责描述信息的显示样式,而程序代码则用来描述处理逻辑。普通的 HTML 页面只依赖于 Web 服务器,而 ASP 和 JSP 页面需要附加的语言引擎分析和执行程序代码。程序代码的执行结果被重新嵌入到 HTML 代码中,然后一起发送给浏览器。 ASP 和 JSP 都是面向 Web 服务器的技术,客户端浏览器不需要任何附加的软件支持。

  ASP 的编程语言是 VBScript 之类的脚本语言, JSP 使用的是 Java ,这是两者最明显的区别。此外, ASP 与 JSP 还有一个更为本质的区别:两种语言引擎用完全不同的方式处理页面中嵌入的程序代码。在 ASP 下, VBScript 代码被 ASP 引擎解释执行;在 JSP 下,代码被编译成 Servlet 并由 Java 虚拟机执行,这种编译操作仅在对 JSP 页面的第一次请求时发生。

  ㈡运行环境

  Sun 公司的 JSP 主页在 http://www.javasoft.com/products/jsp/index.html ,从这里还可以下载 JSP 规范,这些规范定义了供应商在创建 JSP 引擎时所必须遵从的一些规则。

  执行 JSP 代码需要在服务器上安装 JSP 引擎。此处我们使用的是 Sun 的 JavaServer Web Development Kit ( JSWDK )。为便于学习,这个软件包提供了大量可供修改的示例。安装 JSWDK 之后,只需执行 startserver 命令即可启动服务器。在默认配置下服务器在端口 8080 监听,使用 http://localhost:8080 即可打开缺省页面。

  在运行 JSP 示例页面之前,请注意一下安装 JSWDK 的目录,特别是“ work ”子目录下的内容。执行示例页面时,可以在这里看到 JSP 页面如何被转换成 Java 源文件,然后又被编译成 class 文件(即 Servlet )。 JSWDK 软件包中的示例页面分为两类,它们或者是 JSP 文件,或者是包含一个表单的 HTML 文件,这些表单均由 JSP 代码处理。与 ASP 一样, JSP 中的 Java 代码均在服务器端执行。因此,在浏览器中使用“查看源文件”菜单是无法看到 JSP 源代码的,只能看到结果 HTML 代码。所有示例的源代码均通过一个单独的“ examples ”页面提供。

  ㈢ JSP 页面示例

  下面我们分析一个简单的 JSP 页面。您可以在 JSWDK 的 examples 目录下创建另外一个目录存放此文件,文件名字可以任意,但扩展名必须为 .jsp 。从下面的代码清单中可以看到, JSP 页面除了比普通 HTML 页面多一些 Java 代码外,两者具有基本相同的结构。 Java 代码是通过 % 和 % 符号加入到 HTML 代码中间的,它的主要功能是生成并显示一个从 0 到 9 的字符串。在这个字符串的前面和后面都是一些通过 HTML 代码输出的文本。

  HTML
  HEAD TITLEJSP 页面 /TITLE /HEAD
  BODY
  %@ page language="java" %
  %! String str="0"; %
  % for (int i=1; i 10; i++) {
  str = str + i;
  } %
  JSP 输出之前。
  P
  %= str %
  P
  JSP 输出之后。
  /BODY
  /HTML
  这个 JSP 页面可以分成几个部分来分析。

  首先是 JSP 指令。它描述的是页面的基本信息,如所使用的语言、是否维持会话状态、是否使用缓冲等。 JSP 指令由 %@ 开始, % 结束。在本例中,指令“ %@ page language="java" % ”只简单地定义了本例使用的是 Java 语言(当前,在 JSP 规范中 Java 是唯一被支持的语言)。

  接下来的是 JSP 声明。 JSP 声明可以看成是定义类这一层次的变量和方法的地方。 JSP 声明由 %! 开始, % 结束。如本例中的“ %! String str="0"; % ”定义了一个字符串变量。在每一项声明的后面都必须有一个分号,就象在普通 Java 类中声明成员变量一样。

  位于 % 和 % 之间的代码块是描述 JSP 页面处理逻辑的 Java 代码,如本例中的 for 循环所示。

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/webkaifa/)

  最后,位于 %= 和 % 之间的代码称为 JSP 表达式,如本例中的“ %= str % ”所示。 JSP 表达式提供了一种将 JSP 生成的数值嵌入 HTML 页面的简单方法。

三、引用 JavaBean 组件

  JavaBean 是一种基于 Java 的软件组件。 JSP 对于在 Web 应用中集成 JavaBean 组件提供了完善的支持。这种支持不仅能缩短开发时间(可以直接利用经测试和可信任的已有组件,避免了重复开发),也为 JSP 应用带来了更多的可伸缩性。 JavaBean 组件可以用来执行复杂的计算任务,或负责与数据库的交互以及数据提取等。如果我们有三个 JavaBean ,它们分别具有显示新闻、股票价格、天气情况的功能,则创建包含所有这三种功能的 Web 页面只需要实例化这三个 Bean ,使用 HTML 表格将它们依次定位就可以了。

  为说明在 JSP 环境下 JavaBean 的应用,我们创建了一个名为 TaxRate 的 Bean 。它有两个属性,即 Product (产品)和 Rate (税率)。两个 set 方法分别用来设置这两个属性,两个 get 方法则用于提取这两个属性。在实际应用中,这种 Bean 一般应当从数据库提取税率值,此处我们简化了这个过程,允许任意设定税率。下面是这个 Bean 的代码清单:

  package tax;
  public class TaxRate {
  String Product;
  double Rate;
  public TaxRate() {
  this.Product = "A001";
  this.Rate = 5;
  }
  public void setProduct (String ProductName) {
  this.Product = ProductName;
  }
  public String getProduct() {
  return (this.Product);
  }
  public void setRate (double rateValue) {
  this.Rate = rateValue;
  }
  public double getRate () {
  return (this.Rate);
  }
  }
  在 JSP 页面中应用上述 Bean 要用到 jsp:useBean 标记。依赖于具体使用的 JSP 引擎的不同,在何处配置以及如何配置 Bean 的方法也可能略有不同。本文将这个 Bean 的 .class 文件放在 c:jswdk-1.0examplesWEB-INFjspbeanstax 目录下,这里的 tax 是一个专门存放该 Bean 的目录。下面是一个应用上述 Bean 的示例页面:

  HTML
  BODY
  %@ page language="java" %
  jsp:useBean id="taxbean" scope="application" class="tax.TaxRate" /
  % taxbean.setProduct("A002");
  taxbean.setRate(17);
  %
 使用方法 1 : p
 产品 : %= taxbean.getProduct() % br
 税率 : %= taxbean.getRate() %
  p
  % taxbean.setProduct("A003");
  taxbean.setRate(3);
  %
  b 使用方法 2 : /b p
 产品 : jsp:getProperty name="taxbean" property="Product" /
  br
 税率 : jsp:getProperty name="taxbean" property="Rate" /
  /BODY
  /HTML
  在 jsp:useBean 标记内定义了几个属性,其中 id 是整个 JSP 页面内该 Bean 的标识, scope 属性定义了该 Bean 的生存时间, class 属性说明了该 Bean 的类文件(从包名开始)。

  这个 JSP 页面不仅使用了 Bean 的 set 和 get 方法设置和提取属性值,还用到了提取 Bean 属性值的第二种方法,即使用 jsp:getProperty 标记。 jsp:getProperty 中的 name 属性即为 jsp:useBean 中定义的 Bean 的 id ,它的 property 属性指定的是目标属性的名字。

  事实证明, Java Servlet 是一种开发 Web 应用的理想构架。 JSP 以 Servlet 技术为基础,又在许多方面作了改进。 JSP 页面看起来象普通 HTML 页面,但它允许嵌入执行代码,在这一点上,它和 ASP 技术非常相似。利用跨平台运行的 JavaBean 组件, JSP 为分离处理逻辑与显示样式提供了卓越的解决方案。 JSP 必将成为 ASP 技术的有力竞争者。

来源:https://www.tulaoshi.com/n/20160219/1603769.html

延伸阅读
MindManager新手入门教程 MindManager是一款创造、管理和交流思想的思维导图软件,其直观清晰的可视化界面和强大的功能可以快速捕捉、组织和共享思维、想法、资源和项目进程等等。MindManager新手入门教程专为新手用户设计,包含创建思维导图基本入门操作,让用户快速上手。 MindManager思维导图主要由中心主题、主题、子主题、附注...
我经常被问及:一个具有很少甚至没有编程经验的人要如何开始游戏制作。直到目前为止,我总是尽我所能一个一个解答。然而,问题的数量已经增长到了一个难以处理的水平,于是,我便决定把所有的建议汇总在一篇文章里作为参考提供给人们。 !-- frame contents -- !-- /frame contents -- 这篇文章主要面向那些想开发自己的游戏,...
标签: Web开发
本贴主要是收集各种比较入门的代码 层的隐藏与显示   只要设置style的display属性即可   比如div style="display:none" id="MyDiv"隐藏的层/div   如果要显示它可以通过脚本来控制   window.document.getElementById("MyDiv").style.display = ""; 禁止右键   body oncontextmenu="r...
标签: 网络游戏
《功夫英雄》新手入门须知 界面简介 熟悉游戏界面能更好地进行游戏: -------------------------------------------------------------------------------- 快捷操作 常用快捷键列表: 快捷键 作用 A、S、D、F 移动 1、2、3…0 快捷键 空格(Space) 跳跃 ~ 拾取地面道具 F9 隐藏...
标签: 皇室战争
关于紫卡 骷髅海: 召唤20个骷髅(他们的名字都非常有趣),适合在对手用完所有费用之后进行一波防守或者反扑,4费不算多,可以克制一切地面重型非AOE单位。配合巨人、皮卡等攻城单位进行一波偷袭也常有奇效。缺点是非常害怕箭雨,亡灵,宝宝龙。 王子: 新手使用非常猛的一个兵种,5费,建议趁对手防守空虚,放在一路。对手置之不理...

经验教程

75

收藏

9
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部