JSP基础--动作标签

JSP动作标签

1 JSP动作标签概述

动作标签的作用是用来简化Java脚本的!

JSP动作标签是JavaWeb内置的动作标签,它们是已经定义好的动作标签,我们可以拿来直接使用。

如果JSP动作标签不够用时,还可以使用自定义标签(今天不讲)。JavaWeb一共提供了20个JSP动作标签,但有很多基本没有用,这里只介绍一些有坐标的动作标签。

JSP动作标签的格式:<jsp:标签名 …>

2 <jsp:include>

<jsp:include>标签的作用是用来包含其它JSP页面的!你可能会说,前面已经学习了include指令了,它们是否相同呢?虽然它们都是用来包含其它JSP页面的,但它们的实现的级别是不同的!

include指令是在编译级别完成的包含,即把当前JSP和被包含的JSP合并成一个JSP,然后再编译成一个Servlet。

include动作标签是在运行级别完成的包含,即当前JSP和被包含的JSP都会各自生成Servlet,然后在执行当前JSP的Servlet时完成包含另一个JSP的Servlet。它与RequestDispatcher的include()方法是相同的!

hel.jsp

<body> <h1>hel.jsp</h1> <jsp:include page="lo.jsp" /> </body>

lo.jsp

<% out.println("<h1>lo.jsp</h1>"); %>

其实<jsp:include>在“真身”中不过是一句方法调用,即调用另一个Servlet而已。

3 <jsp:forward>

forward标签的作用是请求转发!forward标签的作用与RequestDispatcher#forward()方法相同。

hel.jsp

lo.jsp

<% out.println("<h1>lo.jsp</h1>"); %>

注意,最后客户端只能看到lo.jsp的输出,而看不到hel.jsp的内容。也就是说在hel.jsp中的<h1>hel.jsp</h1>是不会发送到客户端的。<jsp:forward>的作用是“别在显示我,去显示它吧!”。

4 <jsp:param>

还可以在<jsp:include>和<jsp:forward>标签中使用<jsp:param>子标签,它是用来传递参数的。下面用<jsp:include>来举例说明<jsp:param>的使用。

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>a.jsp</title> </head> <body> <h1>a.jsp</h1> <hr/> <jsp:include page="/b.jsp"> <jsp:param value="zhangSan" name="username"/>[崔1] </jsp:include> </body> </html>

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>b.jsp</title> </head> <body> <h1>b.jsp</h1> <hr/> <% String username = request.getParameter("username");[崔2] out.print("你好:" + username); %> </body> </html>


[崔1]给被包含的页面b.jsp传递参数。

[崔2]获取参数

JSP动作标签
  这些jsp的动作标签,与html提供的标签有本质的区别。
  * 动作标签是由tomcat(服务器)来解释执行!它与java代码一样,都是在服务器端执行的!
  * html由浏览器来执行!
    * <jsp:forward>:转发!它与RequestDispatcher的forward方法是一样的,一个是在Servlet中使用,一个是在jsp中使用!
    * <jsp:include>:包含:它与RequestDispatcher的include方法是一样的,一个是在Servlet中使用,一个是在jsp中使用!
      > <%@include>和<jsp:include>有什么不同!
    * <jsp:param>:它用来作为forward和include的子标签!用来给转发或包含的页面传递参数!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券