五、JSP之JSP指令与动作元素

来源:互联网 发布:高中免费听课软件 编辑:程序博客网 时间:2024/04/26 17:35

一、include指令

<%@ include file="URL"%>

在当前页面显示被包含页面的内容(源代码
在服务器工作目录中只会有一个servlet(主页面和被包含页面转换成一个servlet)


二、include动作

动作标签

<jsp:include page="URL" flush="true|false"/>

在当前页面显示被包含页面的内容(输出结果
在服务器工作目录中会有两个单独的servlet(原来的jsp和被包含的jsp)

主页面的servlet中动作标签会被解析为:
调用被包含页面得到输出结果

org.apache.jasper.runtime.JspRuntimeLibrary.include(request, response, "date.jsp", out, false);
  • page表示要包含的页面
  • flush表示被包含的页面是否从缓冲区中读取

三、include指令与include动作比较

这里写图片描述
< jsp:include >动作在请求期间被执行,而include指令在编译期页面间被执行


四、forward动作

<jsp:forward page="URL"/>

等同于:请求转发

request.getRequestDispatcher("/url").forward(request, response);

forward动作标签会被解析为:

_jspx_page_context.forward("user.jsp");

五、param动作

<jsp:param value="参数值" name="参数名"/>

添加或者覆盖原有请求中的参数。
常常与forward动作一起使用,并作为其子标签。

<jsp:forward page="user.jsp">      <jsp:param value="admin@123.net" name="email"/>      <jsp:param value="888888" name="password"/></jsp:forward>

会被解析为:

_jspx_page_context.forward("user.jsp" + "?" + org.apache.jasper.runtime.JspRuntimeLibrary.URLEncode("email", request.getCharacterEncoding())+ "=" + org.apache.jasper.runtime.JspRuntimeLibrary.URLEncode("admin@123.net", request.getCharacterEncoding()) + "&" + org.apache.jasper.runtime.JspRuntimeLibrary.URLEncode("password", request.getCharacterEncoding())+ "=" + org.apache.jasper.runtime.JspRuntimeLibrary.URLEncode("888888", request.getCharacterEncoding()));
原创粉丝点击