java web 开发——第二章jsp语法

前言

本章主要内容为JSP页面的基本结构、声明变量和定义方法、Java程序片、Java表达式、JSP指令标记、JSP动作标记等小节。

2.1 JSP页面的基本结构

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

  1. 普通的 HTML 标记和JavaScript标记。
  2. JSP标记,如指令标记、动作标记。
  3. 变量和方法的声明。
  4. Java程序片。
  5. Java 表达式
<%@ page contentType="text/html" %>   <!-- jsp指令标记 --> //表示页面显示器为html
<%@ page pageEncoding = "utf-8" %>    <!-- jsp指令标记 -->  //表示页面编码器为utf-8
<%@ page import="java.time.LocalTime" %> <!-- jsp指令标记 -->
<%!   public int continueSum(int start,int end){  // 定义方法
         int sum =0; 
         for(int i=start;i<=end;i++)  
            sum=sum+i; 
         return sum;
      }
%>
<HTML><body bgcolor = pink>
<script>   <!--JavaScript(JS)标记 -->                    
  var userTime = new Date();
  var hour = userTime.getHours();
  var minute =userTime.getMinutes();
  var second = userTime.getSeconds();
  var millisecond = userTime.getMilliseconds();
  document.write("<h2>浏览器时间:"+
                  hour+":"+minute+":"+second+":"+millisecond+"<br></h2>");
</script> 
<img src="image/time.jpg"  width=180 height=120 />  <!--html标记 -->
<p style="font-family:黑体;font-size:36;color:red"> <!--html标记 --> 
<%  //Java程序片:
    LocalTime timeServer = LocalTime.now();  
    int hour = timeServer.getHour();
    int minute =timeServer.getMinute();
    int second = timeServer.getSecond();
    int nano   = timeServer.getNano() ;//纳秒。
    int millisecond = nano/1000000;
    out.print("服务器时间:<br>"+
             hour+":"+minute+":"+second+":"+millisecond);
    int start=1;
    int end=100; 
    int sum=continueSum(start,end);
%>
</p>
<p style="font-family:宋体;font-size:33;color:blue"><%= start %>  <!-- Java表达式 --><%= end %>    <!-- Java表达式 --><br>连续和是:
   <%= sum %>    <!-- Java表达式 --> 
</p>   //p标签为段落标签
<script>   <!--JavaScript(JS)标记 -->                    
   document.write("<h2>服务器时间:"+
<%=hour%>+":"+<%=minute%>+":"+<%=second%>+":"+<%=millisecond%>+"</h2>");
</script> 
</body></HTML>

2.2 声明变量和定义方法

在<%! %> 之间声明变量和定义方法,习惯上放在JSP页面指令之后,之前。
1.声明变量: <%! %> 之间声明的变量在整个JSP页面内都有效,与其书写的位置无关。
2.定义方法和类:
(1)在<%! %>之间定义方法,可在Java程序片中调用该方法。
ps:方法内声明的变量只在该方法内有效。
(2)在<%! %>之间定义类,可以在Java程序片中使用该类创建对象。

2.3 Java程序片

在<% %> 之间插入Java程序片。
在程序片中声明的变量为JSP页面的局部变量
JSP页面可以有多个程序片,这些程序片将被Tomcat服务器按顺序执行。
Tomcat服务器使用多线程来处理程序片,特点如下:
操作JSP页面的成员变量
调用JSP页面的方法
操作局部变量
当把一个Java程序片分割成几个程序片时,需要在这些Java程序片之间插入其他标记元素。
通常格式为:

HTML中的标记
<%
     Java程序片
%>
HTML中的标记
<%
    Java 程序片
%>
HTML中的标记

2.4 Java表达式

在<%= %> 之间插入一个可求值的表达式(注意:不可插入语句)
ps:“<%”和“=”之间无空格!否则会出错
表达式的值由服务器计算,并将计算结果用字符穿形式发送到用户端显示

2.5 JSP中的注释

JSP页面中的注释可分为两种:
(1)HTML注释:

<!-注释内容->

(2)JSP注释:

<%–注释内容–%>

2.6 JSP指令标记

2.6.1 page指令标记

page指令用来定义整个jsp页面的一些属性和这些属性的值,属性值用单引号或者双引号括起来
page语法格式:

<%@ page 属性1= “值1” 属性2=“值2” …%>

page指令标记可以指定如下属性的值:contentType、import、language、session、buffer、autoFlaush、isThreadSafe、pageEncoding等

(1)contentType属性
contentType属性值确定JSP页面响应的MIME类型
若不给page指令的conteneType指定一个值,则它的默认值为“text/html;charset-ISO-8859-1”
ps:不允许两次使用page指令给contentType属性指定不同的值
扩展:

1、iso-8859-1:有对应的字节和数据,使用一个字节来表示2^8=256种可能。 a-z、0-9等
2、gb2312:2个字节2^16=64000多种可能,可以对汉字编码
3、gbk:可以对简繁体编码
4、UTF-8:文字字符数字都可以表示,可能是多种字节

(2)pageEncoding属性
pageEncoding属性的默认值是UTF-8。pageEncoding属性值是定义JSP页面的编码
例如JSP页面指定的编码为UTF-8时: <%@ page pageEncoding=“utf-8”%>

(3)language属性
language属性用来定义jsp页面所使用的脚本语言,该属性的值目前只能取java
格式:

<%@ page language=“java” %>

(4)import属性
作用是为jsp页面引入java运行环境提供的类,如<%@ page import=“java.io.","java.util.” %>

(5)session属性
用于设置是否需要使用内置的session对象,取值为true或false,默认为ture

(6)buffer属性
用来指定out设置的缓冲区的大小或者不使用缓冲区,其默认值为8kb

(7)autoFlush属性
指定out的缓冲区被填满时,缓冲区是否自动刷新,可取值true或false,默认值为true

(8)isThreadSafe属性
用来设置jsp是否可多线程访问,当设置为true时,jsp页面能同时响应多个客户的请求,党委false时,jsp页面同一时刻只能响应一个客户的需求,其他客户需要排队等待,默认值为true

(9)info属性
该属性的值时一个字符串,目的是为jsp页面准备一个常用且可能要修改的字符串,如<%@ page info =“we are students” %>; 可用getServletInfo()获取info属性值

2.6.2 include指令标记

该指令标记的作用是在jsp页面中该指令的位置上,静态插入一个文件
include语法格式:

<%@ include file = “文件的URL” %>

静态插入就是把当前jsp页面和插入的文件合并成一个新的jsp页面,然后jsp引擎再将这个新的jsp页面转译成java文件

2.7 JSP动作标记

2.7.1 include动作标记

语法格式:

<jsp:include page = “URL”/>或 <jsp:include page = “URL” >
param子标记 </jsp:include>

2.7.2 param动作标记

语法格式:

<jsp:param name = “参数” value = “ 参数的值”>

2.7.3 forward动作标记

格式:

<jsp:forward page = “要转向的页面” />或 <jsp:forward page = “要转向的页面” >
param标记 </jsp:forward>

作用:从该指令处停止当前页面的继续执行,而转向执行page属性指定的jsp页面
example2_12.jsp

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

example2_12_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>

example2_12_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>

在这里插入图片描述
在这里插入图片描述

2.7.4 useBean动作标记

格式:

<jsp:useBean id=“bean的名字” class=“创建beans的字节码文件” scope=“bean有效范围” />

该标记用来创建并使用一个javaBean

总结

以上就是第二章的内容,主要就是为JSP页面的基本结构以及各种指令标记。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值