isErrorPage 设置此jsp网页是否为错误处理页面。默认值为false。当设置为true时,jsp页面将可存取隐含的exception对象,并通过该对象取得从发生错误之网页所传出的错误信息。取得错误信息的语法如下: <% =exception.getMessage()%> pageEncoding 页面编码格式 isELIgnoredjava.lang.ArithmeticException 404 /errors/error.jsp
是否忽略EL表达式,默认false
2. include指令将相应的内容直接包含进去,即将当前JSP页面和所包含的JSP页面组合在一起,只生成一个servlet。
include指令与<jsp:include>动作的区别 include指令的使用方法:(静态包含,编译时包含) <%@ include file="include.jsp"%> <jsp:include>动作的使用方法:(动态包含,运行时包含) <jsp:include page="/include.jsp" /> 等价于: contextPage.include("/include.jsp"); 等价于: request.getRequestDispacher("/include.jsp").include(request,response); 本质区别在方法的实现上: include指令是将相应的内容直接包含进去,即将当前JSP页面和所包含的JSP页面组合在一起,只生成一个servlet。 <jsp:include>动作是通过调用 org.apache.jasper.runtime.JspRuntimeLibrary.include(request, response, "include.jsp", out, false);来实现。它是将当前JSP页面和所包含的JSP页面分别生成相应的servlet,在访问页面的时候再进行包含。 开发过程中,最好使用静态包含3. taglib指令
<c:foreach varStatus="statu" > 这样会生成一个statu对象,并有一个count属性,代表当前迭代的次数,${ statu.count }
<c:url var="newurl" value="/webappName/1.html" >将url重写,在用户禁用cookie时在url后面缀上JSESSIONID参数,${newurl} 不指定var时,直接将重写后的url输出(重写时url前会加上/webappName) 标签体之间可通过<c:param>给url添加参数,值为中文时自动进行编码
二,脚本元素
- 声明<%! %> 对应的代码被原样放到Servlet类的service方法外部,所以可以写Servlet类对应的静态代码块,成员变量,方法
- 脚本片断<% %> 对应的代码被原样放到Servlet类的service方法内部,可以使用九大隐式对象
- 脚本表达式<%= %> 对应的变更被通过out.write()代码输出到service方法内部
- 注释<%-- --%> JSP注释,里面的内容会被忽略,不作任何处理
三. 动作元素
1.<jsp:param>2.<jsp:include>3.<jsp:forward>4.<jsp:plugin>5.<jsp:useBean>6.<jsp:setProperty>7.<jsp:getProperty>
1. <jsp:param> <jsp:param>动作用于传递参数,必须配合<jsp:include>、<jsp:forward>、<jsp:plugin>动作一起使用。 语法格式: <jsp:param name="name1" value="value1"/>2. <jsp:include> <jsp:include>动作用于动态加载HTML页面或者JSP页面。 语法格式: <jsp:include page="网页路径"> <jsp:param name="name1" value="value1"/> <jsp:param name="name2" value="value2"/> <jsp:include/> 在jsp页面中,可以利用下面的语法取得返回的参数: request.getParameter("name1"); 若不传递参数时,则语法格式如下: <jsp:include page="网页路径"/> 举例: a.jsp页面代码如下: <jsp:include page = "b.jsp"> <jsp:param name="name1" value="value1"/> <jsp:param name="name2" value="value2"/> </jsp:include> b.jsp页面代码如下: 名字1:<%=request.getParameter("name1")%> 名字2:<%=request.getParameter("name2")%> “include标准动作”和“include指令”的差别在于: “include标准动作”包含的页面在运行时被加入,一般叫静态包含 “include指令”在编译时就被加入了,一般叫动态包含3. <jsp:forward> <jsp:forward>动作用于将浏览器显示的页面导向到另一个HTML页面或者jsp页面。 语法格式: <jsp:forward page="网页路径"/> 当然,<jsp:forward>动作中也可以加入<jsp:param>参数,其设置和获得参数的方法与<jsp:include>类似。4. <jsp:plugin> <jsp:plugin>动作用于加载applet,用途与HTML语法中的<Applet>及<Object>标记相同。该动作是在客户端执行的5.<jsp:useBean> <jsp:useBean id="beanName" scope="有效范围" class="Bean类位置" /> 此标签在解析时,会先从4个作用域中查找beanName属性,看是否存在,有就直接用,没有就实例化一个新的class <jsp:useBean>aaaaa</jsp:useBean>标签体中的aaaaa,只有在实例化class时才会执行被打印出来,如果bean已经实例化成功,是从4个作用域中查找得到的,标签体中的内容就不会再被执行6.<jsp:serProperty> <jsp:setProperty name="名称" property="属性" value="值" /> <jsp:setProperty name="名称" property="属性" param="paramName" />把参数paramName的值来设置指定的属性,只支持8种基本类型数据<jsp:setProperty name="名称" property="*" /> 当property指定为*时,代表使用请求参数为bean对象的所有参数自动赋值7.<jsp:getProperty> <jsp:getProperty name="名称" property="属性" />如果bean属性为null,通过getProperty得到将是字符串null,而不是空