JSP实用教程第二章-------JSP语法

目录

2.1.jsp页面的基本结构

2.2.声明变量和定义方法 

a.声明变量

b. 定义方法和类

2.3Java程序片

2.4.java表达式

2.5JSP中的注释

2.6 JSP指令标记

2.6.1 page指令

a.contentType属性

b.pageEncoding属性:

c.language属性

d.import属性

e.session属性

f.buffer属性

g.autoFlush属性

h.isThreadSafe属性

I.info属性

2.6.2 include指令标记

2.7 JSP动作标记

2.7.1 include动作标记

2.7.2 param动作标记

 2.7.3 forward动作标记


2.1.jsp页面的基本结构

  一个基本的jsp页面可由五种元素组合而成:

a.普通的HTML标记和JavaScript标记     

<HTML>-------HTML标记

b.JSP标记,如 指令标记,动作标记    

<%@-----jsp标记------%>

c.变量方法和方法的声明          

 <%!------变量方法和变量的声明------%>

d.Java程序片       

<%----java程序片------%>

e.Java表达式      

<%=----java表达式-----%>

注:当Tomcat服务器上的一个jsp页面被第一次请求执行时,Tomcat服务器首先将jsp页面文件转译成一个java文件,再将这个java文件编译生成字节码文件。

这个字节码文件的主要任务就是:

1.把JSP页面中普通的HTML标记和JavaScript标记交给用户端浏览器执行显示

2.JSP标记,方法的定义,Java程序片由服务器负责处理和执行,将需要显示的结果发送给用户端浏览器

3.Java表达式由服务器负责计算,并将结果转化为字符串,然后交给用户端浏览器负责显示

2.2.声明变量和定义方法 

a.声明变量

表达式为 

 <%!----------%>

位置:标记符号的内容一般可以放在JSP指令之后,<HTML>之前,也可以写在<HTML>与<HTML>之间

注:在<%!----%>声明的变量叫做全局变量,在整个JSP页面都有效,与它的书写位置无关,

这些变量占有的内存空间直到Tomcat服务器关闭才会释放。

利用成员变量的性质,实现一个简单的计数器:

<%@ page contentType="text/html" %>  
<%@ page pageEncoding = "utf-8" %>  
<HTML><body bgcolor=yellow>
<%! int i=0;
%>
<% i++;
%>
<p style="font-family:宋体;font-size:36">
您是第<%= i %>个访问本站的用户。
</p>
</body></HTML>  

b. 定义方法和类

表达式为  

<%!----------%>

书写位置:在 <%!----------%>标记符号之间定义方法和类

:在java程序片中调用该方法,该方法声明的变量叫做局部变量,只在该方法内有效,当方法被调用时,方法内声明的变量被分配内存,方法被调用完后就可以释放这些变量所占的内存。

效果如图:

<%! double multi(double x,double y){ //定义方法
        return x*y;
    }
    double div(double x,double y) { //定义方法
        return x/y;
    }
    class Circle { //定义类
        double r;
        double getArea(){
           return 3.1415926*r*r;
        }
    }
%>

2.3Java程序片

通常的格式为:

HTML的标记
<% 
 java程序片
%>
HTML的标记
<% 
  java程序片
%>
HTML的标记

书写位置:<HTML>之前,也可以写在<HTML>与<HTML>之间或者<HTML>之后,但是不能在</HTML>之后

注:在程序片中声明的变量称为JSP页面的局部变量,局部变量的有效范围与其声明的位置相关

即局部变量在jsp页面后继的所有程序片以及表达式部分内部都有效

2.4.java表达式

可以在<%=之间插入一个可求值的表达式(不可以插入语句),"<%="是一个完整的符号,不能插入空格。

书写位置:<HTML>之前,也可以写在<HTML>与<HTML>之间或者<HTML>之后,但是不能在</HTML>之后

:在jsp页面中,表达式的值被表示成一个字符串的形式,即Tomcat服务器将表达式的结果转换成字符串,然后发送给用户浏览器..因此在编写jsp页面时,要把java表达式按普通的文本来使用

通常的格式为:

计算表达式x+y+x%y,即<%= x %>+<%= y %>+<%= x %>%<%= y %>的值: 
  <%= x+y+x%y %>
<br>计算表达式x>y即<%= x %> > <%= y %>的值:
  <%= x>y %>
<br>计算表达式sin(<%=  Math.PI %>/2)的值:
    <%= Math.sin(Math.PI/2) %>

2.5JSP中的注释

​JSP注释可以分为两种
JSP注释 
<%------注释内容-----%>
HTML注释
<!----html注释内容---->
拓展:
JAVA注释
多行注释:/*-----*/
单行注释://

​

2.6 JSP指令标记

2.6.1 page指令

page指令的作用对整个JSP页面有效,与其书写位置无关,习惯性把page指令放在JSP页面的最前面

//一个page指令指定一个属性的值
<%@ page 属性1="属性1的值" %>
.....
<%@ page 属性n="属性n的值" %>
//一个page指令指定多个属性的值
<%@ page 属性1="属性1的值",属性2="属性2的值" ..... %>

a.contentType属性

contentType属性确定JSP页面响应的MIME类型,属性值的一般形式是:"MIME类型"

<%@ page contentType="text/html" %>
// contentType属性的默认值为"text/html"

如果希望用户的浏览器启用本地的MS-Word应用程序来解析执行收到的消息,就可以如下设置


<%@ page contentType="application/msword" %>

注意:一个页面不允许两次使用page指令给contentType属性指定不同的属性值

b.pageEncoding属性:

pageEncoding属性的默认值是UTF-8,是告诉我们tomcat服务器的解析器用怎样的编码去解析JSP页面的字符(目的是为了防止乱码)

<% page pageEncoding="utf-8" %>

注意:一个页面不允许两次使用page指令给pageEncoding属性指定不同的属性值

c.language属性

language属性定义JSP页面使用的脚本语言,该属性的值目前只能去"java"(默认的page指令)

<% page language="java" %>

d.import属性

该属性的作用是为JSP页面引入Java运行环境提供的包中的类,这样就可以在JSP页面的程序片部分、变量及方法定义部分以及表达式部分使用包中的可以为该属性指定多个值。

<%@ page import="java.io.*","java.time.LocalDate"%>

e.session属性

session属性用于设置是否需要使用内置的session对象。session的属性值可以是true或false,默认为true。

f.buffer属性

内置输出流对象out负责将服务器的某种信息或运行结果发送到用户端显示。

buffer属性用来指定out设置的缓冲区大小或不使用缓冲区。

<%@ page buffer="24kb"%>  //指定out的缓冲区大小为24kb

g.autoFlush属性

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

h.isThreadSafe属性

isThreadSafe属性用来设置访问JSP页面是否是线程安全的。isThreadSafe的属性值可取true或false,默认值为true。

I.info属性

info属性的属性值是一个字符串,其目的时为JSP页面准备一个常用但可能要经常修改的字符串。

 比如:<%@ page info="we are students" %>

可以在JSP页面中使用这个方法来获取info属性的属性值

getServletInfo();

现在我们来看一下例子:

<%@ page info="清华大学图像tsinghua.jpg" %>
<%  String s=getServletInfo();
 //利用方法来获得info属性的字符串
    String str[]=s.split("图像");
//利用split()这个方法,是指从图像这个地方分割,并且把图像删除
%>

2.6.2 include指令标记

1.如果需要JSP页面内某处整体嵌入一个文件,可以考虑include指令标记,要注意的是这个标记是静态的。

2.所谓的静态嵌入,就是把当前的JSP页面和嵌入的文件合成一个新的JSP页面,然后Tomca服务器再将新的JSP页面转译成java文件

3.要注意一个页面不允许两次使用page指令给contentType属性指定不同的属性值

现在利用超链接将example2_10.a.jsp插进ok.txt

//ok.txt
<%@ page contentType="text/html" %>
<A href="example2_10_a.jsp">北京大学</A>
//example2_10_a.jsp
<%@ page contentType="text/html" %>
<%@ page pageEncoding = "utf-8" %> 
<%@ include file="myfile/ok.txt" %>
<HTML><center><body background="image/beida.jpg">
<bgsound src="sound/beida.mp3" loop=1>
<h1>这里是北京大学 </h1>
</body></HTML>

2.7 JSP动作标记

2.7.1 include动作标记

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

注意:

1.当include动作标记不需要param子标记时,必须使用第一种形式。书写时需要注意<jsp:include  中间不要有空格

2.include动作标记是动态的,它是通过告诉java编译器,文件在JSP运行时才会包含进来。(如果是普通的文件,则交由用户端的浏览器负责显示),如果是JSP文件,就由Tomcat服务器执行这个文件。

2.7.2 param动作标记

1. param标记以"名字-值"对的形式为其他标记提供附加信息,param标记不能独立使用,须作为jsp:include , jsp:forward标记的子标记来使用。

2.param是将它所标记的参数值传递到include动作标记要加载的文件中去,被加载的JSP文件可以使用Tomcat服务器提供的request 内置对象获取include

格式为:

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

 2.7.3 forward动作标记

forward动作标记的语法格式是:

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

该指令的作用是:从该指令处停止当前页面的执行,从而转向page属性指定的JSP页面,需要注意的是,当forward动作标记不需要param子标记时,必须使用第一种形式。

  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值