您可以使用JSP动作元素(action
element)<jsp:include>来于动态时期include网页,并可搭配<jsp:param>动作元素来指定参
数给被include的网页,被include的网页执行完后,response的权限会交回到要求include的网页中,使用以下这个例子来说明:
<%@page contentType="text/html; charset=Big5"%> 其中header.inc与foot.inc如下:
<html>
</body> inc.jsp内容如下:
<%@page contentType="text/html; charset=big5"%> 当以http://localhost:8080/myjsp/incDemo.jsp?user=justin请求网页时,将会传回以下的内容: <html>
<head><title>include demo</title></head> <body> justin 被请求的网页欢迎您!<br> justin 被include网页欢迎您<br> justin 被请求的网页再度欢迎您! </body> </html> 可以使用动作元素<jsp:forward>来将讯息forward至另一个网页,forward表示 response的权限将交给被forward的对象,而不再回到发出forward的网页,同样的,我们也可以搭配<jsp:param> 动作元素来于forward时指定参数给被forward的对象,例如: <jsp:forward page="fwd.jsp">
<jsp:param name="user" value="justin"/> </jsp:forward> pageContext隐含对象也具有forward()与include()方法,使用的时机是方便在Scriptlet中撰写,例如之前的范例,可以改写为以下:
<%@page contentType="text/html; charset=big5"%> 之前曾经介绍过属性对象的作用范围,其中request是在同一个客户端请求期间的作用范围,这个范围可以包括为了完成一个客户端请求所必须包括的数个页 面,例如: <%
上面这个JSP网页接收到请求之后,作一些处理之后,将结果存入request属性作用范围中,然后将结果forward至inc.jsp,其内容如下:
String name = request.getParameter("user"); // 作一些处理 request.setAttribute("user", name + "+ results"); pageContext.forward("inc.jsp"); %>
<%@page contentType="text/html; charset=Big5"%> 在这个页面中,我们由request中取出了"user"属性所对应的对象,由于是属于同一个客户所发出请求的处理范围,您是可以取得这个对象的,其显 示结果将如下: <html>
<head><title>demo</title></head> <body> justin+ results 在这边显示结果<br> </body> </html> |