重温JSP学习笔记--JSP动作标签

  上一篇笔记写的是jsp的三个指令九个内置对象,这篇随笔开始写jsp的动作标签,动作标签是由服务器(Tomcat)来解释执行,与java代码一样,都是在服务器端执行的,jsp动作标签有十几多个,这里只写了比较常用的几个.

  •   <jsp:include>

    包含:与RequestDispatcher的include方法是一样的,只是一个在jsp中使用,一个在servlet中使用

  这个标签一般被叫做动态包含,原因在他在编译时,当前页面jsp与include进来的jsp会生成两个java文件,进而生成两个class文件,只是在接收到请求时把结果合并到一起,与jsp的指令<%@ include%>有很大区别,后者在编译阶段就合并成一个Java文件.和一个class文件.

  •   <jsp:forward>

    转发:与RequestDispatcher的forward方法是一样的,只是一个在jsp中使用,一个在servlet中使用,它的作用是"不要显示我了,去显示forward里边的页面吧".

  •   <jsp:param>

    传参:它可以作为以上两个标签的子标签,可以用来在两个页面中传递参数,以include标签为例,下面新建一个a.jsp:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%> <html>
<head> </head> <body>
<h1>a.jsp</h1>
<jsp:include page="b.jsp">
<jsp:param name="name" value="张三"/>
<jsp:param name="age" value="18"/>
</jsp:include>
</body>
</html>

再建一个b.jsp,只保留以下代码:

    <h1>b.jsp</h1>
<%
String name=request.getParameter("aname");
String age=request.getParameter("aage");
out.print(name+"---"+age);
%>

这样就能在b.jsp中获取到a.jsp中传递的参数,name 和 age.

上一篇:JavaBean用JSP调用和使用JSP动作标签的区别


下一篇:JSP动作标签flush属性值