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>
JSP中include动作与指令的更多相关文章
- 浅谈JSP中include指令与include动作标识的区别
JSP中主要包含三大指令,分别是page,include,taglib.本篇主要提及include指令. include指令使用格式:<%@ include file="文件的绝对路径 ...
- 转: JSP中include指令和include动作的区别
include指令是编译阶段的指令,即include所包含的文件的内容是编译的时候插入到JSP文件中,JSP引擎在判断JSP页面未被修改,否则视为已被修改.由于被包含的文件是在编译时才插入的,因此如果 ...
- [JSP]JSP中include指令和include动作的差别
include指令是编译阶段的指令,即include所包括的文件的内容是编译的时候插入到JSP文件里,JSP引擎在推断JSP页面未被改动,否则视为已被改动. 因为被包括的文件是在编译时才插入的.因此假 ...
- 牛客网Java刷题知识点之什么是JSP的3大常用指令、JSP的6大哪些动作、JSP中include指令和include动作有什么区别
不多说,直接上干货! JSP的3大常用指令 包含指令(Include directive):用来包含文件和合并文件内容到当前的页面. 页面指令(Page directive):用来定义JSP页面中特定 ...
- jsp中的动作标签
和html标签一样,使用尖括号'<>'包裹起来. 用于在jsp页面中处理业务逻辑,避免在jsp中过多的使用java脚本. <jsp:forward>用于请求转发,它与Reque ...
- JAVA基础之sql模糊匹配、外键以及jsp中include的用法
一.SQL模糊匹配 适用于对字符串进行模糊搜索 格式: 字段名 Like '%关键词%' % 表示这个位置可有任意个字符(没有也可以) %关键词% 只要包含关键词就算 ...
- JSP中include指令和include动作区别
首先 <%@ include file=” ”%>:为指令元素 <jsp:include page=” ” flush=”true”/>:为 动作元素 先说指令元素: incl ...
- JSP中include指令和include动作浅析
一. JSP工作原理 JSP文件是一种Servlet,其工作方式是先部署源代码后编译为.class文件.JSP会在客户端第一次请求JSP文件时被编译成Servlet,由Servlet处理客户端的请求. ...
- 【jsp】jsp中的动作元素
一,动作元素(Action):预定义的java代码.目的在于代码的可重用性. 1,为请求阶段提供信息,允许在页面之间转移控制权. 2,JSP2.0规范定义了标准动作,标准动作是一些标签,影响JSP运 ...
随机推荐
- Codeforces - 527C 平衡树维护几何
题意:给定一个矩形\(W*H\),一共\(n\)次切割操作(水平/垂直),求每次操作后得出的最大面积 随机按tag扫CF题目找到的题,可以分别用平衡树维护割边的位置和长度(\(x/y\)各两个) 具体 ...
- SGU - 507 启发式合并维护平衡树信息
题意:给定一颗树,每个叶子节点\(u\)都有权值\(val[u]\),求每个非叶子节点子树的最小叶子距离,若该子树只有一个叶子节点,输出INF 貌似本来是一道树分治(并不会)的题目,然而可以利用平衡树 ...
- Hibernate Annotation
[转自] http://blog.sina.com.cn/s/blog_7ebc1b7e0100w58e.html Table Table用来定义entity主表的name,catalog,schem ...
- aoj0033
一.题意:有十个数,判断是否能分成两个递增序列 二.思路: 1.dfs:每个数判断在左边或者右边,遍历所有情况. 2.贪心:在保证递增序的前提下,判断一个数放左边或者右边,决定于其更接近于哪一边最上面 ...
- Docker镜像命名解析
镜像是Docker最核心的技术之一,也是应用发布的标准格式. 无论你是用docker pull image,或者是在Dockerfile里面写FROM image, 从Docker官方Registry ...
- (转)shell脚本之文件测试操作符及整数比较符
shell脚本之文件测试操作符及整数比较符 原文:http://www.cnblogs.com/Steward-Xu/p/6722592.html 一.文件测试操作符: 在书写测试表达式是,可以使用一 ...
- 牛客网Java刷题知识点之UDP协议是否支持HTTP和HTTPS协议?为什么?TCP协议支持吗?
不多说,直接上干货! 福利 => 每天都推送 欢迎大家,关注微信扫码并加入我的4个微信公众号: 大数据躺过的坑 Java从入门到架构师 人工智能躺过的坑 ...
- 这真的该用try-catch吗?
前言 我有个技能,就是把“我”说的听起来特别像“老子”. 以前是小喽啰的时候,会跟领导说“我!不加班.”,听起来就像“老子不加班!”一样.到最后发现,我确实没有把计划内的工作拖到需要加班才能完成,这个 ...
- pat09-散列1. Hashing (25)
09-散列1. Hashing (25) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue The task of ...
- JS常用的设计模式(2)——简单工厂模式
简单工厂模式是由一个方法来决定到底要创建哪个类的实例, 而这些实例经常都拥有相同的接口. 这种模式主要用在所实例化的类型在编译期并不能确定, 而是在执行期决定的情况. 说的通俗点,就像公司茶水间的饮料 ...