1.JSP脚本及注释
一个Jsp页面可由以下**5种元素**组合而成
- HTML标签
- Jsp标签,包括指令标签和动作标签
- 变量和方法的声明
- JSP的可执行脚本
- JSP表达式
1.1 JSP的声明语句
在JSP页面中可以定义变量和方法,格式如下:
<%!声明变量或方法%>
1.2 JSP的可执行脚本
可通过插入**可执行脚本**(Scriptlet)来完成指定的业务功能。
可执行脚本就是嵌在**<% ....%>标签**中的Java代码片段
1.3 JSP的表达式
JSp表达式用于向页面输出信息,格式如下:
<%=表达式%>
(1)主要用于以下几个方面:
向页面输出内容:如
<%String userName="zhangsan";%>
用户名:<%=userName%>
(2)生成动态的链接地址
<%String path="detail.jsp";%>
<a href="<%=path%>">详细内容</a>
(3)动态指定Form表单处理页面
<%String action="detail.jsp";%>
<form action="<%=action%>">
.....
</form>
1.4 JSP的注释语句
HTML注释 : <!-- -->
HTML注释会被发送到客户端,查看源码看得到
JSP引擎能够识别并执行包含在HTML注释中的JSp的表达式和可执行脚本
JSP注释:<%-- --%>
包含在其中的JSP表达式和可执行脚本不会执行,注释内容不会被发送到客户端
脚本注释:与Java注释一样:单行注释、多行注释、提示文档注释
2.JSP的操作指令
JSP指令元素主要有三种:page指令、include指令和taglib指令。每个JSP指令都以<%@标签开始,以%>标签结束。
通用格式:
<%@指令名称 属性1=“属性值” 属性2=“属性值”.... %>
page指令 用于定义JSP文件中有效的属性
<%@ page
[ language="java" ]
[ extends="package.class" ]
[ import="{package.class | package.*}, ..." ]
[ session="true | false" ]
[ buffer="none | 8kb | sizekb" ]
[ autoFlush="true | false" ]
[ isThreadSafe="true | false" ]
[ info="text" ]
[ errorPage="relativeURL" ]
[ contentType="mimeType [ ;charset=characterSet ]" | "text/html ; charset=ISO-8859-1" ]
[ isErrorPage="true | false" ]
%>
language="java"
声明脚本语言的种类,暂时只能用"java"
extends="package.class"
标明JSP编译时需要加入的Java Class的全名,但是得慎重的使用它,它会限制JSP的编译能力.
import="{package.class | package.* }, ..."
需要导入的Java包的列表,这些包就作用于程序段,表达式,以及声明。
下面的包在JSP编译时已经导入了,所以你就不需要再指明了:
java.lang.*
javax.servlet.*
javax.servlet.jsp.*
javax.servlet.http.*
session="true | false"
设定客户是否需要HTTP Session.(学过ASP的人,应该对它不陌生)如果它为true,那么Session是有用的。
如果它有false,那么你就不能使用session对象,以及定义了scope=session的<jsp:useBean>元素。这样的使用会导致错误.
缺省值是true.
buffer="none | 8kb | sizekb"
buffer的大小被out对象用于处理执行后的JSP对客户浏览器的输出。缺省值是8kb
autoFlush="true | false"
设置如果buffer溢出,是否需要强制输出,如果其值被定义为true(缺省值),输出正常,如果它被设置为false,如果这个buffer溢出,就会导致一个意外错误的发生.如果你把buffer设置为none,那么你就不能把autoFlush设置为false.
isThreadSafe="true | false"
设置Jsp文件是否能多线程使用。缺省值是true,也就是说,JSP能够同时处理多个用户的请求,如果设置为false,一个jsp只能一次处理一个请求
info="text"
一个文本在执行JSP将会被逐字加入JSP中,你能够使用Servlet.getServletInfo方法取回。
errorPage="relativeURL"
设置处理异常事件的JSP文件。
isErrorPage="true | false"
设置此页是否为出错页,如果被设置为true,你就能使用exception对象.
contentType="mimeType [ ;charset=characterSet ]" | "text/html;charset=ISO-8859-1"
设置MIME类型 。缺省MIME 类型是: text/html, 缺省字符集为 ISO-8859-1.
include指令 用于将另外一个文件文本、HTML文件或JSP文件插入到当前的JSP页面中。
<%@include file="被包含文件的URL"%>
taglib指令 :
<%@taglib uri="URITOTagLibrary" prefix="tagPrefix" %>
3.JSP的动作标签
<jsp:include>动作标签负责把指定文件插入正在生成的页面
<jsp:include page="文件的URL" flush="true"/>
<jsp:forward> 负责把客户的请求重定向到另外的页面或Servlet中
<jsp:forward page={"文件的URL"|“<%=expression%>”}/>
<jsp:param> 负责传递一个或多个参数到指定的文件中
<jsp:param name="paramname" value="paramValue"/>
4.JSP的内置对象
**request response out session application config pageContext page exception
out**对象是类javax.servlet.jsp.JspWriter的实例,在web浏览器内输出信息
<%out.println("<h1>欢迎</h1>");%>