JSP 中的指令

JSP 中的指令有两种,一种是编译指令 ( Directive ) ,一种是动作指令 ( Action ) 。

编译指令有三种:page、include、taglib。格式是 <%@Directive attribute="value"%>

1、page

page 是用来指明页面属性和信息的,比如说要导入的包、页面内容类型、语言、Session 的开关等等。page 指令的属性有以下几种:

属性作用示例备注
language指明当前页面所使用的语言language="java"默认 java
extends指明继承的父类extends=“HttpServletRequest” 
import指明需要导入的包import="java.util" 
buffer指明缓冲区大小buffer="none"默认 8KB,无需调整
sessionSession 开关session="false"默认 true
autoFlush自动清除缓存开关autoFlush="false"默认 true
isThreadSafe线程安全开关isThreadSafe="true"默认 false,不建议设为true
info任何内容info="abcdefg" 
errorPage指明发生错误时指向的页面errorPage="error.jsp" 
isErrorPage指明此页面是否为错误页面isErrorPage="false"默认 false
contentType指明页面内容类型contentType="text/html;charset=gb2312" 
pageEncording指明页面编码pageEncording="gb2312" 

 

2、include

include 指令是用来指明引用的页面的地址的,JSP Engine 会在 JSP 程序的转换时期先把 file 属性设定的文件包含进来,然后开始执行转换及编译的工作,得到的是一个 JSP 页面。注意包含于被包含的页面要有共同的页面编码字符集,而且被包含的页面只能和包含页面共用参数。这种包含叫做静态包含。

另一种指令,动作指令的格式是: action attribute="value"/>,常用指令有:

1、include

格式为: ,和静态包含对应,这种包含叫做动态包含,JSP Engine 会在 JSP 程序转换时期分别编译包含和被包含文件,所以在 page 属性值中可以直接传入参数,如: 。不过动态包含和静态包含一样被包含页面可以使用包含页面的参数,即被包含页面的参数集合更大一些。当被包含页面与包含页面具有同名参数时,被包含页面只认定被包含页面的参数。

动态包含还可以使用标签的方式实现参数传递:

   1:  <jsp:include page="example.jsp">
   2:      <jsp:param name="value1" value="<%=v1%>"/>
   3:      <jsp:param name="value2" value="<%=v2%>"/>
   4:  
   
   jsp:include>

上面的代码将 v1 重命名为 value1、v2 重命名为 value2 传入 example.jsp。

表:<%@include file="example.jsp"%>和 的区别:

<%@inlcude file="example.jsp"%>
include编译指令是在JSP程序的转换时期就将file属性所指定的程序内容嵌入,然后再编译执行。 而include指令在转换时期是不会被编译的,只有在客户端请求时期如果被执行到才会被动态的编译载入。
只生成一个 class 文件生成多个 class 文件
file 不可以带参数page 可以带参数
被包含页面与包含页面同一个 request 对象被包含页面与包含页面不同的 request 对象,被包含页面的 request 对象可以访问包含页面的参数和自己页面的参数
常用不常用

 

2、forward

forward 是用来对页面进行转向的, forward 转向是在服务器内部完成的,浏览器并不知道页面被转向了,所以浏览器的地址栏依然是原来页面的地址。

还有一种转向时用 response.sendRedirect() 方法实现的。关于两种方法的差异,列表如下:

<%response.sendRedirect("example.jsp");%>
是不同的 request 对象,但是被转到的页面可以访问之前页面的参数。是不同的 request 对象,被转到的页面不能访问之前页面的参数。
语句后面的代码不会被执行语句后面的代码依旧会被执行
只可以转到 webapps 内部的页面,是服务器内部的转到可以转到任何页面,但是要服务器与浏览器之间多次连接,耗时
地址栏无变化地址栏有变化,变为新的地址
可以在 page 属性值里面传入参数可以在 URL 参数里面传入参数
/ 代表的是 http://127.0.0.1/directory / 代表的是 http://127.0.0.1/
常用,速度快常用,速度慢
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值