Java Web开发 —— 2.JSP语法

本文详细介绍了JSP的基本构成,包括HTML标记、JSP标记、变量和方法声明、Java程序片和表达式。同时,阐述了JSP的生命周期,即如何从JSP页面转化为Java字节码文件。此外,还讲解了JSP指令标记(如page指令和include指令)和动作标记(如include动作和forward动作)的使用,以及param标记的功能。最后,通过一个案例展示了如何使用param子标记传递参数到目标页面。

目录

1.JSP基本结构

2.声明变量和定义方法

3.JSP程序片与Java 表达式

4.JSP标记

4.1 JSP指令标记

4.2JSP动作标记

5.运用案例


1.JSP基本结构

在传统的HTML页面文件中加入Java程序片和JSP标记就构成了一个JSP页面。一个JSP页面可由5种元素组合而成:

        · 普通的HTML标记和JavaScript标记

        · JSP标记,如指令标记、动作标记

        · 变量和方法的声明。

        · Java程序片

        · Java表达式

当Tomcat服务器上的一个JSP页面第一次请求执行时,Tomcat服务器首先将JSP页面文件(xxx.jsp)转译成Java文件,在将此Java文件编译生成字节码文件,通过执行字节码文件响应用户的请求,当用户再次访问此JSP页面时,Tomcat服务器可直接执行字节码文件以响应用户请求,不需要再次转译以及编译。

2.声明变量和定义方法

JSP中定义变量和方法格式如下:

<%!  声明变量或定义方法  %>   

此标记符号一般放在JSP页面指令之后。用此方法声明的变量或定义的方法在整个JSP页面都有效,与其书写位置无关。

3.Java程序片和Java表达式

JSP中插入Java程序片以及Java表达式的格式如下:

<%    Java程序片   %>
<%=   Java表达式   %> //注意,不可插入语句。"<%="是一个完整的符号,中间不能有空格

Java程序片中声明的变量为JSP的局部变量,其有效范围语气声明的位置有关,在声明位置后继的所有程序片以及表达式都有效。有时候可以将一个Java程序片分割成几个Java程序片,在这些小Java程序片之间可以在插入其他标记元素。

需要注意的是,在JSP页面中,Java表达式的值被表示成一个字符串的形式,所以在编写JSP页面时,要把Java表达式的按普通的文本来使用。

4.JSP标记

4.1JSP指令标记

JSP指令标记包括:

page指令,用来定义整个JSP页面一些属性的值,其作用对整个JSP页面有效,与书写位置无关,但一般写在文件开头。page指令标记可以为属性指定其值,以下是几个常用属性:

        · contentType :属性值确定JSP页面响应的解析器类型,如果不指定,默认是“text/heml”

                                   在一个JSP页面不允许两次使用page指令给contentType指定不同的值。

        · pageEncoding :默认值是UTF-8,其作用是定义JSP页面使用的编码方式。

        · language : 属性定义JSP页面使用的脚本语言,该属性值目前只能取“java”,若没指定此                                   属性值,则JSP默认该值为language

        · import :为JSP页面引入Java运行环境提供的包的类,可以为该属性指定多个值。

 include指令,作用是在JSP页面出现该指令的位置处,静态嵌入一个文件,该文件的编码必须和当前JSP页面一致。使用include指令可以实现代码的复用。比如,在几个JSP页面使用include指令嵌入一个相同的文件,用户就可以在这几个JSP页面之间方便的切换。

JSP指令标记格式如下:

<%@  page 属性1 = “属性1的值”  %> 
<%@  page 属性2 = “属性2的值”  %> //page指令标记

<%@  include file = “文件的URL”  %> //include指令标记

4.2JSP动作标记

include标记,语法格式如下:

<  jsp:include page = "文件的URL"  />

或者

<  jsp:include page = "文件的URL"  >
    param子标记
</ jsp:include >

注意,当include动作标记不需要param子标记时,必须使用第一种形式。include动作标记和include指令标记的作用都是处理所需要的文件。区别如下:

处理的时刻处理方式优缺点   
include动作标记JSP页面运行时被处理的文件独立于当前JSP页面

优点:可以使用param子标记灵活处理所需文件

缺点:执行速度慢

include指令标记编译阶段被处理的文件依赖于当前JSP页面

优点:处理速度快

缺点:相比之下更不灵活

forword标记,作用是从该指令处停止当前页面的执行,转向page属性指定的JSP页面,语法格式如下:

<jsp:forward page = "要转向的页面" />

或者

<jsp:forward page = "要转向的页面">
  param子标记
</jsp:forward>

注意,当forward标记不需要param子标记是,必须使用第一种形式。

param标记,以“名字-值”对的形式为其他标记提供附加信息,param标记不能独立使用,须作为include、forward标记的子标记来使用,其语法格式如下:

< jsp:param name = "参数" value = "参数的值" />

useBean标记,用来创建并使用一个JavaBean,在以后的文章中会有详细说明。

5.运用案例

使用param子标记将随机数传递给要转向的页面。

ex1.jsp

<%@ page contentType="text/html" %>   <%-- JSP指令标记 --%>
<%@ page pageEncoding = "utf-8" %>    <%-- JSP指令标记 --%>
<HTML><body>                 <%-- HTML标记 --%>
<h1> 
<%-- 产生一个1-10之间的随机数 --%>
<%  double i=(int)(Math.random()*10)+1;            <%-- java程序片 --%> 
    if(i<=5) {
%>      <jsp:forward page="example2_12_a.jsp" >            <%-- forward动作标记 --%> 
            <jsp:param name="number" value="<%= i %>" />   <%-- param动作标记 --%> 
        </jsp:forward> 
<%  }
    else {
%>     <jsp:forward page="example2_12_b.jsp" >
           <jsp:param name="number" value="<%= i %>" />    
       </jsp:forward> 
<%  }
%>
</body></HTML>

ex1_a.jsp

<%@ page contentType="text/html" %>  
<%@ page pageEncoding = "utf-8" %>  
<HTML><body bgcolor=cyan>
<p style="font-family:宋体;font-size:36">
<% String s=request.getParameter("number");
    out.println("传递过来的值是"+s);
%>
<br><img src=image/pic_a.jpg width=300 height=280/>
</p></body></HTML>

ex1_b.jsp

<%@ page contentType="text/html" %>  
<%@ page pageEncoding = "utf-8" %>  
<HTML><body bgcolor=yellow>
<p style="font-family:宋体;font-size:36">
<% String s=request.getParameter("number");
    out.println("传递过来的值是"+s);
%>
<br><img src=image/pic_b.jpg width=300 height=280 />
</p></body></HTML>

下一篇文章将介绍Tag文件与Tag标记。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值