JSP-注释,脚本元素,指令
jsp中的注释
jsp隐藏注释
完全对客户机隐藏,不会将注释内容发送给客户机。
其语法格式为:<%-- comment --%>
comment为要添加的文本注释内容。
HTML注释
不完全对客户机隐藏,在网页的源文件中可以看到相应注释
`<!-- comment [ <%= expression %> ] -->
其中comment可以是文字说明,expression为JSP表达式。
Java注释
在jsp脚本的基础上添加了原生的java注释
这种注释的作用同jsp隐藏注释相似。完全对客户机隐藏,不会将注释内容发送给客户机。
语法格式为:<% /*comment*/ %>
其中comment为要添加的注释文本。
jsp中的脚本元素
声明元素
语法格式如下:
<%! declaration; [ declaration; ] ... %>
其中declaration为声明的变量、方法的名称和内容。
在声明变量和方法时,需要注意以下几点:
1. 声明以“<%!”开头,以“%>”结尾。
2. 变量声明必须以”;”结尾。
3. 变量和方法的命名规则与Java中的变量和方法的命名规则相同。
4. 可以直接使用在<% @ page %>中被包含进来的已经声明的变量和方法,不需要对它们重新进行声明。
5. 一个声明仅在一个页面中有效。如果想每个页面都用到一些声明,最好把它们写成一个单独的文件,然后用<%@ include %>或元素包含进来。
下面是示范例子:
<%-- 声明 --%>
<%! double r;
double pi = Math.PI;
double getArea(double a){
return pi*a*a;
}
%>
<%-- 使用 --%>
<% r=100;
out.println("调用getArea方法计算半径是"+r+"的园的面积:");
double area=getArea(r);
out.println(area);
%>
表达式
JSP中的表达式由服务器计算并将计算结果转换成一个字符串发送给用户端网页显示输出,起到了一个动态输出的作用。
表达式的语法格式如下:
`<%= expression %>。
JSP的表达式中没有分号,只有在加引号的字符串部分才使用分号。
注意:
在“<%”与“=”之间不要有空格。
下面是示范例子:
<%-- 声明 --%>
<%!
String name = "戴益波";
String searchPath = "https://www.baidu.com";
%>
<%-- 使用 --%>
<p>我的名字是什么呢?<%=name %></p>
<p>通过下面方式可以搜索到我的名字:<a href="<%=searchPath%>">点击这里</a></p>
脚本
脚本的语法格式为:
<% scriptlet %>
JSP脚本即Scriptlet,也就是JSP中的代码部分,是一段Java代码。
脚本中定义的变量称为JSP页面的局部变量,必须在Java代码段前声明。
脚本定义的变量和方法在在后继的页面内有效,当变量所在页面关闭该变量就会被销毁。
下面是示范例子:
<%
String str = "你好,我是你的好朋友戴益波";
for(int i = 0; i<10; i++){
out.print(i + "---------------------" + str + "\n");
}
%>
JSP的指令
page 指令
page 指令用来定义JSP文件中的全局属性,它描述了与页面相关的一些信息,其作用域为它所在的JSP文件页面和其包含的文件。
**语法格式:**
可以用一个page指令指定多个属性的值 ,也可以使用多个page指令分别为每个属性指定值 。如果为一个属性指定几个值,这些值之间用逗号隔开。
<%@ page 属性1=“属性1的值” 属性2= “属性2的值” ……%>
或
<%@ page 属性1="属性1的值" %>
<%@ page 属性2="属性2的值" %>
… …
<%@ page 属性n=“属性n的值” %>
<%@ page import=“java.util.*”, “java.io.*” %>
page 指令的语法格式如下:
- [ language=“java” ] 使用的脚本语言,可不写(系统默认)
- [ extends=“package.class” ] 指明编译时要导入Java类名
- [ import=“{package.class | package.}, …” ] 导入的Java包,可多个,中间用逗号隔开。 默认import属性已有如下值:java.lang., lavax.servlet.,javax.servlet.jsp., javax.servlet.http.*
- [ session=“true | false” ] 是否使用内置session对象
- [ buffer=“none | 8kb | sizekb” ]指定内置的out对象(负责把结果发送到客户端)缓冲区大小
- [ autoFlush=“true | false” ] 指定out缓冲区填满时,缓冲区是否自动刷新
- [ isThreadSafe=“true | false” ] 设置JSP页面是否允许多线程访问。设置后多线程轮转执行
- [ info=“text” ] 定义JSP页面信息,保存在字符串info中,供Servlet.getServletInfo()获取使用
- [ errorPage=“relativeURL” ] 出现错误时转向的页面文件
- [ isErrorPage=“true | false” ] 设置此页面是否为ErrorPage的目标页,如果是,可以用exception对象
[ contentType=“mimeType” ;charset=”characterSet” ]
下面为详细介绍
设置页面文件类型和字符编码
默认: <%@ page contentType="text/html;charset=ISO-8859-1" %>
常规:<%@ page contentType="text/html;charset=UTF-8" %>
其它:text/plain、image/gif(或x-xbitmap、jpeg、pjpeg)、
application/msword(vnd.ms-excel、vnd.ms-powerpoint、x-shockwave-flash)等。
工作原理:
设置上述属性,Tomcat服务器告知用户的浏览器使用怎样的方式来处理接收到的信息。
include 指令
include指令用于在JSP编译时,为页面插入一个静态文件,如JSP页面、HTML页面、 文本文件或是一段Java程序。
indlude为静态插入,就是当前JSP页面和插入的文件合并成一个新的JSP页面,然后JSP引擎再将这个新的JSP页面转译成Java文件。
include指令的语法格式如下:
<%@ include file=“[子目录/]filename” %>
其中filename指被包含的文件的名称 。
include指令只有一个file 属性。
下面是示范例子:
<h1>include指令实例演示!</h1>
<%@ include file="hello.jsp" %>
下面是hello.jsp文件内容:
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<h1>Hello World!</h1>
</body>
</html>
效果图:
taglib指令
taglib指令用来指定页面中使用的标签库以及其自定义标签的前缀。
taglib语法格式为:
<%@taglib uri=" tagLibraryURI" prefix=" tagPrefix" %>
uri属性:制定标签库相对路径
【功能说明】uri(Uniform Resource Identifier,统一资源标识符)属性用于指定标记库的存放位置,并告诉JSP引擎在编译JSP程序时如何处理指定标签库中的标签,无默认值。uri属性可以是在TLD (标记库描述符)文件或web.xml文件中定义的标记库的符号名,也可以是TLD文件或JAR文件的相对路径。
prefix属性:制定标记前缀
【功能说明】prefix属性用于指定标记库中所有动作元素名中使用的前缀,无默认值。
下面是示范例子:
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%-- http://java.sun.com/jsp/jstl/core 为java标准标签库 --%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head><title>taglib指令实例演示</title></head>
<body>
<h2>taglib指令实例演示!</h2>
<h2><c:out value="欢迎使用JSTL" /></h2>
<br>
</body>
</html>