HTML注释语法:
<!- - content[<%= expression %>] - ->
该注释通过在浏览器客户端可以看到源代码,通过查看源文件可以显示
实例源码:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.util.*,java.util.Date"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%Date a=new Date(); %>
<%=a %>
<%! Calendar rightNow ;%>
<%rightNow = Calendar.getInstance();%>
<!-- This is HTML content(客户端可以看到源代码) -->
<!-- 当前日期是:
<%=rightNow.get(Calendar.YEAR) %>:
<%=rightNow.get(Calendar.MONTH)+1 %>:
<%=rightNow.get(Calendar.DAY_OF_MONTH) %>
-->
</body>
</html>
JSP 注释语法:
<%- - JSP content - -%>
<% /* comment */ %>
实例代码:
<%--This is JSP content(客户端不可以看到源代码)--%>
<%! int total,begin,end; //变量声明
public int sum(int a,int b) //方法声明
{
total=0;
for(int i=a;i<=b;i++)
total+=i;
return total;
}
%>
<% begin=1;
end=10;
total=sum(begin,end);//java 程序片段
%>
<h2>
从
<%=begin %><!-- jsp表达式 -->
到
<%=end %>
的和为
<%=total %>
<br>
</h2>
<%–This is JSP content(客户端不可以看到源代码)–%>
以上注释在客户端通过查看源代码时看不到注释中内容,安全性较高。
JSP中变量和方法声明语法:
<% declaration;[ declaration;] %>
<%! declaration;[ declaration;] %>
注意
“<%!”和“ %>”之间声明的变量在整个jsp页面内部有效,与“<%!”和“ %>”标记符在 jsp页面位置无关。
“<%”和“ %>”之间声明的变量称为局部变量,局部变量有效范围与其声明的位置有关,即声明后才可以在后继的小脚本和表达式中使用。
特别注意全局变量与局部变量的区分:
例如下面代码就会报错:a can not be resolved.
<%=a %>
<% int a=3; %>
应该修改如下:
<%=a %>
<%! int a=3; %>
JSP中表达式语法:
<%= expression %>
实例:
输出begin的值: <%=begin %>
JSP指令一般格式:
<%@ directive {
attribute=”value”} %>
在JSP中,主要有3种类型指令:page,include和taglib。
page指令用来定义Jsp文件中的全局属性,它描述了与页面相关的一些信息。
page指令语法:
<%@ page
[language=”java”]
[import=” package.class,…”]
[info=”text”]
[errorPage=”relativeURL”]
[contentType=”mimeType[;charset=characterSet]”| ”text/html;charset=ISO-8859-1”]
[pageEncoding=”GB2312”]
[isErrorPage=”true|false”]
%>
说明:
<%@ page import=”java.util.*” %>
<%@ page import=”java.sql.*” %>
如果用一个import指明要载入的多个包,需要用逗号“,”隔开。如:
<%@ page import=”java.util.*, java.sql.*” %>
对于java.lang.、javax.servlet.、javax.servlet.jsp.和javax.servlet.http. 这四个包在JSP编译时已经导入,不需要再指明。
3)info=”text”
Info属性设置JSP页面的文本信息,可以通过getServletInfo()方法获得该字符串。
实例1:
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@ page language="java" info="清华大学" pageEncoding="UTF-8" %>
<html>
<body>
<% String s = getServletInfo(); %>
<h2>
<%=s %>是中国最厉害的大学!
</h2>
</body>
</html>
4)errorPage=”relativeURL”
errorPage属性指明若当前页面产生异常,重定向到指定的relativeURL页面处理该异常。
5)isErrorPage=”true|false”
isErrorPage属性设置当前JSP页面是否为错误处理页面,默认值false。当设置为true时,该页面可以接收其它JSP页面出错时产生的exception对象,并通过该对象取得从发生错误网页传出的错误信息,语法如下:
<%=exception.getMessage()%>
实例2:
设置一个会错误的页面:
添加错误页面error.jsp:
运行结果:
6)contentType=”mimeType[;charset=characterSet]”|”text/html;charset=ISO-8859-1”]
contentType属性标明即将发送到客户程序的文档的MIME类型。JSP页面默认MIME类型是text/html,默认字符集是ISO-8859-1。MIME类型有text/html、application/msword、image/jpeg、image/gif、application/vnd.ms-excel等。
7)pageEncoding=”GB2312”
如果只想更改字符集,使用pageEncoding更简单。如:
<%@ page pageEncoding=”GBK” %>
如果要显示中文,一般设置字符集为GB2312或GBK。
实例三:
将数据显示为excel格式:
运行结果:
指出编译JSP页面时要插入的文件名(以相对URL形式),所以被包括文件内容成为JSP页面一部分。它通常用来包含网站中经常出现的重复性页面,例如网站导航栏。
include指令语法:
<%@ include file=”relativeURL” %>
使用include 指令,这个包含的过程是静态的。静态包含是指这个被包含文件将插入到JSP文件中放置<%@ include %>的地方。一旦包含文件被执行完,那么主JSP文件的过程将被恢复,继续执行下一行。但要注意在这个包含文件中不能使用、、、标记,因为这样将会影响在源JSP文件中同样的标记,有时会导致错误。
实例1:
date.jsp页面如下:
运行结果如下:
taglib指令告诉容器一个特定JSP需要哪个标记库。后面章节会详细讲解的。
其语法格式为:
<%@ taglib prefix="view" uri="/WEB-INF/tags/view.tld">
jsp:include动作在主页面被请求时,将次级页面的输出包含进来。包含文件可以是HTML文件、纯文本文件、Jsp页面或Servlet。
page:指定所包含文件。推荐将被包含文件的页面放在WEB-INF目录中,这样可以防止客户偶然访问这些页面(这些页面一般都不是完整HTML文档)。
flush:指定在将页面包含进来之前是否应清空主页面的输出流(默认false)
实例:
运行结果:
为其它标准动作指定参数。
< jsp:param>动作语法:
<jsp:param name=”参数名” value=”值” />
实例:
<%@ page language="java" pageEncoding="GBK"%>
<html>
<body>
<h3>
文件包含之前主页面:
<br>
fgColor:<%
out.print(request.getParameter("fgColor"));
%>
bgColor:<%
out.print(request.getParameter("bgColor"));
%>
<jsp:include page="/WEB-INF/pfc.jsp">
<jsp:param name="fgColor" value="red" />
</jsp:include>
文件包含之后主页面:
<br>
fgColor:<%
out.print(request.getParameter("fgColor"));
%>
bgColor:<%
out.print(request.getParameter("bgColor"));
%>
</h3>
</body>
</html>
pfc.jsp代码:
<%@ page language="java" pageEncoding="GBK"%>
<html>
<body>
<h3>
次级页面:
<br>
fgColor:<% out.print(request.getParameter("fgColor"));%>
bgColor:
<%out.print(request.getParameter("bgColor")); %>
</h3>
</body>
</html>
jsp:forward动作语法:
执行jsp:forward动作,当前请求会转发给另一个页面(可以是Jsp、Servlet、HTML文件等),当前Jsp处理会终止。
实例例second_example8.jsp:
<%@ page language="java" pageEncoding="GBK"%>
<html>
<body>
<%
out.print("aaa");//看不到执行结果
double i = Math.random();
out.print(i);//看不到执行结果
%>
<jsp:forward page="data.jsp">
<jsp:param name="data" value="<%=i%>" />
</jsp:forward>
<%
out.print(i);//看不到执行结果
%>
</body>
</html>
data.jsp:
<%@ page language="java" pageEncoding="GBK"%>
<html>
<body>
<font size="6">
<%
String s = request.getParameter("data");
out.print("传过来的值是:" + s);
%>
</font>
</body>
</html>
备注:
运行结果:使用了该动作,second_example8.jsp打印处理终止。
jsp:plugin动作提供一种在Jsp文件中嵌入客户端运行的Java程序(如Applet、JavaBean)的方法。Jsp在处理这个动作的时候,将根据客户端浏览器的不同,执行后将分别输出OBJECT或EMBED这两个不同的HTML元素。
<jsp:plugin>动作语法:
<jsp:plugin
type=”bean|applet”
code=”classFileName” [codebase=”classFileDirectoryName”] [name=”instanceName”] [align=”left|right|top|bottom|middle” ]
[width=”displayPixels”] [height=”displayPixels” ] [hspace=”leftRightPixels”] [vspace=”topBottomPixels”]
[<jsp:params>
<jsp:param name=”parameterName” value=”parameterValue”/>
</jsp:params>]
[<jsp:fallback>message</jsp:fallback>]
</jsp:plugin>
1)执行插件类型,该属性没默认值,必须指定为bean或applet。
2)code=”classFileName”
将被插件执行的Java类文件名称,文件必须以.class结尾,必须位于codebase属性指定的目录中。
3)codebase=”classFileDirectoryName”
Java类文件所在目录。没有该属性,表明类文件和jsp文件在同一目录下。
4)name=”instanceName”
指定Bean或Applet实例的名字,它将会在Jsp其它的地方调用。这使得被同一个Jsp调用的 Bean或Applet之间通信成为可能。
5)align=”left|right|top|bottom|middle”
Bean或Applet对象位置。
6) width=”displayPixels”
height=”displayPixels”
Bean或Applet对象显示的宽度、高度,单位像素。
7) hspace=”leftRightPixels”
vspace=”topBottomPixels”
Bean或Applet对象显示时距屏幕左右、上下的距离,单位像素。
8) <jsp:fallback>
当浏览器不能正常显示Applet或Bean时,显示一段替代文本给用户。
后面会详细介绍。