JSP语法

来源:互联网 发布:linux查看登陆密码 编辑:程序博客网 时间:2024/04/28 08:57

JSP语法分为三种不同的类型
编译器指令(DIRECTIVE) 例如: <%@ page import=“java.io.*” %>
脚本语法(SCRIPTING)
动作语法(ACTION) 例如: <jsp:forward>,<jsp:getProperty>,<jsp:include>

 

编译器指令包括“包含指令”, “页指令”和“taglib指令”
•它们包含在“<%@ %>”卷标里。
•两个主要的指令是page与include。

 

脚本语法包括
–“HTML注释”:<!— comments -->
–“隐藏注释”:<%-- comments --%>
–“声明”
–“表达式”
–“脚本段”

 

动作语法包括<jsp:forward>,<jsp:include>,<jsp:getProperty>,<jsp:setProperty>和<jsp:useBean>。

 

编译器指令:

包含指令

include指令:向当前页中插入一个静态文件的内容。
•JSP 语法格式如下:
•<%@ include file="relativeURL" %> 或
•<%@ include file="相对位置" %>

page指令:

•“Page”指令用于定义JSP文件中的全局属性。
JSP 语法格式如下:
<%@ page
[ language="java" ]
[ extends="package.class" ]
[import="{package.class | package.*},..." ]
[ session="true | false" ]

[ isThreadSafe="true | false" ]
[ errorPage="relativeURL" ]
[ contentType="mimeType
[;charset=characterSet]" | "text/html
; charset=ISO-8859-1" ]
[ isErrorPage="true | false" ]
%>

属性:
1.language="java"
声明脚本语言的种类,目前只能用"java" 。
2.import="{package.class | package.* },..."
需要导入的Java包的列表,这些包作用于程序段,表达式,以及声明。下面的包在JSP编译时已经导入了,所以就不需要再指明了:
java.lang.* javax.servlet.* javax.servlet.jsp.* javax.servlet.http.*

3.errorPage="relativeURL"
设置处理异常事件的JSP文件。
4.isErrorPage="true | false"
设置此页是否为出错页,如果被设置为true,你就能使用exception对象

•“<%@ page %>”指令作用于整个JSP页面,同样包括静态的包含文件。但是“<%@ page %>”指令不能作用于动态的包含文件,比如 “<jsp:include>”。
•可以在一个页面中用上多个“<%@ page %>”指令,但是其中的属性只能用一次,不过也有例外,那就是import属性。因为import属性和Java中的import语句类似(参照Java Language,import语句引入的是Java语言中的类),所以此属性就能用多次。
•无论把“<%@ page %>”指令放在JSP的文件的哪个地方,它的作用范围都是整个JSP页面。不过,为了JSP程序的可读性,以及好的编程习惯,最好还是把它放在JSP文件的顶部。

taglib指令:

<%@ taglib uri="URIToTagLibrary" prefix="tagPrefix" %>
•用于引入定制标签库

注意他的属性prefix,prefix="tagPrefix"
–表示标签在JSP中的名称。
–在自定义标签之前的前缀,比如,在<public:loop>中的public,如果这里不写public,那么这就是不合法的。请不要用jsp, jspx, java, javax, servlet, sun, 和sunw做为你的前缀,这些已被Sun公司声明保留。

 

脚本语法:

注释:

JSP 语法格式如下:
•<!-- comment [ <%= expression %> ] --> 或
•<!-- 注释 [<%= 表达式 %> ] -->
•这种注释发送到客户端,但不直接显示,在源代码中可以查看到。

声明:

•<%! declaration; [ declaration; ] ... %> 或
•<%! 声明; [声明; ] ... %>

表达式:

用于在页面上输出信息,语法格式如下:
•<%= expression %> 或
•<%= 表达式 %>

脚本段:

•<% code fragment %> 或
•<% 代码 %>

 

动作语法:

<jsp:forward>

<jsp:forward>”标签从一个JSP文件向另一个文件传递一个包含用户请求的request对象。“<jsp:forward>”标签以后的代码,将不能执行。这点可以从他编译后的servlet源代码中可以看出来

<jsp:include>

包含一个静态或动态文件.
• JSP 语法格式如下:
1.<jsp:include page="{relativeURL | <%=expression%>}" flush="true" />
2.<jsp:include page="{relativeURL | <%=expression %>}" flush="true" >
<jsp:param name="parameterName" value="{parameterValue | <%= expression %>}" />
[<jsp:param …/>]
</jsp:include>
(“[<jsp:param … />]”指可以有多个“<jsp:param/>”标记。)

 

在这里注意的几点就是:

JSP语法:•<!-- comment [ <%= expression %> ] -->注释,注意里面的是表达式的时候,他会先把表达式里面的东西计算出来,然后再写进去,会发送到客户端.并且注意表达式里是没有分号的.

 

注意声明的语法和脚本段的不一样,如果声明的话是作为jsp转换为servlet类时的成员变量,而脚本段的东西都是在一个service方法里的.

JSP 声明的格式:<%! int a = 3;%>,脚本段的形式:<% int b = 3;%>,当服务器将JSP 转换为Servlet 时,会将JSP 中的声明转换为类的成员变量,而将脚本段转换为方法中的局部变量,Servlet是单实例的,这样成员变量的值就只有一个,每个用户都会访问到它,而脚本段中的值则是局部变量,每个用户访问的时候各有一份,互不影响。

 

<jsp:include>指令他还可以给另外一个页面传送参数,而<%@ include %>是不可以的.<jsp:include>之后编译出来的是两个class文件,即是两个类,而<%@ include %>编译出来之后的是一个文件,一个类

 

表达式等价于out.println与脚本段.out.println这里的换行是在源代码里面的换行,即你发送到客户端之后,点查看源代码里的那个源代码.

原创粉丝点击