2.0JSP学习——指令元素和动作元素

指令元素:

JSP指令用来向JSP容器提供编译信息。指令并不向客户端产生任何输出,所有的指令都只在当前页面中有效。

JSP指令元素包括了3种,page指令、include指令、taglib指令。

page指令:

page指令描述了和页面相关的信息,如导入所需类包,指明输出内容类型和控制Session等。page指令一般位于JSP页面的开头部分,一个JSP页面中,page指令可以出现多次,但是每个page指令中每种属性只能出现一次,重复的属性设置将覆盖先前的设置。

属性名 说明
language 设置jsp页面使用的脚本语言,目前只能使用java
import 指定导入的java软件包或类名列表,若有多个类,中间以逗号隔开
isThreadSafe

指定JSP容器是否使用多线程的方式执行JSP程序,默认为true

pageEncoding 指定JSP文件本身的编码方式
session 指定JSP页面是否使用Session
errorPage 设定JSP页面发生异常的时重新只想的页面URL,指向的页面要把isErrorPage设为true
isErrorPage 设定此JSP页面是否是处理异常错误的页面
isELIgnored 指定JSP页码是否忽略EL表达式,默认为false
contentType 指定MIME类型和JSP页面响应时的编码方式,默认为text/html;charset=iso8859-1
buffer 指定输出流是否需要缓冲,默认是8KB,与autoFlush一起使用,确定是否自动刷新缓冲
autoFlush 如果页面缓冲区满时要自动刷新输出,则设置为true,否则,若设置为false,当页面缓冲区要满的时候,要抛出一个异常


include指令:

include指令的作用是在页面翻译期间引入另一个文件,被包含的文件可以使JSP,HTML或文本文件。

<%@include file = "test.jsp"%>

include指令包含的过程发生在将JSP翻译成Servlet时,当前JSP被包含的文件会融合形成一个Servlet,然后在进行编译运行。这个过程也被称为静态包含。

taglib指令:

taglib指令用于其他指定JSP页面所使用的标签库,通过该指令可以在JSP页面中使用标签库中的标签。

<%@taglib uri="标签库URI" prefix="标签前缀"%>

之后便可以使用标签前缀使用导入标签库的功能。

动作元素:

在JSP中可以使用XML语法格式的一些特殊标记来控制行为,称为JSP标准动作。利用JSP动作可以试想更多功能,如动态插入文件,调用JavaBean组件,重定向页面和为Java插件生成HTML代码。

<jsp:include>:

其用于在页面运行时引入一个静态或动态的页面,也称为动态包含。当容器把JSP页面翻译成一个Java文件时,并不会把JSP页面中动作指令include指定的文件与原JSP页面合并成为一个新页面,而是告诉Java解释器,这个文件在JSP运行时才会被处理。如果包含的文件时普通的文本文件,就见文件的内容发到客户端,有客户端负责显示,如果包含的文件时JSP文件,JSP容器就执行这个文件,然后将执行结果发送到客户端,有客户端显示这些结果。

<jsp:include>动作可以包含一个或几个<jsp:param>子动作,用于向要引入的页面传递数据。

<jsp:include page="test3.jsp" >
	<jsp:param value="2" name="a"/>
	<jsp:param value="2" name="b"/>
</jsp:include>

test3.jsp

<%
int a = Integer.valueOf(request.getParameter("a"));
int b = Integer.valueOf(request.getParameter("b"));
out.print(a+b);
%>
include指令元素对比include动作元素:

共同点:都是用来实现包含文件代码的复用

区别:对包含文件的处理方式和处理时间不同。

include指令元素是在翻译阶段就引入所包含的文件,被处理的文件在逻辑和语法上依赖于当前JSP页面,其优点是页面的执行速度快。

include动作元素是在JSP页面运行时才引入包含文件所产生的应答文本,被包含的文件在逻辑上和语法上独立于当前JSP页面,其优点是可以使用param 子元素更加灵活地处理所需要的文件,缺点是执行速度慢一些。

<jsp:forward>

其用于引导客户端的请求到另一个页面或另一个Servlet。并且可以携带参数。

<jsp:forward page="test2.jsp">
	<jsp:param name="name" value="abc"/>
</jsp:forward>

<jsp:useBean>

其实JSP中一个非常重要的动作,使用这个动作,JSP可以动态使用JavaBean组件来扩充JSP的功能,由于JavaBean在开发商以及<jsp:useBean>在使用上简单明了,使得JSP与其他动态网页开发技术有了本质的区别。

<jsp:useBean id="name" class="classname" scope="page|request|session|application"/>

<jsp:useBean id="name" type="typename" scope="page|request|session|application"/>

id:指的是javabean实例的变量名

class:指定javabean的类名

scope:指定javabean的作用范围

type:指定javabean对象的类型,通常在查找已存在的javabean时使用,这时使用type将不会产生新对象。

<jsp:setProperty>

用于向一个javabean的属性复制

<jsp:setProperty name="beanname" property="propertyname" value="propertyvalue"/>

<jsp:setProperty name="beanname" property="propertyname" param="parametername"/>

name:指定javabean对象名

property:指定要赋值的属性名

value:指定要为属性设置的值

param:指定请求中的参数名,并将该参数的值赋给property所指定的属性

<jsp:getProperty>

<jsp:getProperty name="beanname" property="propertyname"/>

name:指定javabean对象名

property:指定javabean中需要访问的属性名

例子:

<jsp:useBean id="person" class="com.javabean.Person" scope="page"/>
<jsp:setProperty name="person" property="name" value="zhangsan"/>
<jsp:getProperty name="person" property="name"/>

结果:

zhangsan 

猜你喜欢

转载自blog.csdn.net/smallhc/article/details/80657935