栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【JSP】JSP的基础语法

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【JSP】JSP的基础语法

文章目录
  • JSP语法
    • 脚本程序语法
      • 示例
    • 声明语法
      • 示例
    • 表达式语法
      • 示例
    • 注释语法
    • JSP指令
      • page指令
      • include指令
      • taglib指令
    • 动作标签
      • < jsp:include >动作标签
        • 实例
      • < jsp:useBean >动作标签
      • < jsp:setProperty >动作标签
      • < jsp:getProperty >动作标签
        • 示例
      • < jsp:forward > 动作标签
        • 示例
      • < jsp:plugin >动作标签
      • < jsp:element > 、 < jsp:attribute >、 < jsp:body >动作标签
        • 示例
      • < jsp:text >动作标签

JSP语法 脚本程序语法

  脚本程序(scriptlet)可以包含任意量的Java语句、变量、方法或表达式。

  语法如下:

<% Java Code %>

  也可以改写成下面的XML语法:


   Java Code

示例

  示例代码:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    Title


    <%
        out.println("这是'脚本程序'示例代码片段");
    %>


  运行结果:

声明语法

  一个声明语句可以声明一个或多个变量、方法,供后面的Java代码使用。在JSP文件中,您必须先声明这些变量和方法然后才能使用它们。

  声明语法如下:

<%! 声明代码 %>

  也可以改写成下面的XML语法:


   声明代码

示例

  示例代码:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    Title



    <%!
        int a=50;
        int b=10;
        int c;
    %>

    <%
        c = a * b;
        out.println("这是'声明语法'示例代码片段");
        out.println("
"); out.println(c); %>

  运行结果:

表达式语法

  一个JSP表达式中包含的脚本语言表达式,先被转化成String,然后插入到表达式出现的地方。

  由于表达式的值会被转化成String,所以您可以在一个文本行中使用表达式而不用去管它是否是HTML标签。

  表达式元素中可以包含任何符合Java语言规范的表达式,但是不能使用分号来结束表达式。

  JSP表达式的语法格式:

<%= 表达式 %>

  也可以改写成下面的XML语法:


   表达式

示例

  示例代码:

<%@ page import="java.util.Date" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    Title



    1+1=<%= 1+1 %>
    

当前时间戳<%= new Date().getTime()%>

  运行结果:

注释语法

  JSP注释主要有两个作用:为代码作注释以及将某段代码注释掉。

  以下是JSP注释的语法:

<%-- 这是注释 --%>
JSP指令

  JSP指令用来设置整个JSP页面相关的属性,如网页的编码方式和脚本语言。

  语法格式如下:

<%@ 指令 属性="属性值" %>

  有以下三种JSP指令:

指令描述
<%@ page … %>定义页面相关属性,如脚本语言,错误页面和缓冲要求等
<%@ include … %>包含其他文件
<%@ taglib … %>引入标签库的定义
page指令

  page指令的语法格式:

<%@ page attribute="value" %>

  等价的XML格式:


  page指令相关属性:

属性说明
buffer指定out对象使用缓冲区的大小
<%@ page buffer = "64kb" %>(设置为none则立即输出)
autoFlush控制out对象缓冲区满时是否自动刷新。
设置为true(默认),当缓冲区满时会自动刷新,将其中的内容输出到客户端;设置为false,当缓冲区满时会抛出异常
<%@ page buffer = "16kb" autoflush = "true" %>
contentType指定当前JSP页面的MIME类型和字符编码
<%@ page contentType = "text/html" %>
errorPage指定当JSP页面发生异常时需要转向的错误处理页面
<%@ page errorPage = "MyErrorPage.jsp" %>
isErrorPage指定当前页面是否可以作为另一个JSP页面的错误处理页面
<%@ page isErrorPage = "true" %>
extends指定servlet从哪一个类继承
<%@ page extends = "somePackage.SomeClass" %>
import导入要使用的Java类
<%@ page import = "java.sql.*,java.util.*" %>(导入多个包 逗号 隔开)
info定义JSP页面的描述信息
<%@ page info = "This JSP Page Written By Maxsu" %>
isThreadSafe指定对JSP页面的访问是否为线程安全
<%@ page isThreadSafe = "false" %>(默认为true)
language定义JSP页面所用的脚本语言,默认是Java
<%@ page language = "java" %>
session指定JSP页面是否使用session,默认为true
<%@ page session = "true" %>
isELIgnored指定是否执行EL表达式,默认为true
<%@ page isELIgnored = "true" %>
isScriptingEnabled确定脚本元素能否被使用,默认为true
<%@ page isScriptingEnabled = "false" %>
include指令

  include指令用于在编译阶段包括一个文件。被包含的文件可以是JSP文件、HTML文件或文本文件。这个指令告诉容器在编译阶段将其他外部文件的内容合并到当前JSP文件中。可在JSP页面的任何位置使用include指令进行编码。

  include指令的语法格式:

<%@ include file = "relative url" >

  等价的XML格式:


taglib指令

  JSP API允许自定义的JSP标签,如:HTML或XML标签,标签库是一组实现自定义行为的用户定义标签。

  taglib指令声明JSP页面使用一组自定义标签,标识库的位置,并提供了在JSP页面中标识自定义标签的方法。

  include指令的语法格式:

<%@ taglib uri="uri" prefix="prefixOfTag" %>
//uri属性确定标签库的位置,prefix属性指定标签库的前缀。

  等价的XML格式:


动作标签

  JSP动作标签(或称为行为标签)使用XML语法中的结构来控制servlet引擎的行为。可以动态插入文件,重新使用JavaBeans组件,将用户转发到另一个页面,或为Java插件生成HTML。

  动作标签只有一种语法格式,它严格遵守XML标准:


动作说明
jsp:include在页面被请求的时候引入一个文件。
jsp:useBean寻找或者实例化一个JavaBean。
jsp:setProperty设置JavaBean的属性。
jsp:getProperty输出某个JavaBean的属性。
jsp:forward把请求转到一个新的页面。
jsp:plugin根据浏览器类型为Java插件生成OBJECT或EMBED标记。
jsp:element定义动态XML元素
jsp:attribute设置动态定义的XML元素属性。
jsp:body设置动态定义的XML元素内容。
jsp:text在JSP页面和文档中使用写入文本的模板

所有动作标签都含有两个共同属性:

  • id属性
     id属性是动作元素的唯一标识,可以在JSP页面中引用。动作元素创建的id值可以通过PageContext来调用。

  • scope属性
     scope属性标识动作元素的生命周期。id属性和scope属性是直接相关的,因为scope属性决定了与id关联的对象的使用寿命。scope属性有四个可能的值:

    • page
    • request
    • session
    • application
< jsp:include >动作标签

  jsp:include动作元素用来包含静态和动态的文件。该动作把指定文件插入正在生成的页面。

语法格式如下:


  前文的include指令是在编译阶段引入文件,一但引入的文件发生改变,所有引入该文件的jsp页面都要改变;而include动作是请求页面时插入该文件,引入的文件可以动态改变。

以下是include动作相关的属性列表。

属性说明
page要包括的页面的相对URL
flush布尔属性,定义在包含资源前是否刷新缓存区
实例

  定义两个文件date.jsp和main.jsp如下:

  date.jsp文件代码:

<%@ page import="java.util.Date" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>

今天的日期是:<%= new Date().toLocaleString() %>

  main.jsp文件代码:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    $Title$


include动作标签

  运行结果:

< jsp:useBean >动作标签

  jsp:useBean动作用来加载一个将在JSP页面中使用的JavaBean。它首先使用id和scope变量搜索现有对象。如果未找到对象,则会尝试创建指定的对象。

语法格式如下:


  当加载了一个bean类,可以使用jsp:setProperty和jsp:getProperty操作来修改和检索bean属性。

  以下是useBean动作相关的属性列表:

属性描述
class指定Bean的完整包名。
type指定将引用该对象变量的类型。
beanName通过 java.beans.Beans 的 instantiate() 方法指定Bean的名字。
< jsp:setProperty >动作标签

  jsp:setProperty用来设置已经实例化的Bean对象的属性,有两种用法。首先,你可以在jsp:useBean标签的后面使用jsp:setProperty,如下所示:


...

  此时,不管jsp:useBean是找到了一个现有的Bean,还是新创建了一个Bean实例,jsp:setProperty都会执行。

  第二种用法是把jsp:setProperty放入jsp:useBean元素的内部,如下所示:


...
   

  此时,jsp:setProperty只有在新建Bean实例时才会执行,如果是使用现有实例则不执行jsp:setProperty。

  jsp:setProperty动作有下面四个属性,如下表:

属性说明
namename属性是必需的。它表示要设置属性的是哪个Bean。
propertyproperty属性是必需的。它表示要设置哪个属性。有一个特殊用法:如果property的值是"*",表示所有名字和Bean属性名字匹配的请求参数都将被传递给相应的属性set方法。
valuevalue 属性是可选的。该属性用来指定Bean属性的值。字符串数据会在目标类中通过标准的valueOf方法自动转换成数字、boolean、Boolean、 byte、Byte、char、Character。例如,boolean和Boolean类型的属性值(比如"true")通过 Boolean.valueOf转换,int和Integer类型的属性值(比如"42")通过Integer.valueOf转换。   value和param不能同时使用,但可以使用其中任意一个。
paramparam 是可选的。它指定用哪个请求参数作为Bean属性的值。如果当前请求没有参数,则什么事情也不做,系统不会把null传递给Bean属性的set方法。因此,你可以让Bean自己提供默认属性值,只有当请求参数明确指定了新值时才修改默认属性值。
< jsp:getProperty >动作标签

  jsp:getProperty动作提取指定Bean属性的值,转换成字符串,然后输出。语法格式如下:


...

  下表是与getProperty相关联的属性:

属性描述
name要检索的Bean属性名称。Bean必须已定义。
property表示要提取Bean属性的值
示例

定义一个Bean类:Message

public class Message {
    private String message = "No message";

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }
}

在main.jsp文件中编写以下代码。这将加载bean并设置/获取一个简单的String参数 -

<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    $Title$



在JSP中使用JavaBean示例


默认信息:

修改后的信息:

运行结果:

< jsp:forward > 动作标签

  jsp:forward动作终止当前页面的操作,并将请求转发到另一个资源,例如静态页面,另一个JSP页面或Java Servlet。

  如法格式如下:


  相应属性:

属性说明
pagepage属性包含的是一个相对URL。page的值既可以直接给出,也可以在请求的时候动态计算,可以是一个JSP页面或者一个 Java Servlet.
示例

  定义两个JSP文件 date.jsp和main.jsp如下:

  date.jsp代码如下:

<%@ page import="java.util.Date" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>

今天的日期是:<%= new Date().toLocaleString() %>

  main.jsp代码如下:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    $Title$



forward动作实例

运行结果:

在这里,它从丢弃了main.jsp内容,并显示了来自转发目标页面的内容。

< jsp:plugin >动作标签

  jsp:plugin动作用于将Java组件插入到JSP页面中。它确定浏览器的类型,并根据需要插入objec或embed标签。

  如果所需的插件不存在,它会下载插件,然后执行Java组件。Java组件可以是Applet或JavaBean。
jsp:plugin动作有几个属性对应于用于格式化Java组件的常用HTML标记。 param元素也可用于向Applet或Bean发送参数。

  以下是使用jsp:plugin动作的典型语法 :


   
   
 
   
      Unable to initialize Java Plugin
   
 

如果你有兴趣可以尝试使用applet来测试jsp:plugin动作元素,< fallback >元素是一个新元素,在组件出现故障的错误时发送给用户错误信息。

< jsp:element > 、 < jsp:attribute >、 < jsp:body >动作标签

  动作元素动态定义XML元素。动态是非常重要的,这就意味着XML元素在编译时是动态生成的而非静态。

示例

代码:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    $Title$




   属性值

    
        XML 元素的主体
    




运行后会生成如下的代码:

< jsp:text >动作标签

  可以使用操作将模板文本写入JSP页面和文档。以下是此操作的简单语法 :

模板数据

  模板的主体不能包含其他元素; 它只能包含文本和EL表达式。 请注意,在XML文件中不能使用诸如${whatever> 0}的表达式,因为大于符号是非法的。它是使用gt形式来代替,例如${whatever gt 0}或替代方法是将值嵌入到CDATA中。

]]>
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/884738.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号