JSP标签页称为Jsp Action(JSP动作元素),用于在Jsp页面中提供业务逻辑功能,避免在Jsp页面中直接编写java代码,造成jsp页面难以维护。

jsp常用标签

jsp:include

jsp:forward

jsp:param

jsp:include标签

该标签用于把另外一个资源的输出内容插入当前JSP页面的输出内容之中,这种在Jsp页面中执行的时候引入的方式成为动态引入
<jsp:include page="relativeURL|<%= expression%>" flush="true|false" />
page属性用于指定被引入资源的相对路径,它也可以通过执行一个表达式来获取。
flush属性指定在插入其他资源的输出内容时,是否先将当前jsp页面的已输出的内容刷新到客户端 *************include1.jsp******************
<%@ page language="java" contentType="text/html; charset=utf-8"
   pageEncoding="utf-8"%>
<h1> 这是页面的开头</h1>

*************include2.jsp*****************
<%@ page language="java" contentType="text/html; charset=utf-8"
   pageEncoding="utf-8"%>
<h1>这是页面的结尾</h1>

************include.jsp********************
<%@ page language="java" contentType="text/html; charset=utf-8"
   pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
<jsp:include page="/WEB-INF/tag/include1.jsp"></jsp:include>
<h1>这里是页面的内容</h1>
<jsp:include page="/WEB-INF/tag/include2.jsp"></jsp:include>
</body>
</html>
<jsp:include>和include的区别
<jsp:include>标签是动态引入,jsp:include标签设置到的2个JSP页面会翻译成2个Servlet,这2个Servlet执行时合并。
而include指令是静态引入,涉及到的2个jsp页面会被翻译成一个Servlet,其内容时在源文件级别进行合并。

*****被包含的页面 **********
<%@ page language="java" contentType="text/html; charset=utf-8"
   pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
<%! int i=10; %>
<h1> DEMO页面 i:<%= i %></h1>
</body>
</html>

结果正常输出:
INCLUDE页面中i的值为:100
DEMO页面 i:10

**********使用jsp:include的指令进行动态引入,页面可以正常输出

<%@ page language="java" contentType="text/html; charset=utf-8"
   pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
<%! int i=100; %>
<h1>INCLUDE页面中i的值为:<%= i %></h1>
<jsp:include page="/WEB-INF/tag/demo.jsp"></jsp:include>
</body>
</html>

使用@include指令进行引入

<%@ page language="java" contentType="text/html; charset=utf-8"
   pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>

<body>
<%! int i=100; %>
<h1>INCLUDE页面中i的值为:<%= i %></h1>
<%@ include file="/WEB-INF/tag/demo.jsp" %>
<!-- 提示错误:Duplicate field __2F_JavaWeb_2F_WebContent_2F_WEB_2D_INF_2F_tag_2F_include_2E_jsp.i -->
</body>
</html>
*.jspf扩展文件名在jsp:include @include和c:import中的区别
JSP规范建议使用.jspf作为静态引入文件的扩展名。
jspf扩展的文件名在include到另外一个jsp文件中,发现只有用@include指令的时候,jspf文件的内容才会被解析,并执行其中的jsp指令
和tag,而使用jsp:include和JSTL的c:import都没有用,jspf文件被当做纯文本文件处理了。
******开始页面***********
<%@ page language="java" contentType="text/html; charset=utf-8"
   pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<h1>HEAD 页面</h1>
******结尾页面***********
<%@ page language="java" contentType="text/html; charset=utf-8"
   pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<h1>结尾 页面</h1>

***********使用@include可以正常输出
<%@ page language="java" contentType="text/html; charset=utf-8"
   pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
<%@ include file="/WEB-INF/tag/head.jspf" %>
<h1>INCLUDE页面</h1>
<%@ include file="/WEB-INF/tag/tail.jspf" %>
</body>
</html>
输出结果:
HEAD 页面
INCLUDE页面
结尾 页面
 <!-- 使用jsp:include 标签 -->
<%@ page language="java" contentType="text/html; charset=utf-8"
   pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
<jsp:include page="/WEB-INF/tag/head.jspf"></jsp:include>
<h1>INCLUDE页面</h1>
<jsp:include page="/WEB-INF/tag/tail.jspf"></jsp:include>
</body>
</html>
输出结果;
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
HEAD 椤甸潰
INCLUDE页面
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
缁撳熬 椤甸潰

转换后网页代码:spf文件Tomcat服务器被当作纯文本文件处理了,没有当作jsp页面来解析执行
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>

<body>
<%@ page language="java" contentType="text/html; charset=utf-8"
   pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<h1>HEAD 椤甸潰</h1>
<h1>INCLUDE页面</h1>
<%@ page language="java" contentType="text/html; charset=utf-8"
   pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<h1>缁撳熬 椤甸潰</h1>
</body>
</html>

使用表达式进行引入

<%@ page language="java" contentType="text/html; charset=utf-8"
   pageEncoding="utf-8"%>
ps: 这里在引入的时候需要注意这里的不用使用表达式来代替,想下为什么
<jsp:include page="/WEB-INF/demo/zero.jsp" flush="false"/>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
ps:使用表达式来获取资源路径信息 css/js/image等静态文件
<link rel="stylesheet" type="text/css" href="<%=request.getContextPath()%>/css/first.css"/>
</head>
<body>
<% int i=0; %>
<p>输出jsp中定义的变量i=<%=i %></p>
<p><%=request.getServletPath() %></p>
<p><%=request.getContextPath()%></p>
<%-- <jsp:include page="<%=(request.getServletPath()+"/../zero.jsp") %>" /> --%>
</body>
</html>

jsp:forward标签

 该标签用于把请求转发给另外一个资源
 <jsp:forward page="relativeURL|<%=exception%%>" />
page属性用于指定请求转发到的资源的相对路径,它可以通过执行一个表达式来获得。
<@ page language="java" import="java.util.*" pageEncoding="utf-8">
<%--使用<jsp:forward>标签跳转到forwarddemo2.jsp--%>
<jsp:forward page="/forward.jsp" />

jsp:param标签

当使用<jsp:include>和<jsp:forward>标签引入或将请求转发给其他资源时,可以使用<jsp:param>标签向这个资源传递参数
语法1:
<jsp:include page="relativeURL|<%=expression%>">
    <jsp:param name="paramterName" value="parameterValue|<%=expression%>" />
</jsp:include>
语法2:
<jsp:forward page="relativeURL|<%= expression%>" >
    <jsp:param name="parameterName" value="parameterValue|<%=expression%>" />
</jsp:foreard> <jsp:param>标签的那么属性用于指定参数名,value属性用于指定参数值。在<jsp:include>和
<jsp:forward>标签中可以使用多个<jsp:param>标签来传递多个参数。

<!-- include*jsp:param -->
<%@ page language="java" contentType="text/html; charset=utf-8"
   pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<h1>JspIncludeTagDemo03.jsp</h1>
<hr/>
<jsp:include page="/jspfragments/Inc.jsp">
    <jsp:param name="parm1" value="hello" />
    <jsp:param name="parm2" value="gacl" />
</jsp:include>

<!-- forward*jsp:param -->
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%--使用<jsp:forward>标签跳转到forwarddemo04.jsp--%>
<%--使用<jsp:param>标签向forwarddemo04.jsp传递参数--%>
<jsp:forward page="/forwarddemo04.jsp">
    <jsp:param name="ref1" value="hello" />
    <jsp:param name="ref2" value="gacl" />
</jsp:forward>

jsp jsp标签的更多相关文章

  1. JSP 标准标签库(JSTL)

    JSP 标准标签库(JSTL) JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能. JSTL支持通用的.结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签, ...

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

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

  3. JSP 自定义标签

    0 标签技术的API继承体系 1 作用 jsp自定义标签用于移除页面中的java代码 2 实现 2.1 标签处理类ViewIPTag.java package com.zsm.util; import ...

  4. jsp简单标签开发(一)

    孤傲苍狼 @Override22 public void doTag() throws JspException, IOException {23 //得到代表jsp标签体的JspFragment24 ...

  5. jsp的标签

    一.JSP标签介绍 JSP标签也称之为Jsp Action(JSP动作)元素,它用于在Jsp页面中提供业务逻辑功能,避免在JSP页面中直接编写java代码,造成jsp页面难以维护. 二.JSP常用标签 ...

  6. JavaWeb学习之JSP常用标签、EL表达式的运算符、JSTL标签库(6)

    1.JSP常用标签 * 只要支持JSP文件,常用标签有可以直接使用 * 格式: jsp:xxxx * jsp:forward ,完成jsp页面的转发 * page属性:转发的地址 <% requ ...

  7. JSP自定义标签开发入门

    一般情况下开发jsp自定义标签需要引用以下两个包 import javax.servlet.jsp.*; import javax.servlet.jsp.tagext.*; 首先我们需要大致了解开发 ...

  8. JSP动作标签

    动作标签是一种特殊的标签,它影响JSP运行时的功能. (1)include动作标签 <jsp:include page=”文件的名字” />           <%--   不可有 ...

  9. JavaBean用JSP调用和使用JSP动作标签的区别

    javabean的类可以用jsp动作标签实例化并使用. <!-- 下面这句是对Javabean类person的引用,引用的实例是p2 --> <jsp:useBean id=&quo ...

  10. jsp动作标签概述

    *Jsp动作标签概述: >动作标签的作用是用来简化java脚本 >jsp动作标签是JavaWeb内置的动作标签,它们是已经定义好的动作标签,我们可以拿来直接使用. >JavaWeb一 ...

随机推荐

  1. [noip模拟题]合理种植

    [问题描述] 大COS在氯铯石料场干了半年,受尽了劳苦,终于决定辞职.他来到表弟小cos的寒树中学,找到方克顺校长,希望寻个活干. 于是他如愿以偿接到了一个任务…… 美丽寒树中学种有许多寒树.方克顺希 ...

  2. win32 自定义右键菜单

    /**************************************************************************** 几大主要问题: 1.通过处理WM_MOUSE ...

  3. git2

    1,开源的代码管理工具 2,分布式管理工具(更安全,可以脱网操作) 3,git的分支管理更加便捷. 4,代码的传输更新速度更快 利用git可以进入多人配合代码开发.有备份.协同 sudo apt-ge ...

  4. STM32定时器的预装载寄存器与影子寄存器之间的关系【转】

    首先转载:   STM32定时器的预装载寄存器与影子寄存器之间的关系 本文的说明依据STM32参考手册(RM0008)第10版:英文:http://www.st.com/stonline/produc ...

  5. 【Maven安装】centos安装maven

    实践证明,大多数的源码都需要maven的支持编译,所以maven和jdk环境都是必须的 一.官网下载 apache-maven-3.3.9-bin.tar.gz 注意:需要jdk1.7及以上 二.上传 ...

  6. 使用InputStreamReader读入,使用OutputStreamWriter写出,将一首诗按行重写?

    https://www.processon.com/view/link/5b1a3880e4b00490ac8f5f40 改善后: (可将不管一行有几个字时的不规律的文本,按行倒写) package ...

  7. 【Coursera】Security Introduction -Eighth Week(2)

    Review -Terminology(术语): Confidentiallity & Integrity 泄密 & 欺骗 Confidentiallity: Prevent unau ...

  8. NS3 Ptr<Rocket> 与 TcpRocket 的一个小问题

    前因:ns3网络仿真 实验进行到很关键的一步,我尝试进行了代码的编写(还没有添加Traceback的函数),如下: #include "ns3/core-module.h" #in ...

  9. UVa 1606 两亲性分子

    https://vjudge.net/problem/UVA-1606 题意:平面上有n个点,每个点为白点或者黑点.现在需放置一条隔板,使得隔板一侧的白点数加上另一侧的黑点数总数最大.隔板上的点可以看 ...

  10. BZOJ 1189 【HNOI2007】 紧急疏散evacuate

    题目链接:紧急疏散 这薄脊题我代码不知不觉就写长了…… 这道题二分答案显然,然后用最大流\(check\)即可.设当前二分的答案为\(x\),那么把每扇门拆成\(x\)个点,第\(i\)个代表在第\( ...