目录
1 forward 动作指令
<jsp:forward page=“relativeURL”/>动作的作用是实现服务器端的页面跳转,即从当前页面转发、另一个页面,可以转发到静态的 HTML 页面,也可以转发到动态的 JSP 页面,或者转发到容器中的 servlet。
语法形式一:<jsp:forward page="{relativeURL│<%=expression%>}"/>
语法形式二:<jsp:forward page="{relativeURL│<%=expression%>}"/><jsp:param name="parameterName" value="{parameterValue│<%=expression%>}"/></jsp:forward>
page 属性包含的是目标文件的相对 URL,指定了要转发的目标文件的路径。可用
<jsp:param>设置参数。
2 include 动作指令
<jsp:include>动作指令标记用于把另外一个资源的输出内容插入进当前 JSP 页面的 输出内容之中,实际上是把指定页面的 servlet 所生成的应答内容插入到本页面相应位 置。这种在 JSP 页面执行时的引入方式称之为动态引入。<jsp:include>动作指令涉及到 的
2 个 JSP 页面会被翻译成 2 个 servlet,这 2 个 servlet 的内容在执行时进行合并
。
指令格式一:<jsp:include page="{relativeURL│<%=expression%>}" flush="true"/>
指令格式二:<jsp:include page="{relativeURL│<%=expression%>}" flush="true"><jsp:param name="parameterName" value="patameterValue"/></jsp:include>
page:指定需要包含的文件的相对路径或绝对路径。
flush 属性指定在插入其他资源的输出内容时,是否先将当前 JSP 页面的已输出 的内容刷新到客户端。必须设置 flush=“true”。
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%! int num=0; %>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%@ include file="Demo3.jsp" %>
<%= num %>
</body>
</html>
输出结果:0
3 plugin 动作指令
<jsp:plugin>动作指令动态的下载服务器端的 JavaBean 或者 Java Applet 程序到客 户端的浏览器上执行。当 JSP 页面被编译并响应至浏览器执行时,<jsp:plugin>会根据浏览器的版本替<object>或<embed>标记。
plugin 的基本语法如下:<jsp:plugin 属性 1=“值 1” 属性 2=“值 2” 属性 3=“值 3”…>例如:<jsp:plugin type="applet" code="Clock.class" codebase="applet"jreversion="1.2" width="160" height="150" ><jsp:fallback> APPLET 载入出错! </jsp:fallback></jsp:plugin>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body bgcolor="white">
<h3>当前时间是:</h3>
<jsp:plugin type="applet" code="Clock2.class" codebase="applet"
jreversion="1.2" width="160" height="150">
<jsp:fallback>
Plugin supported by browser.
</jsp:fallback>
<--
当插件无法显示时给用户的提示信息。
-->
</jsp:plugin>
</body>
</html>
4 param 动作指令
<jsp:param>经常和<jsp:include>、<jsp:forward>以及<jsp:plugin>一起使用,用
于页面间的参数信息传递。
其基本语法是:<jsp:param name=“parameterName” value=“parameterValue”>其中 name 属性就是参数的名称,value 属性就是参数值。这个参数值存放在页面间 进行传递的数据。<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <%request.setCharacterEncoding("UTF-8"); %> <%="<jsp:param>测试"%> <jsp:forward page="Demo6.jsp"> <jsp:param name="username" value="大中华" /> <jsp:param name="password" value="108" /> </jsp:forward> </body> </html>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <%="<jsp:param>测试"%><br> 用户名:<%=request.getParameter("username")%><br> 用户密码:<%=request.getParameter("password")%> </body> </html>
5 相对基准地址
在 JSP 程序中,经常含有链接操作,如服务器跳转语句:<jsp:forward page= "relativeURL" >,超链接语句:<a href="relativeURL "> index <a>,以及表单:<form action="relativeURL"> 等语句中,通常提供的是相对地址用于计算目标 URL,链接的目 标文件可以是 JSP,也可以是 Servlet。这些链接地址如果使用不当,将导致无法找到目标文件。
(1)通过标记<base href="<%= basePathURL%>">设定的,即通过<base href>标记,
将本 JSP 页面中的相对基准 URL 地址设为“basePathURL”。这样固定后,本 JSP 页面中的
所有链接均以此相对基准 URL 地址为基准点,再与链接语句中的相对 URL“合成”,得到
最终的目标 URL 地址。一般的 JSP 页面通过如下语句将工程项目路径设为页面相对基准路
径。
<%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><base href="<%=basePath%>">
页面相对基准路径=“http://localhost:8080/jspweb/”,链接语句中的相对
URL="index.jsp",则最终得到的目标 URL 即为“http://localhost:808
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+
request.getServerPort()+path+"/";%>
<html>
<head> <base href="<%=basePath%>"> </head>
<body>
相对基准 URL 测试 <br>
String path =<%=path%><br>
String basePath=<%=basePath%><br>
本 JSP 程序的相对基准 URL=<%=basePath%><br>
<a href="index.jsp">访问 WebRoot 路径下的 index.jsp<a><br>
<a href="./ch04/index.html">访问\WebRoot\ch04\路径下的 index.html<a>
< /body>
</html>
0/jspweb/index.jsp”。