zoukankan      html  css  js  c++  java
  • jsp jsp标签

    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>
    
  • 相关阅读:
    解决Enterprise Library January 2006不能加密配置文件的方法
    ASP.NET Ajax 和ASP.NET 2.0 的登陆控件相冲突的问题的讨论
    十二时辰与时间对照表,十二经络时辰表
    对表中数据逐行累加
    SQL脚本 CASE...WHEN...THEN...ELSE...END 的应用
    [转]看刚毕业MM如何在北京买房
    让你的GUI程序随WINDOWS服务一起启动
    启动Oracle,SQL服务,IIS脚本
    无论买新房还是二手房 教你六招可放心收房
    经典开源项目简介及源码下载
  • 原文地址:https://www.cnblogs.com/ssgao/p/8866652.html
Copyright © 2011-2022 走看看