美文网首页
JavaWeb-JSP常用标签

JavaWeb-JSP常用标签

作者: Tian_Peng | 来源:发表于2020-01-02 11:00 被阅读0次

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

    jsp的常用标签有以下三个

    • <jsp:include>标签
    • <jsp:forward>标签
    • <jsp:param>标签

    <jsp:include>

    <jsp:include>标签用于把另外一个资源的输出内容插入进当前JSP页面的输出内容之中,这种在JSP页面执行时的引入方式称之为动态引入。
    语法:
    <jsp:include page="relativeURL | <%=expression%>" flush="true|false" />
    page属性用于指定被引入资源的相对路径,它也可以通过执行一个表达式来获得。
    flush属性指定在插入其他资源的输出内容时,是否先将当前JSP页面的已输出的内容刷新到客户端。
    注意:<jsp:forward>标签从一个JSP文件向另一个文件传递一个包含用户请求的request对象。<jsp:forward>标签以后的代码,将不能执行。
    示例:

     <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
     <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
     <html>
        <head>
          <title>jsp的jsp:include标签测试</title>
        </head>
      
        <body>
          <%--使用jsp:include标签引入其它JSP页面--%>
          <jsp:include page="/jspfragments/head.jsp"/>
          <h1>网页主体内容</h1>
          <jsp:include page="/jspfragments/foot.jsp"/>
       </body>
     </html>
    

    运行效果:


    <jsp:include>标签与include指令的区别
    • <jsp:include>标签是动态引入, <jsp:include>标签涉及到的2个JSP页面会被翻译成2个servlet,这2个servlet的内容在执行时进行合并。
    • 而include指令是静态引入,涉及到的2个JSP页面会被翻译成一个servlet,其内容是在源文件级别进行合并。

    <jsp:forward>标签

    <jsp:forward>标签用于把请求转发给另外一个资源。
    语法:
    <jsp:forward page="relativeURL | <%=expression%>" />
    page属性用于指定请求转发到的资源的相对路径,它也可以通过执行一个表达式来获得(例如:请求一个Servlet,即请求Controller)。

    范例:使用<jsp:forward>标签跳转页面
    forwarddemo01.jsp:

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%--使用<jsp:forward>标签跳转到forwarddemo02.jsp--%>
    <jsp:forward page="/forwarddemo02.jsp"/>
    

    forwarddemo02.jsp

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <h1>跳转之后的页面!!</h1>
    

    运行效果如下:


    从页面的显示效果来看,页面已经完成了跳转,但地址栏没有变化,地址栏中显示的地址还是forwarddemo01.jsp,但页面显示的内容却是forwardemo02.jsp中的内容。因为此跳转属于服务器端跳转。只要是服务器端跳转,则地址栏永远没有变化。

    <jsp:param>标签

    当使用<jsp:include>和<jsp:forward>标签引入或将请求转发给其它资源时,可以使用<jsp:param>标签向这个资源传递参数。
    语法1:

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

    语法2:

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

    其中<jsp:param>标签的name属性用于指定参数名,value属性用于指定参数值。
    在<jsp:include>和<jsp:forward>标签中可以使用多个<jsp:param>标签来传递多个参数。

    范例1:使用<jsp:param>标签向被包含的页面传递参数
    JspIncludeTagDemo03.jsp:

     <%@ 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>
    

    Inc.jsp:

     <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
     <h1>接收从JspIncludeTagDemo03.jsp页面中传递过来的参数:</h1>
     <h2><%=request.getParameter("parm1")%></h2>
     <h2><%=request.getParameter("parm2")%></h2>
    

    在JspIncludeTagDemo03.jsp页面中使用<jsp:include>标签将Inc.jsp页面包含进来,使用<jsp:param/>标签向Inc.jsp页面传递了两个参数parm1和parm2
    JspIncludeTagDemo03.jsp页面运行结果如下:

    范例2:使用<jsp:param>标签向要跳转的页面传递参数
    forwarddemo03.jsp:

    <%@ 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>
    

    forwarddemo04.jsp:

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <h1>跳转之后的页面!!</h1>
    <h1>接收从forwarddemo03.jsp传递过来的参数:</h1>
    <h1>ref1:<%=request.getParameter("ref1")%></h1>
    <h1>ref2:<%=request.getParameter("ref2")%></h1>
    

    运行效果:

    相关文章

      网友评论

          本文标题:JavaWeb-JSP常用标签

          本文链接:https://www.haomeiwen.com/subject/xqwgoctx.html