1,<jsp:include>
语法格式:
<jsp:include page="url" flush="false|true" />
top.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<img src="images/banner.JPG">
copyright.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
String copyright=" All Coypright © 2019 Hero 景易有限公司";
%>
<table style="width:778px; height:61px; border:0; cellpadding:0; cellspacing:0;
background-image:url(images/copyright.JPG);">
<tr>
<td> <%= copyright %></td>
</tr>
</table>
index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JSP的include指令</title>
</head>
<body style="margin:0px;">
<jsp:include page="top.jsp"/>
<table style="width:778px; height:279px; border:0; cellpadding:0; cellspacing:0;
background-image:url(images/center.JPG);">
<tr>
<td> </td>
</tr>
</table>
<jsp:include page="copyright.jsp"/>
</body>
</html>
结果:
<jsp:include>
与<%@ include file="xxx.jsp" %>
的区别?
// 从使用上看区别不大
<%@ include file="top.jsp" %> // 指令标识
<jsp:include page="top.jsp" /> // 动作标识
指令标识:只能静态包含加载
动作标识:包含的文件可以是动态文件, 也可以是静态文件
区别1:
include指令 用来包含文件的file属性不支持任何表达式
jsp:include page属性支持JSP表达式
区别2:
include指令 被包含的文件原封不到的插入到包含页,JSP编译器最终编译成一个Java文件
jsp:include动作标识 包含文件时,当该标识被执行时, 转发(不是重定向)到被包含的页面,输出结果到浏览器中,再返回包含页,继续前面的操作,所以JSP会编译生成多个文件
区别3:
因为区别2的原因,include指令包含文件,最终生成一个文件,所以文件之间不能有重名的变量或方法
jsp:include动作标识,每个包含文件是单独编译的,所以每个文件它们重名的变量或方法之间不相冲突
2,<jsp:forward>
作用:将请求转发到其他的Web资源(JSP页面,HMTL页面,Servlet等)
语法:
<jsp:forward page="url"/>
代码:
login_index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>中转页</title>
</head>
<body>
<jsp:forward page="login.jsp"/>
</body>
</html>
login.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>用户登录</title>
</head>
<body>
<form name="form1" method="post" action="">
用户名:<input name="name" type="text" id="name" style="width: 120px"><br>
密 码:<input name="pwd" type="password" id="pwd" style="width:120px"><br>
<br>
<input type="submit" name="submit" value="提交">
</form>
</body>
</html>
显示: 运行login_index.jsp直接转发到login.jsp页面
3,<jsp:param>
作为其它标识的子标识,可传递参数到其它目标页面
<jsp:param name="参数名" value="参数值"/>
传递多个值
<jsp:param name="参数名1" value="参数值1"/>
<jsp:param name="参数名2" value="参数值2"/>
在目标页面取值
<%
String name = request.getParameter("name");
String pwd = request.getParameter("pwd");
%>
样例:
loggin_index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>中转页</title>
</head>
<body>
<jsp:forward page="login.jsp">
<jsp:param value="liujing" name="name"/>
<jsp:param value="123456" name="pwd"/>
</jsp:forward>
</body>
</html>
login.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>用户登录</title>
</head>
<body>
<%
String name = request.getParameter("name");
String pwd = request.getParameter("pwd");
%>
传递的参数[name]:<%= name %><br>
传递的参数[pwd]:<%= pwd %>
</form>
</body>
</html>
显示