JavaWeb jsp语法(注释、变量和方法声明、表达式、Jsp指令、Jsp动作)

JSP语法目录

  • 1.注释
    • 1.1 html注释
    • 1.2 jsp注释
  • 2.变量和方法声明
  • 3.表达式
  • 4.Jsp指令
    • 4.1 page指令
    • 4.2 include指令
    • 4.3 taglib指令
  • 5.Jsp动作
    • 5.1 <>动作
      • 5.1.1、动作语法:
      • 5.1.2、<%@ include %>指令与动作区别:
    • 5.2 <>动作
    • 5.3 <>动作
    • 5.4 <>动作
    • 5.5 <>动作

1.注释

1.1 html注释

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>

运行结果:
JavaWeb jsp语法(注释、变量和方法声明、表达式、Jsp指令、Jsp动作)_第1张图片
网页右键查看源码:
JavaWeb jsp语法(注释、变量和方法声明、表达式、Jsp指令、Jsp动作)_第2张图片

1.2 jsp注释

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>

运行结果:

网页右键查看源码:
JavaWeb jsp语法(注释、变量和方法声明、表达式、Jsp指令、Jsp动作)_第3张图片

<%–This is JSP content(客户端不可以看到源代码)–%>
以上注释在客户端通过查看源代码时看不到注释中内容,安全性较高。

2.变量和方法声明

JSP中变量和方法声明语法:

<% declaration;[ declaration;]  %>
<%! declaration;[ declaration;]   %>

注意
“<%!”和“ %>”之间声明的变量在整个jsp页面内部有效,与“<%!”和“ %>”标记符在 jsp页面位置无关。
“<%”和“ %>”之间声明的变量称为局部变量,局部变量有效范围与其声明的位置有关,即声明后才可以在后继的小脚本和表达式中使用。
JavaWeb jsp语法(注释、变量和方法声明、表达式、Jsp指令、Jsp动作)_第4张图片
特别注意全局变量与局部变量的区分:
例如下面代码就会报错:a can not be resolved.

  <%=a %>
  <% int a=3; %>    

应该修改如下:

  <%=a %>
  <%! int a=3; %>   

3.表达式

JSP中表达式语法:

<%= expression %>

实例:
输出begin的值: <%=begin %>

4.Jsp指令

JSP指令一般格式:

<%@ directive {
     attribute=”value”} %>

在JSP中,主要有3种类型指令:page,include和taglib。

4.1 page指令

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]
%>

说明:

  1. language=”java”
    声明JSP程序文件所使用语言,默认为Java。
  2. import=”package.class,…”
    import属性用来指定JSP网页中需要导入的包。
    如:
<%@ 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:
设置一个会错误的页面:
JavaWeb jsp语法(注释、变量和方法声明、表达式、Jsp指令、Jsp动作)_第5张图片
添加错误页面error.jsp:
JavaWeb jsp语法(注释、变量和方法声明、表达式、Jsp指令、Jsp动作)_第6张图片
运行结果:
在这里插入图片描述
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格式:
JavaWeb jsp语法(注释、变量和方法声明、表达式、Jsp指令、Jsp动作)_第7张图片
运行结果:
JavaWeb jsp语法(注释、变量和方法声明、表达式、Jsp指令、Jsp动作)_第8张图片

4.2 include指令

指出编译JSP页面时要插入的文件名(以相对URL形式),所以被包括文件内容成为JSP页面一部分。它通常用来包含网站中经常出现的重复性页面,例如网站导航栏。
include指令语法:

<%@ include file=”relativeURL” %>

使用include 指令,这个包含的过程是静态的。静态包含是指这个被包含文件将插入到JSP文件中放置<%@ include %>的地方。一旦包含文件被执行完,那么主JSP文件的过程将被恢复,继续执行下一行。但要注意在这个包含文件中不能使用、、、标记,因为这样将会影响在源JSP文件中同样的标记,有时会导致错误。
实例1:
JavaWeb jsp语法(注释、变量和方法声明、表达式、Jsp指令、Jsp动作)_第9张图片
date.jsp页面如下:
JavaWeb jsp语法(注释、变量和方法声明、表达式、Jsp指令、Jsp动作)_第10张图片
运行结果如下:
JavaWeb jsp语法(注释、变量和方法声明、表达式、Jsp指令、Jsp动作)_第11张图片

4.3 taglib指令

taglib指令告诉容器一个特定JSP需要哪个标记库。后面章节会详细讲解的。
其语法格式为:

  <%@ taglib prefix="view" uri="/WEB-INF/tags/view.tld">  

5.Jsp动作

5.1 动作

jsp:include动作在主页面被请求时,将次级页面的输出包含进来。包含文件可以是HTML文件、纯文本文件、Jsp页面或Servlet。

5.1.1、jsp:include动作语法:


page:指定所包含文件。推荐将被包含文件的页面放在WEB-INF目录中,这样可以防止客户偶然访问这些页面(这些页面一般都不是完整HTML文档)。
flush:指定在将页面包含进来之前是否应清空主页面的输出流(默认false)
实例:
JavaWeb jsp语法(注释、变量和方法声明、表达式、Jsp指令、Jsp动作)_第12张图片
JavaWeb jsp语法(注释、变量和方法声明、表达式、Jsp指令、Jsp动作)_第13张图片
在这里插入图片描述
在这里插入图片描述
运行结果:
JavaWeb jsp语法(注释、变量和方法声明、表达式、Jsp指令、Jsp动作)_第14张图片

5.1.2、<%@ include %>指令与jsp:include动作区别:

  1. <%@ include %>指令是在主Jsp页面转换成Servlet时,将文件包含到文档中。而动作在主Jsp页面被请求时,将次级页面的输出包含进来,因此所包含文件变化总会被检查到,更适合包含动态文件。
    2)使用include指令的页面要比使用jsp:include的页面难维护的多。因为相关规范要求服务器能够检测出主页面什么时候发生了更改,并不要求它们能检测出包含文件什么时候发生了改变(并且重新编译Servlet),因此,大多数服务器中,包含文件发生更改时,对于所有用到该文件的Jsp文件,我们都要更新它们的修改日期。
  2. include指令更为强大。include指令允许所包含文件含有影响主页面的Jsp代码,比如响应报头设置和字段的定义。
    例如:pfc.jsp包含下面代码:
    <%! int count=0;%>
    这种情况下,可以在主页面mainpfc.jsp中执行下面任务:
    <%@ include file=”pfc.jsp” %>
    <%= count++;%>
    这使用jsp:include 是不可能的,因为count变量未定义。

    <%= count++%>

5.2 动作

为其它标准动作指定参数。
< jsp:param>动作语法:

 <jsp:param name=”参数名” value=”值” />

实例:

<%@ page language="java" pageEncoding="GBK"%>
<html>
<body>
	<h3>
		文件包含之前主页面:
		<br>
		fgColor:<%
		out.print(request.getParameter("fgColor"));
	    %>
		&nbsp;&nbsp;&nbsp;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"));
		%>
		&nbsp;&nbsp;&nbsp;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"));%>
		&nbsp;&nbsp;&nbsp;bgColor:
		<%out.print(request.getParameter("bgColor")); %>
	</h3>
</body>
</html>

运行结果:
JavaWeb jsp语法(注释、变量和方法声明、表达式、Jsp指令、Jsp动作)_第15张图片

5.3 动作

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>

备注:当前请求会转发给data.jsp页面。
运行结果:使用了该动作,second_example8.jsp打印处理终止。
在这里插入图片描述

5.4 动作

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时,显示一段替代文本给用户。

5.5 动作

后面会详细介绍。

你可能感兴趣的:(javaweb,注释,变量和方法声明,表达式,Jsp指令,Jsp动作,Jsp指令,Jsp动作,jsp语法)