重温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.



上一篇:servlet中用注解的方式读取web.xml中的配置信息


下一篇:重温Servlet学习笔记--request对象