JSP中的动作标签

目录

0.码仙励志

1.JSP动作标签概述

2.jsp:include

3.jsp:forward

4.jsp:param


0.码仙励志

人生如棋,我愿为卒,行动虽慢,可何曾后退过一步

1.JSP动作标签概述

  1. 动作标签的作用是用来简化Java脚本的!
  2. JSP动作标签是JavaWeb内置的动作标签,它们是已经定义好的动作标签,我们可以拿来直接使用。
  3. 如果JSP动作标签不够用时,还可以使用自定义标签。JavaWeb一共提供了20个JSP动作标签,但有很多基本没有用,这里只介绍一些有坐标的动作标签。
  4. JSP动作标签的格式:<jsp:标签名 …>

2.jsp:include

  1. <jsp:include>标签的作用是用来包含其它JSP页面的!你可能会说,有include指令不就行了吗?虽然它们都是用来包含其它JSP页面的,但它们的实现的级别是不同的!
  2. include指令是在编译级别完成的包含,即把当前JSP和被包含的JSP合并成一个JSP,然后再编译成一个Servlet。
  3. 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中的动作标签

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

3.jsp:forward

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

hel.jsp

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

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>的使用。

a.jsp

<%@ 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"/> 
	</jsp:include>
</body>
</html>

b.jsp

<%@ 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"); 
		out.print("你好:" + username);
	%>
  </body>
</html>