JSP内置(动作)标签

一. JSP标签

1. 简介

(1) 虽然我们希望JSP页面仅用作数据显示模块,不要嵌套任何Java代码引入任何业务逻辑,但

在实际开发中不引入一点业务逻辑是不可能的,但引入业务逻辑会导致页面出现难看java代码,如何解决?

(2) Sun公司允许用户开发自定义标签封装页面的Java代码,以便JSP页面不出现一行Java代码。当然Sun公司在

JSP页面中也内置了一些标签(这些标签叫做JSP标签/动作),开发人员使用这些标签可以完成页面的一些常用业务

逻辑。

(3) JSP标签也称之为JSP Action(JSP动作)元素,它用于在JSP页面中提供业务逻辑功能。

2. JSP标签的作用

(1) JSP标签的作用:用于替换JSP脚本。

(2) 脚本可以完成以下内容:

① 流程判断(if ,for循环);

② 跳转页面(转发,重定向);

3. JSP标签的分类

(1) 内置标签(动作标签):不需要在JSP页面导入标签。

(2) JSTL标签(外置标签)需要在JSP页面中导入标签。

(3) 自定义标签:开发者自行定义,需要在JSP页面导入标签。

二. JSP动作标签

1. <jsp:include>标签

(1) <jsp:include>标签是包含标签,用于把另外一个资源的输出内容插入进当前JSP页面的输出内容之中,

这种在JSP页面执行时的引入方式称之为动态引入

(2) 语法:<jsp:include page="relativeURL | <%=expression%>" flush="true|false" />

① page属性用于指定被引入资源的相对路径,它也可以通过执行一个表达式来获得。

② flush属性指定在插入其他资源的输出内容时,是否先将当前JSP页面的已输出的内容刷新到客户端,默认为

false。

(3) <jsp:include>动作标签与include指令的区别

① 语法不同:

静态包含语法:<%@inclue file="被包含的页面"%>使用file属性指定被引入资源;

动态包含语法:<jsp:include page="被包含的页面">使用page属性指定被引入资源;

② 参数传递不同

静态包含不能向被包含页面传递参数,因为文件的写法是不能带参数的;

动态包含可以向被包含页面传递参数;

③ 原理不同

静态包含:先合并再翻译;include指令是静态引入,涉及到的2个JSP页面会被翻译成一个servlet,其内容是在

源文件级别进行合并

动态包含:先翻译再合并;<jsp:include>标签涉及到的2个JSP页面会被翻译成2个servlet,这2个servlet的内容

执行时进行合并。 

(4) 注意事项:

① 不管是<jsp:include>标签,还是include指令,它们都会把两个JSP页面内容合并输出,所以这两个页面不要

出现重复的HTML全局架构标签,否则输出给客户端的内容将会是一个格式混乱的HTML文档。

② <jsp:include>原理:包含与被包含的页面先各自翻译成java源文件,然后在运行时合并在一起。(先翻译再

合并),是动态包含;而指令是先合并再翻译。

2. <jsp:forward>标签

(1) <jsp:forward>标签是转发标签,用于把请求转发给另外一个资源。

(2) 语法:<jsp:forward page="relativeURL | <%=expression%>" />。

page属性用于指定请求转发到的资源的相对路径,它也可以通过执行一个表达式来获得。

3. <jsp:param>标签

(1) <jsp:param>标签是参数标签,当使用<jsp:include>和<jsp:forward>标签引入或将请求转发给其它资源

时,可以使用<jsp:param>标签向这个资源传递参数。 

(2)语法:

①语法一:

<jsp:include page="relativeURL | <%=expression%>">
	<jsp:param name="parameterName" value="parameterValue|<%= expression %>" />
</jsp:include>

②语法二:

<jsp:forward page="relativeURL | <%=expression%>">
	<jsp:param name="parameterName" value="parameterValue|<%= expression %>" />
</jsp:include>

(3) 注意事项:

<jsp:param>标签的name属性用于指定参数名,value属性用于指定参数值。在<jsp:include>和

<jsp:forward>标签中可以使用多个<jsp:param>标签来传递多个参数。 

4.实例

(1) action.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head> 
    <title>动作标签</title>  
  </head>
  
  <body>
    <%--转发 --%>
    <%
    	//request.getRequestDispatcher("/09.action2.jsp?name=eric").forward(request,response);
     %>
    <%-- 参数 --%> 
    <jsp:forward page="/09.action2.jsp">
    	<jsp:param value="jacky" name="name"/>
    	<jsp:param value="123456" name="password"/>
    </jsp:forward>
  </body>
</html>

(2) action1.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head> 
    <title>动作标签</title>  
  </head>
  
  <body>
    <%--包含 --%>
   <jsp:include page="/common/header.jsp">
   		<jsp:param value="lucy" name="name"/>
   	</jsp:include>
   <%--	<%@include file="common/header.jsp" %>  --%>
      主页的内容
  </body>
</html>

(3) action2.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head> 
    <title>动作标签</title>  
  </head>
  
  <body>
    <%=request.getParameter("name")%><br/>
    <%=request.getParameter("password")%>
  </body>
</html>

(4) 运行结果








  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

处女座的码农

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值