JSP基础——JSP的7个动作指令

前言:编译指令是通知Servlet引擎的处理消息,而动作指令只是运行时的动作。

JSP动作指令主要有如下7个。

  • jsp:forward:执行页面转向,将请求的处理转发到下一个页面。
  • jsp:param:用于传递参数,必须与其他支持参数的标签一起使用。
  • jsp:include:用于动态引入一个JSP页面。
  • jsp:plugin:用于下载JavaBean或Applet到客户端执行。
  • jsp:useBean:创建一个JavaBean的实例。
  • jsp:setProperty:设置JavaBean实例的属性值。
  • jsp:getProperty:输出JavaBean实例的属性值。
1. forward指令
<jsp:forward page="{relativeURL|<%=expression%>}">
   {<jsp:param.../>}
</jsp:forward>
转发参数请求
<jsp:forward page="forward-result.jsp">
<jsp:param name="age" value="29"/>
</jsp:forward>

结果页获取参数值
<%=request.getParameter("age")%》

执行forward指令转发请求时,客户端的请求参数不会丢失。

2. include指令
include指令是一个动态include指令,也用于包含某个页面,他不会导入被include页面的编译指令,仅仅将被导入页面的body内容插入本页面。
<jsp:include page="{relativeURL|<%=expression%>}" flush="true">
   <jsp:param name="parameterName" value="parameterValue"/>
</jsp:include>

动态导入只是使用一个include方法来插入目标页面的内容,而不是将目标页面完全融入本页面中。
静态导入和动态导入有如下区别:
  1. 静态导入是将被导入页面的代码完全融入,两个页面融合成一个整体Servlet;而动态导入则在Servlet中使用include方法来导入被导入页面的内容。
  2. 静态导入时被导入页面的编译指令会起作用;而动态导入时被导入页面的编译指令则失去作用,只是插入被导入页面的body内容
  3. 动态包含还可以增加额外的参数。同forward指令
forward指令和include指令十分相似,他们的区别在于:执行forward时,被forward的页面将完全代替原有页面;而执行include时,被include的页面只是插入原有页面。简而言之,forward那不表页面代替原有页面,而include则拿目标页面插入原有页面。

3. useBean、setProperty、getProperty指令
这三个指令都是与JavaBean相关的指令,其中useBean指令用于在JSP页面中初始化一个Java实例;setProperty指令用于为JavaBean实例的属性设置值;getProperty指令用于输出JavaBean实例的属性。
<jsp:useBean id="name" class="classname" scope="page|request|session|application"/>
其中id属性是JavaBean的实例名,class属性确定JavaBean的实现类。scope属性用于指定JavaBean实例的作用范围,该范围有以下4个值。
  • page:该JavaBean实例仅在该页面有效。
  • request:该JavaBean实例在本次请求有效。
  • session:该JavaBean实例在本次session内有效。
  • application:该JavaBean实例在本应用内一直有效。

setProperty语法如下
<jsp:setProperty name="BeanName" property="propertyName" value="value"/>
gerProperty语法如下
<jsp:getProperty name="BeanName" property="propertyName"/>


<@ page contentType="text/html; charset=GBK" language="java" errorPage="" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Java Bean测试</title>
</head>
<body>
<!-- 创建Person的实例,该实力的实例名为p1-->
<jsp:useBean id="p1" class="Person" scope="page"/>
<!-- 设置p1的name属性值 -->
<jsp:setProperty name="p1" property="name" value="XYB"/>
<!-- 输出p1的name属性值 -->
<jsp:getProperty name="p1" property="name"/>
</body>
</html>

注:Person类省略,Person类中有name字段和setName() getName()方法

以上代码还可以如下表示

<@ page contentType="text/html; charset=GBK" language="java" errorPage="" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Java Bean测试</title>
</head>
<body>
<%
//实例化JavaBean实例,实现类为Person,该实例的实例名为p1
Person p1=new Person();
//将p1放入page范围中
pageContext.setAttribute("p1",p1);
//设置p1的name属性值
p1.setName("wawa");
%>
<!-- 输出p1的name属性值 -->
<%=p1.getName()%>
</body>
</html>


//将p1放入page的生存范围内
pageContext.setAttribute("p1",p1);
//将p1放入request的生存范围内
request.setAttribute("p1",p1);
//将p1放入session的生存范围内
session.setAttribute("p1",p1);
//将p1放入application的生存范围中
application.setAttribute("p1",p1);


4. plugin指令

plugin指令主要用于下载服务器端的JavaBean或Applet到客户端执行

5. param指令

param指令必须与以下三个指令结合使用

  • jsp:include
  • jsp:forward
  • jsp:plugin
当与include指令结合使用时,param指令用于将参数值传入被导入的页面;当与forward指令结合使用时,param指令用于将参数值传入被转向的页面;当与plugin指令结合使用时,则用于将参数传入页面中的JavaBean实例或Applet实例。
语法格式参考前面的示例。


  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值