JSP的学习二(指令)
Posted 曹军
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JSP的学习二(指令)相关的知识,希望对你有一定的参考价值。
一:page指令
1.JSP的指令
放在<%@ 指令 属性=“值”%>
主要有page,include,tablib。
2.page指令
用于定义JSP页面的各种属性,作用于是JSP的整个页面。建议,page指令放在JSP的起始位置。
language:JSP可以使用的语言。
extends:“package.class”
import: ALT+/ 导包
session:true或者false,说明当前JSP是否可以使用session。
errorPage: 当前的页面出现错误,可以跳转到errorPage后面值的页面,例如=“/error.jsp”,就会跳转到根目录下的error.jsp。同时,在错误页面error.jsp中加上下面的指令,就可以使用exception,调用API,exception.getMessage()得到出错的原因。内部是转发机制。
isErrorPage:不建议这个页面被直接访问,WEB-INF下的文件不能通过浏览器直接访问,但是可以通过请求转发去访问,所以,errorPage="/WEB-INF/error.jsp"。
contentType:指定当前页面的响应类型,实际调用的是response.setContentType("text/html ; charset=UTF-8");
pageEncoding: 指定JSP页面的字符编码,通常情况下该值和contentType中的charSet一致。
isELIgnored:页面是否可以使用EL表达式,一般为true。
3.关于isErrorPage
如果不在出错页面配置这个指令,也可以在web.xml中配置,如下:
<error-page>
<error-code>500</error-code>
<location>/WEB-INF/error.jsp</location>
<error-page>
或者:
<error-page>
<exception-type>java.lang.ArithmeticException</exception-type>
<location>/WEB-INF/error.jsp</location>
<error-page>
二:include指令
1.静态包含
#a.jsp
¥其中,file引入的文件是相对路径。
¥如果是/,则表示web应用程序的根目录,不是站点根目录,否则表示当前文件。
1 <%@ page language="java" contentType="text/html; charset=ISO-8859-1" 2 pageEncoding="ISO-8859-1"%> 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>Insert title here</title> 8 </head> 9 <body> 10 <h2>AAAAAAAAAA</h2> 11 <%@ include file="b.jsp" %> 12 </body> 13 </html>
#b.jsp
1 <%@ page language="java" contentType="text/html; charset=ISO-8859-1" 2 pageEncoding="ISO-8859-1"%> 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>Insert title here</title> 8 </head> 9 <body> 10 <h2>BBBBBBBBBBB</h2> 11 </body> 12 </html>
#结果
2.注意
在a.jsp中定义的变量,可以在b.jsp中直接使用
三:JSP标签
1.Action标签
在JSP中还提供了一种称之为Action的元素,使用这些元素可以完成各种通用的JSP页面功能。
Action采用XML元素的语法格式。
都使用jsp作为前缀,并且全部采用小写,例如,<jsp:include>
2.<jsp:include>
动态引入。
#a.jsp
1 <%@ page language="java" contentType="text/html; charset=ISO-8859-1" 2 pageEncoding="ISO-8859-1"%> 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>Insert title here</title> 8 </head> 9 <body> 10 <h2>AAAAAAAAAA</h2> 11 <%--<%@ include file="b.jsp" %> --%> 12 <jsp:include page="b.jsp"></jsp:include> 13 </body> 14 </html>
3.注意
生成两个Servlet源文件
4.<jsp:forward>
用于把请求转发给另外一个资源。
<jsp:forward page=""></...>
5.程序(相当与转发)
相当于:
<% request.getRequestDispatcher("/include/b.jsp").forward(request,response); %>
1 <%@ page language="java" contentType="text/html; charset=ISO-8859-1" 2 pageEncoding="ISO-8859-1"%> 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>Insert title here</title> 8 </head> 9 <body> 10 <h2>AAAAAAAAAA</h2> 11 <%--<%@ include file="b.jsp" %> --%> 12 <%--<jsp:include page="b.jsp"></jsp:include> --%> 13 <jsp:forward page="/include/b.jsp"></jsp:forward> 14 </body> 15 </html>
6.区别
jsp:forward可以使用jsp:param子标签,同样jsp:include也可以传递参数。
#a.jsp
1 <%@ page language="java" contentType="text/html; charset=ISO-8859-1" 2 pageEncoding="ISO-8859-1"%> 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>Insert title here</title> 8 </head> 9 <body> 10 <h2>AAAAAAAAAA</h2> 11 <%--<%@ include file="b.jsp" %> --%> 12 <%--<jsp:include page="b.jsp"></jsp:include> --%> 13 14 <jsp:forward page="/include/b.jsp"> 15 <jsp:param value="tom" name="username"/> 16 </jsp:forward> 17 </body> 18 </html>
#b.jsp
1 <%@ page language="java" contentType="text/html; charset=ISO-8859-1" 2 pageEncoding="ISO-8859-1"%> 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>Insert title here</title> 8 </head> 9 <body> 10 <h2>BBBBBBBBBBB</h2> 11 <%=request.getParameter("username") %> 12 </body> 13 </html>
#效果
以上是关于JSP的学习二(指令)的主要内容,如果未能解决你的问题,请参考以下文章