5.1 包括

我还想谈谈更多的魔术指令。第一个这样的指令是include指令。它允许您在指示页面的位置插入另一个文件。这种指令的一般格式是:

<%@ include file="url"%>

您不仅可以指定文件,还可以指定另一个 jsp-servlet,甚至是 url。

例子:

    <%@ include file="header.jsp"%>

    <%
        double num = Math.random();
        if (num > 0.95) {
            out.print(num);
        }
    %>

    <%@ include file="footer.jsp"%>

例如,您可以将站点所有页面的顶部放在 header.jsp 中,将底部放在 footer.jsp 中,并将所有页面收集为构造函数。

5.2前进

还记得经典的 servlet 能够重定向转发到另一个 url 吗?在 JSP 中,这也是可能的,为此有一个特殊的操作。它的外观与您之前看到的略有不同:

 <jsp:forward page="url"/>

还有一个更高级的选项——带参数:

<jsp:forward page="url" >
    <jsp:param name="Name" value="meaning"/>
    <jsp:param name="Name" value="meaning"/>
    <jsp:param name="Name" value="meaning"/>
</jsp:forward>

例子:


<html>
   <head>
    <title>The Forward Example</title>
   </head>
   <body>
    <center>
        <h2> Forward example </h2>
        <jsp:forward page="login.jsp"/>
    </center>
   </body>
</html>

5.3 重定向

重定向没有特殊指令,但可以通过调用 Java 代码来完成。

例子:



<body>
    <%
        String redirectURL = "https://codegym.cc/";
        response.sendRedirect(redirectURL);
    %>
</body>

此示例将发送302重定向。如果您需要301重定向,则需要多写几行代码:



<body>
    <%
        response.setStatus(301);
        response.setHeader("Location", "https://codegym.cc/");
        response.setHeader("Connection", "close");
    %>
</body>