1 JSP指令
为了设置JSP页面中的一些信息,Sun公司提供了不提的JSP指令。JSP指令(directive)是为JSP引擎而设计的。它们并不直接产生任何可见输出,而只是告诉引擎如何处理JSP页面中的其余部分。
jap的三个指令:
- page指令
- include指令
- taglib指令
JSP指令的基本语法格式:<%@ 指令 属性名="值" %>。如果一个指令有多个属性,多个属性可以写在一个指令中,也可以分开写。
1.1 page指令
page指令用于定义JSP页面的各种属性,无论page指令出现在JSP页面中的什么地方,它作用的都是整个JSP页面,为了保持程序的可读性和遵循良好的编程习惯,page指令最好是放在整个JSP页面的起始位置。
语法格式:<%@ page 属性名1="值1" 属性名2="值2" ...%>
JSP指令常用的属性:
(1)language:java。指明解释该JSP文件时采用的语言,默认为java。
(2)import:任何包名和类名。指定JSP页面翻译称Servlet源文件中导入的包或类。import是唯一可以声明多次的page指令属性。一个import属性可以引用多个类,中间用(,)隔开。
可以在一条page指令的import属性中引入多个类或包,其中的每个包或类之间使用逗号(,)分隔。例如:以下互相等价
1 <%@ page import="java.util.*,java.io.*,java.sql.*"%>
1 <%@ page import="java.util.*"%> 2 <%@ page import="java.io.*" %> 3 <%@ page import="java.sql.*" %>
(3)session:true和false。指明该JSP内是否内置Session对象,如果为true,则说明内置了Session对象,可以直接使用,否则没有内置Session对象。在默认情况下,session属性值为true。
(4)isErrorPage:true和false。指定该页面是否为错误处理页面,如果为true,则该JSP内置有一个Exception对象的exception,可直接使用。在默认情况下,isErrorPage的值为false。
例如:将3.jsp页面显式声明为错误处理页面
1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8" isErrorPage="true"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 7 <title>错误信息提示</title> 8 </head> 9 <body> 10 输入有误 <%=exception.getMessage() %> //不会报错 11 </body> 12 </html>
将3.jsp页面显式声明为错误处理页面后,Jsp引擎在将jsp页面翻译成Servlet的时候,在Servlet的 _jspService方法中会声明一个exception对象,然后将运行jsp出错的异常信息存储到exception对象中。如下所示:
若没有设置isErrorPage="true",.java 文件如下:
(5)errorPage:某个JSP页面的相对路径。指定一个出错后跳转的页面,如果该JSP程序抛出一个未捕捉的异常,则转到errorPage指定的页面。errorPage指定页面的isErrorPage属性为true,且内置的exception对象为未捕捉的异常。
比如1.jsp如下:
1 <%@ page language="java" errorPage="/2.jsp" pageEncoding="UTF-8" %>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3 <html>
4 <head>
5 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
6 <title>测试page指令的errorPage属性</title>
7 </head>
8 <body>
9 This is my first JSP
10 <%
11 int x = 5/0;
12 %>
13 </body>
14 </html>
在1.jsp中,page指令的errorPage属性指明了出错后跳转到"/2.jsp",error.jsp页面代码如下:
1 <%@ page language="java" contentType="text/html; charset=UTF-8"
2 pageEncoding="UTF-8"%>
3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
4 <html>
5 <head>
6 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
7 <title>错误信息提示</title>
8 </head>
9 <body>
10 输入有误
11 </body>
12 </html>
运行结果如下:
- errorPage属性的设置值必须使用相对路径,如果以“/”开头,表示相对于当前Web应用程序的根目录(注意不是站点根目录),否则,表示相对于当前页面
- 可以在web.xml文件中使用<error-page>元素为整个Web应用程序设置错误处理页面。
- <error-page>元素有3个子元素,<error-code>、<exception-type>、<location>
- <error-code>子元素指定错误的状态码,例如:<error-code>404</error-code>
- <exception-type>子元素指定异常类的完全限定名,例如:<exception-type>java.lang.ArithmeticException</exception-type>
- <location>子元素指定以“/”开头的错误处理页面的路径,例如:<location>/ErrorPage/404Error.jsp</location>
- 如果设置了某个JSP页面的errorPage属性,那么在web.xml文件中设置的错误处理将不对该页面起作用。
例如:使用<error-page>标签配置针对404错误的处理页面
web.xml的代码下:
1 <web-app version="2.5" 2 xmlns="http://java.sun.com/xml/ns/javaee" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 5 http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> 6 <display-name></display-name> 7 <welcome-file-list> 8 <welcome-file>index.jsp</welcome-file> 9 </welcome-file-list> 10 11 <!-- 针对404错误的处理页面 --> 12 <error-page> 13 <error-code>404</error-code> 14 <location>/404Error.jsp</location> 15 </error-page> 16 </web-app>
404Error.jsp代码如下:
1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 7 <title>404错误友好提示页面</title> 8 </head> 9 <body> 10 <img alt="对不起,你要访问的页面没找到!" 11 src="${pageContext.request.contextPath}/404.jpg" /></br> 12 <!-- 对不起,你要访问的页面没找到! --> 13 3秒钟后自动跳转回首页,如果没跳转请点击<a href="${pageContext.request.contextPath}/2.jsp">这里</a> 14 </body> 15 </html>
${pageContext.request.contextPath}是JSP取得绝对路径的方法,等价于<%=request.getContextPath()%> 。
也就是取出部署的应用程序名或者是当前的项目名称
当访问一个不存在的web资源时,就会跳转到在web.xml中配置的404错误处理页面404Error.jsp,如下图所示:
(6)contentType:有效的文档类型。客户端浏览器根据该属性判断文档类型,例如,HTML格式为text/html、纯文本格式为text/plain、JPG图像为image/jpeg、GIF图像为image/gif、word文档为application/maword.
(7)pageEnCoding:当前页面。指定页面编码格式。
1.2 include指令
静态包含:把其它资源包含到当前页面中。<%@ include file="/include/header.jsp" %>:在翻译时就把两个文件合并
动态包含:<jsp:include page="/include/header.jsp"></jsp:include>:不会合并文件,当代码执行到include时,才包含另一个文件的内容。
原则:能用静的就不用动的。
1.3 taglib指令
作用:在JSP页面中导入JDTL标签库。替换jsp中java代码片段。
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
2 JSP 隐式对象
在JSP页面中,有一些对象需要频繁使用,如果每次都创建这些对象会非常麻烦,为了简化Web应用程序的开发,JSP2.0规范中提供了9个隐式(内置)对象,他们是JSP默认创建的,可以直接在JSP页面中使用。
名称 | 类型 | 描述 |
out | javax.servlet.jsp.JspWriter | 用于页面输出 |
request | javax.servlet.http.HttpServletRequest | 用于用户请求信息 |
response | javax.servlet.http.HttpServletResponse | 服务端想客户端回应信息 |
session | javax.servlet.http.HttpSession | 用于保存用户信息 |
application | javax.servlet.ServletContext | 所有用户共享信息 |
config | javax.servlet.ServletConfig | 服务器配置,可以取得初始化参数 |
pageContext | javax.servlet.jsp.PageContext | JSP页面容器 |
page | java.lang.Object | 将当前页面转换后的Servlet类实例 |
exception | java.lang.Throwable | 表示JSP页面发生的异常,仅在错误页面中能起作用 |
2.1 out对象
out对象是通过调用pageContext对象的getOut方法返回的,其作用和用法与ServletResponse.getWriter方法返回的PrintWriter对象非常相似。都是用于向客户端发送文本形式的实体内容。不同的是,out对象的类型为JspWriter,它相当于一直带缓存功能的PrintWriter。
JSP页面的out对象与Servlet引擎提供的缓冲区之间的工作关系如图:
通过out对象写入数据相当于将数据插入到JspWriter对象的缓冲去区中,只有调用了ServletResponse.getWriter()方法,缓冲区中的数据才能真正的写入到Servlet引擎所提供的缓冲区中。
只有向out对象中写入了内容,且满足如下任何一个条件时,out对象才去调用ServletResponse.getWriter方法,并通过该方法返回的PrintWriter对象将out对象的缓冲区中的内容真正写入到Servlet引擎提供的缓冲区中:
- 设置page指令的buffer属性关闭了out对象的缓存功能
- out对象的缓冲区已满
- 整个JSP页面结束
例如:
1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8" isErrorPage="true"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 7 <title>6</title> 8 </head> 9 <body> 10 <% 11 out.println("First<br/>"); 12 response.getWriter().print("second<br/>"); 13 %> 14 </body> 15 </html>
结果如下图:
尽管out.println();语句在response.getWriter().print();语句之前,在输出的内容在其后面。说明out对象通过print语句写入数据后,直到整个JSP页面结束,out对象中输入的缓冲区的数据(即First)才真正写入Servlet引擎提供的缓冲区中,而response.getWriter().print();语句则直接把内容写入Servlet引擎提供的缓冲区中。Servlet引擎按照缓冲区中的数据存放顺序输出内容。
2.2 page对象
page对象表示当前一个JSP页面,可以理解为一个对象本身,即:把一个JSP当作一个对象来看待。page对象在开发中几乎不用,了解一下即可
2.3 pageContext对象
pageContext对象是JSP技术中最重要的一个对象,它代表JSP页面的运行环境,这个对象不仅封装了对其它8大隐式对象的引用,它自身还是一个域对象(容器),可以用来保存数据。并且,这个对象还封装了web开发中经常涉及到的一些常用操作,例如引入和跳转其它资源、检索其它域对象中的属性等。
- Exception getException方法返回exception隐式对象
- Object getPage方法返回page隐式对象
- ServletRequest getRequest方法返回request隐式对象
- ServletResponse getResponse方法返回response隐式对象
- ServletConfig getServletConfig方法返回config隐式对象
- ServletContext getServletContext方法返回application隐式对象
- HttPSession getSession方法返回session隐式对象
- JspWriter getOut方法返回out隐式对象
pageContext作为域对象
pageContext对象可以作为容器来使用,因此可以将一些数据存储在pageContext对象中。
pageContext对象的常用方法
1 void setAttribute(String name,Object value,int scope) //用于设置pageContext对象的属性 2 Object getAttribute(String name,int scope) //用于获取pageContext对象的属性 3 void removeAttribute(String name,int scope) //删除指定范围内名称为name的属性 4 void removeAttribute(String name) //删除所有范围内名称为name的属性 5 Object findAttribute(String name) //从四个对象中查找名称为name的属性
scope指定属性的作用范围,pageContext对象的作用范围有四个值:
(1)pageContext.PAGE_SCOPE:表示页面范围
(2)pageContext.REQYEST_SCOPE:表示请求范围
(3)pageContext.SESSION_SCOPE:表示会话范围
(4)pageContext.APPLICATION_SCOPE:表示web应用程序范围
findAttribute方法,这个方法是用来查找各个域中的属性的,当要查找某个属性时,findAttribute方法按照查找顺序"page→request→session→application"在这四个对象中去查找,只要找到了就返回属性值,如果四个对象都没有找到要查找的属性,则返回一个null。
例如:使用pageContext的findAttribute方法查找属性值
1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8" isErrorPage="true"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 7 <title>7</title> 8 </head> 9 <body> 10 <% 11 pageContext.setAttribute("name1", "page"); 12 pageContext.setAttribute("name2", "name2_page"); 13 request.setAttribute("name2", "name2_request"); 14 session.setAttribute("name3", "name3_session"); 15 application.setAttribute("name3", "name3_application"); 16 application.setAttribute("name4", "name4_application"); 17 %> 18 <% 19 //使用pageContext的findAttribute方法查找属性,由于取得的值为Object类型,因此必须使用String强制向下转型,转换成String类型 20 //查找name1属性,按照顺序"page→request→session→application"在这四个对象中去查找 21 String refName1 = (String)pageContext.findAttribute("name1"); 22 String refName2 = (String)pageContext.findAttribute("name2"); 23 String refName3 = (String)pageContext.findAttribute("name3"); 24 String refName4 = (String)pageContext.findAttribute("name4"); 25 String refName5 = (String)pageContext.findAttribute("name5");//查找一个不存在的属性 26 %> 27 <h3>pageContext.findAttribute方法查找到的属性值:</h3> 28 <h5>pageContext对象的name1属性:<%=refName1%></h5> 29 <h5>request对象的name2属性:<%=refName2%></h5> 30 <h5>session对象的name3属性:<%=refName3%></h5> 31 <h5>application对象的name4属性:<%=refName4%></h5> 32 <h5>查找不存在的name5属性:<%=refName5%></h5> 33 <hr/> 34 </body> 35 </html>
结果:
2.4 exception对象
exception对象只有在错误处理页面才能使用,即page指令中指定了属性<%@page isErrorPage="true"%>的页面。
例如:3.jsp
1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8" isErrorPage="true" errorPage="/4.jsp"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 7 <title>3</title> 8 </head> 9 <body> 10 <%=(5/0) %> 11 </body> 12 </html>
4.jsp
1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8" isErrorPage="true"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 7 <title>3</title> 8 </head> 9 <body> 10 <%=exception.getMessage() %> 11 </body> 12 </html>
运行结果:
3 JSP动作元素
JSP动作元素用于控制JSP的行为,执行一些常用的JSP页面动作。通过动作元素可以实现使用多行javadiamante才能实现的效果。如包含页面文件和实现请求转发等。
jsp的常用标签有以下三个
- <jsp:include>标签
- <jsp:forward>标签
- <jsp:param>标签
3.1 <jsp:include>标签
在JSP页面中,为了把其他资源的输出内容插入到当前JSP页面的输出内容中,JSP技术提供了<jsp:include>动作元素。基本格式语法:
<jsp:include page="relativeURL" fluse="true|faluse" />
page属性用于指定被引入资源的相对路径,它也可以通过执行一个表达式来获得。
flush属性指定在插入其他资源的输出内容时,是否先将当前JSP页面的已输出的内容刷新到客户端。
<jsp:include>包含的原理是将被包含的页面编译处理后将页面包含在页面中。当浏览器第一次请求一个使用<jsp:include>包含其他页面的页面时,Web容器首先会编译被包含的页面,然后编译处理后返回结果包含在页面中,之后编译包含页面,最后将两个页面组合的结果回应给浏览器。
include指令和<jsp:include>标签的区别:
(1)<jsp:include>标签中要引用的资源和当前JSP页面是两个彼此独立的执行实体,即被动态引入的资源必须能够被Web容器独立执行。而include指令智能引入遵循JSP格式的文件,被引入的文件与当前JSP文件需要共同合并才能翻译成一个Servlet源文件。
(2)<jsp:include>标签中引入的资源在运行时才包含的,而且只包含运行结果。而include指令令引入的资源在编译时包含的,包含的是源代码。
(3)<jsp:include>标签运行原理与RequestDisoatcher.include()方法类似,即被包含的页面不能改变响应状态码或者设置响应头,而include指令没有这方面的限制。
示例1: 使用jsp:include标签引入其它JSP页面,8.jsp页面中插入insert1.jsp
8.jsp
1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8" %> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 7 <title>8</title> 8 </head> 9 <body> 10 网页主体内容:jsp:include<br/> 11 <jsp:include page="/insert1.jsp"/> 12 </body> 13 </html>
insert1.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" 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=ISO-8859-1"> <title>6</title> </head> <body> <%--使用jsp:include标签引入其它JSP页面--%> 使用jsp:include标签引入其它JSP页面 </body> </html>
编译时会分别产生.class文件:
_8_.java
insert1.java
运行结果:
示例2: 使用include指令引入其它JSP页面,9.jsp页面中插入insert2.jsp
9.jsp
1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8" %> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 7 <title>9</title> 8 </head> 9 <body> 10 网页主体内容:include指令<br/> 11 <%@include file="/insert2.jsp"%> 12 </body> 13 </html>
insert2.jsp
1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8" isErrorPage="true"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 7 <title>6</title> 8 </head> 9 <body> 10 <%--使用include指令引入其它JSP页面--%> 11 使用include指令引入其它JSP页面 12 </body> 13 </html>
编译时仅产生一个.class文件:
_9_.java
运行结果:
3.2 <jsp:forward>标签
<jsp:forward>动作元素将当前请求转发到其他Web资源(HTML页面,JSP页面和Servlet页面),在执行请求转发后的当前页面不再执行,而是执行该元素指定的目标页面。基本语法格式:
<jsp:forward page="relativeURL | <%=expression%>" />
page属性用于指定请求转发到的资源的相对路径,它也可以通过执行一个表达式来获得。
示例:使用<jsp:forward>标签跳转页面。10.jsp跳转至11.jsp
10.jsp
1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8" %> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 7 <title>10</title> 8 </head> 9 <body> 10 网页主体内容:jsp:forward<br/> 11 <jsp:forward page="/11.jsp" /> 12 </body> 13 </html>
11.jsp
1 <%@page import="java.util.Date"%> 2 <%@ page language="java" contentType="text/html; charset=UTF-8" 3 pageEncoding="UTF-8" %> 4 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 5 <html> 6 <head> 7 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 8 <title>11</title> 9 </head> 10 <body> 11 跳转访问时间: 12 <% 13 out.print(new Date()); 14 %> 15 </body> 16 </html>
运行结果:
从页面的显示效果来看,页面已经完成了跳转,但地址栏没有变化,地址栏中显示的地址还是10.jsp,但页面显示的内容却是11.jsp中的内容。因为此跳转属于服务器端跳转。只要是服务器端跳转,则地址栏永远没有变化。
3.3 <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:foeward>
<jsp:param>标签的name属性用于指定参数名,value属性用于指定参数值。在<jsp:include>和<jsp:forward>标签中可以使用多个<jsp:param>标签来传递多个参数。
示例:使用<jsp:param>标签向被包含的页面传递参数
1.使用语法1,12.jap包含13.jsp
12.jap
1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8" %> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 7 <title>12</title> 8 </head> 9 <body> 10 <jsp:include page="/13.jsp"> 11 <jsp:param name="parm1" value="beautiful" /> 12 <jsp:param name="parm2" value="girl" /> 13 </jsp:include> 14 </body> 15 </html>
13.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" 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=ISO-8859-1"> <title>13</title> </head> <body> 接收从12.jsp页面中传递过来的参数:<br/> <%=request.getParameter("parm1")%> <%=request.getParameter("parm2")%> </body> </html>
运行结果:
2.使用语法2,14.jap包含15.jsp
14.jap
1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8" %> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 7 <title>14</title> 8 </head> 9 <body> 10 <jsp:forward page="/15.jsp"> 11 <jsp:param name="parm1" value="cool" /> 12 <jsp:param name="parm2" value="boy" /> 13 </jsp:forward> 14 </body> 15 </html>
15.jsp
1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8" %> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 7 <title>15</title> 8 </head> 9 <body> 10 接收从14.jsp页面中传递过来的参数:<br/> 11 <%=request.getParameter("parm1")%> 12 <%=request.getParameter("parm2")%> 13 </body> 14 </html>
运行结果
参考:
https://www.cnblogs.com/xdp-gacl/p/3778993.html2018-10-06
https://www.cnblogs.com/xdp-gacl/p/3779872.html
https://www.cnblogs.com/xdp-gacl/p/3788369.html
2018-10-06 11:25:48