JSP中include动作与指令

  include指令

  JSP中有三大指令:page,include,taglib,之前已经说过了page的用法。这里介绍下include。

  使用语法如下:

<%@ include file="URL"%>

  比如有一个页面要包含另一个date.jsp页面,date.jsp提供一个时间输出:

<%@ page language="java" import="java.util.*,java.io.*" contentType="text/html; charset=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">
</head>
<body>
    <h1>include</h1>
    <%@ include file="date.jsp"%>
</body>
</html>

  包含的date.jsp如下:

<%@page import="java.text.SimpleDateFormat"%>
<%@ page language="java" contentType="text/html; charset=utf-8"
    import="java.util.*"
    pageEncoding="utf-8"%>
<%
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 hh:MM:ss");
    Date d = new Date();
    String s = sdf.format(d);
    out.println(s);
%>

  运行结果:

  查看生成的源码,可以发现,两个页面变成了一个文件:

  查看源码发现,可以更好的理解

  include动作

  使用include动作标签也可以完成上述的操作,添加标签如下:

<jsp:include page="date.jsp" flush="true" />

  可以达到上面同样的效果。

  观察发现,此时访问jsp生成了四个文件:

  观察源码可以更好的理解:

  include指令与动作的区别

  一张图很好的说明了他们的区别(来源:慕课网):

  forward动作

  forward动作是使用jsp:forwad标签实现:

<jsp:forward page="URL" />

  可以达到与request.getRequestDispatcher("/url").forward(request,response)同样的效果。

  param动作

  常常与forward标签搭配使用,传递一些参数值:

    <jsp:forward page="userForward.jsp">
        <jsp:param value="test@qq.com" name="email"/>
        <jsp:param value="666666" name="password"/>
    </jsp:forward>

  例如,登陆界面loginForward.jsp登录用户名密码,经过处理界面doLoginForward.jsp处理后,修改密码并新添加email参数后,转发给显示页面userForward.jsp。

  loginForward.jsp代码如下

<%@ page language="java" contentType="text/html; charset=utf-8"
    import="java.net.*"
    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>用户登录</title>
</head>
<body>
    <h1>loginForward</h1>
    <hr>
    <form name="loginForm" action="doLoginForward.jsp" method="post">
        <table>
            <tr>
                <td>username</td>
                <td><input type="text" name="username" ></input></td>
            </tr>
            <tr>
                <td>password</td>
                <td><input type="password" name="password" ></input></td>
            </tr>
            <tr>
                <td colspan="2" align="center"><input type="submit" value="submit"/></td>
            </tr>
        </table>
    </form>
</body>
</html>

  doLoginForward.jsp代码如下:

<%@ page language="java" contentType="text/html; charset=utf-8"
    import="java.net.*"
    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>用户登录</title>
</head>
<body>
    <h1>loginForward</h1>
    <hr>
    <jsp:forward page="userForward.jsp">
        <jsp:param value="test@qq.com" name="email"/>
        <jsp:param value="666666" name="password"/>
    </jsp:forward>
</body>
</html>

  userForward.jsp代码如下:

<%@ page language="java" contentType="text/html; charset=utf-8"
    import="java.net.*"
    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>用户登录</title>
</head>
<body>
    <h1>userForward</h1>
    <hr>
    <%
        request.setCharacterEncoding("utf-8");
        String username = "";
        String password = "";
        String email = "";

        if(request.getParameter("username")!=null){
            username = request.getParameter("username");
        }
        if(request.getParameter("password")!=null){
            password = request.getParameter("password");
        }
        if(request.getParameter("email")!=null){
            email = request.getParameter("email");
        }
    %>

    用户名:<%=username %>
    密码:<%=password %>
    邮箱:<%=email %>

</body>
</html>

 

本文转自博客园xingoo的博客,原文链接:JSP中include动作与指令,如需转载请自行联系原博主。

时间: 2024-11-08 21:23:49

JSP中include动作与指令的相关文章

JSP中include指令和动作及区别详解

先来看看语法及比较 //include_ <%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.get

JSP中include指令和include行为的区别

我们都知道在jsp中include有两种形式,分别是 < %@ include file=" "%> < jsp:include page=" " flush="true"/> 前者是指令元素.后者是行为元素.具体它们将在何处用?如何用及它们有什么区别?这应该是很多人看到它都会想到的问题.下面一起来看看吧. 通常当应用程序中所有的页面的某些部分(例如标题.页脚和导航栏)都相同的时候,我们就可以考虑用include.具体在哪

JSP中include指令和include行为的区别_JSP编程

< %@ include file=" "%> < jsp:include page=" " flush="true"/> 前者是指令元素.后者是行为元素.具体它们将在何处用?如何用及它们有什么区别?这应该是很多人看到它都会想到的问题.下面一起来看看吧. 通常当应用程序中所有的页面的某些部分(例如标题.页脚和导航栏)都相同的时候,我们就可以考虑用include.具体在哪些时候用< %@ include file=&q

utf-8-当前jsp中include 另外jsp页面时候,都加在另外的jsp页面的什么东西?

问题描述 当前jsp中include 另外jsp页面时候,都加在另外的jsp页面的什么东西? 当前jsp页面,但是最上面不包含<%@page pageEncoding="UTF-8" isELIgnored="false" session="true">,但是当前jsp中include 另外的一个jsp1页面,另外的jsp页面中包含<%@page pageEncoding="UTF-8" isELIgnore

jsp中include指令静态导入和动态导入的区别详解_JSP编程

1.什么是静态导入? 静态导入指的是,将一个外部文件嵌入到当前JSP文件中,同时解析这个页面的JSP语句,它会把目标页面的其他编译指令也包含进来.include的静态导入指令使用语法: 复制代码 代码如下: <%@include file="relativeURLSpec"%> 静态导入使用范例include1.jsp: 复制代码 代码如下: <%@ page contentType="text/html; charset=utf-8" langu

JSP中include的一个小问题

问题描述 我写了个myJSP.jsp,用它来包含另一个文件:<%@includefile="D:GameSoftTomcat6.0webappsmyTestsrccontent1.html"%>报错了,后来我把content1.html文件放在myJSP.jsp文件所在的文件夹下,把file改成file="content1.html"就可以了,请问为什么第一种写法会出错呢?我是菜鸟,希望大家不吝赐教,谢谢啦 解决方案 解决方案二:<%@includ

jsp:include 理解问题!!!!!!!!!!!!

问题描述 jsp:include 理解问题!!!!!!!!!!!! 网上不是说jsp:include是先编译在运行的吗?为什么我将数据返回主页面,jsp:include对应的页面仍然可以接受到数据,难道不应该无法显示才对嘛, 解决方案 JSP中的的问题jsp中include指令的绝对路径问题*.jspf扩展名文件在jsp:include.@include和c:import中的区别.问题和解决 解决方案二: 这个先编译指的是被包含的文件先编译,并不是说把表达式执行,只是翻译成浏览器识别的html格

JSP中的编译指令和动作指令的两点区别_JSP编程

JSP中的编译指令和动作指令的区别 1.编译指令是通知Servlet引擎的处理消息,而动作指令只是运行时的脚本动作 2.编译指令是在将JSP编译成Servlet时起作用,而动作指令可替换成JSP脚本,是JSP脚本标准化写法

jsp Servlet中脚本元素、指令和预定义变量解析

1 JSP脚本元素 JSP脚本元素用来插入Java代码,这些Java代码将出现在由当前JSP页面生成的Servlet中.脚本元素有三种格式: 表达式格式<%= expression %>:计算表达式并输出其结果. Scriptlet格式<% code %>:把代码插入到Servlet的service方法. 声明格式<%! code %>:把声明加入到Servlet类(在任何方法之外). 下面我们详细说明它们的用法. JSP表达式 JSP表达式用来把Java数据直接插入到