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>
    
  • 相关阅读:
    【leetcode】1630. Arithmetic Subarrays
    【leetcode】1629. Slowest Key
    【leetcode】1624. Largest Substring Between Two Equal Characters
    【leetcode】1620. Coordinate With Maximum Network Quality
    【leetcode】1619. Mean of Array After Removing Some Elements
    【leetcode】1609. Even Odd Tree
    【leetcode】1608. Special Array With X Elements Greater Than or Equal X
    【leetcode】1603. Design Parking System
    【leetcode】1598. Crawler Log Folder
    Java基础加强总结(三)——代理(Proxy)Java实现Ip代理池
  • 原文地址:https://www.cnblogs.com/ssgao/p/8866652.html
Copyright © 2011-2022 走看看