编译指令是通知Servlet引擎的处理消息,而动作指令只是运行时的脚本动作;
编译指令是在将JSP编译成Servlet时起作用,而动作指令可替换成JSP脚本,是JSP脚本标准化写法。
jsp:forward执行页面转向,将请求处理转发到下一个页面。
jsp:param传递参数,必须与其他支持参数的标签一起使用。
jsp:include动态引入一个JSP 页面。
jsp:plugin下载 JAVABean 或 Applet 到客户端执行。
jsp:useBean创建一个JavaBean的实例。
jsp:setProperty设置 JavaBean 实例的属性值。
jsp:getProperty输出 JavaBean 实例的属性值。
1.forward指令
JSP1.0 时使用的语法:
<jsp:forward page="aaa.jsp"/>
JSP1.1以上规范,可使用的语法:
<jsp:forward page="aaa.jsp">
<jsp:param name="age" value="23"/>
</jsp:forward>
转向到 aaa.jsp 页面, 此页面可接收传来的 param 参数(如下:
<%= request.getParameter("age") %>
注:执行forword指令时用户请求的地址没有发生变化,页面内容被forward目标替代。
2.include指令
include 动作指令语法:
<jsp:include page="aaa.jsp" flush="true"/>或者
<jsp:include page="aaa.jsp" flush="true">
<jsp:param name="parameterName" value="parameterValue"/>
</jsp:include>
3.useBean、setProperty、getProperty 指令
<!-- 创建lee.Person的实例,该实例的实例名为p1 -->
<jsp:useBean id="p1" class="lee.Person" scope="page"/>
<!-- 设置p1的name属性值 -->
<jsp:setProperty name="p1" property="name" value="wawa"/>
<!-- 设置p1的age属性值 -->
<jsp:setProperty name="p1" property="age" value="23"/>
<!-- 输出p1的name属性值 -->
<jsp:getProperty name="p1" property="name"/><br/>
<!-- 输出p1的age属性值 -->
<jsp:getProperty name="p1" property="age"/>
或者:<% Person p1 = new Person(); // 实例化 Person 对象
pageContext.setAttribute("p1",p1); //将 p1 放置到 page 范围
p1.setName("wawa");
p1.setAge(23);%>
<!--输出p1属性-->
<%=p1.getName()%>
<%=p1.getAge()%>
4.plugin指令
主要用于下载服务器端的javaBean或applet到客户端执行,现在很少使用。
5.param指令
该指令用于设置参数值,该指令本身不能单独使用,单独的param指令没有意义,配合以下三个指令使用:jsp:include,jsp:forward,jsp:plugin