JSP标签也称为JSP Action(JSP动作)元素,JSP动作元素在请求处理阶段起作用,它用于在JSP页面提供业务逻辑功能,避免在JSP页面中直接编写Java代码,JSP动作元素是用XML语法来写的。
JSP常用的标签有以下三个:
- <jsp:include>标签
- <jsp:forward>标签
- <jsp:param>标签
<jsp:include>动作元素用来包含静态和动态的文件。该动作把指定文件插入正在生成的页面。语法格式如下:
<jsp:include page="relativeURL | <%=expression%>" flush="true|false" />
page属性用于指定被引入资源的相对路径,它也可以通过执行一个表达式来获得。
flush属性指定在插入其他资源的输出内容时,是否先将当前JSP页面的已输出的内容刷新到客户端。
范例:使用<jsp:include>标签引入资源
<span style="font-size:18px;"><%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>jsp:include 标签测试</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<%----使用jsp:include标签引入其它jsp页面 --%>
<body>
<jsp:include page="/include1.jsp"/>
<h1>主页面</h1>
<jsp:include page="/include2.jsp"/>
</body>
</html>
</span>
运行结果:
<jsp:forward>标签:
<jsp:forward>标签用于把请求转发给另一个资源。
语法:
<jsp:forward page="relativeURL | <%=expression%>" />
page属性用于指定请求转发到的资源的相对路径,它也可以通过执行一个表达式来获得。
范例:使用<jsp:forward>标签跳转页面
forward1.jsp:
<span style="font-size:18px;"> <body>
<jsp:forward page="/forward2.jsp"/>
</body></span>
forward2.jsp:
<span style="font-size:18px;"><span style="font-size:18px;"><body>
<h1>跳转后的页面</h1>
</body>
</span></span>
运行的结果:
这里可以看出,页面已经完成了跳转,但是地址栏的中依然显示的是forward1.jsp。<jsp:forward>跳转属于服务器端的跳转。
<jsp:param>标签:
当使用<jsp:include>和<jsp:forward>标签引入或将请求转发给其它资源时,可以使用<jsp:param>标签向这个资源传递参数。
语法1:
<jsp:include page="relativeURL | <%=expression%>">
<jsp:param name="parameterName" value="parameterValue|<%= expression %>" />
</jsp:include>
语法2:
<jsp:forward page="relativeURL | <%=expression%>">
<jsp:param name="parameterName" value="parameterValue|<%= expression %>" />
</jsp:include>
<jsp:param>标签的name属性用于指定参数名,value属性用于指定参数值。在<jsp:include>和<jsp:forward>标签中可以使用多个<jsp:param>标签来传递多个参数。
范例:使用<jsp:param>标签向被包含的页面传递参数
param1.jsp:
<span style="font-size:18px;"><body>
<h1>主页面</h1>
<jsp:include page="/param2.jsp">
<jsp:param name="param1" value="hh"/>
<jsp:param name="param2" value="mm"/>
</jsp:include>
</body></span>
param2.jsp:
<span style="font-size:18px;"> <body>
<h1>接收传递过来的参数:</h1>
<h2><%=request.getParameter("param1") %></h2>
<h2><%=request.getParameter("param2") %></h2>
</body></span>
运行结果: