一: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应用程序的根目录,不是站点根目录,否则表示当前文件。

 <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!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>Insert title here</title>
</head>
<body>
<h2>AAAAAAAAAA</h2>
<%@ include file="b.jsp" %>
</body>
</html>

#b.jsp

 <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!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>Insert title here</title>
</head>
<body>
<h2>BBBBBBBBBBB</h2>
</body>
</html>

#结果

  

2.注意

  在a.jsp中定义的变量,可以在b.jsp中直接使用

三:JSP标签

1.Action标签

  在JSP中还提供了一种称之为Action的元素,使用这些元素可以完成各种通用的JSP页面功能。

  Action采用XML元素的语法格式。

  都使用jsp作为前缀,并且全部采用小写,例如,<jsp:include>

2.<jsp:include>

  动态引入。

#a.jsp

 <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!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>Insert title here</title>
</head>
<body>
<h2>AAAAAAAAAA</h2>
<%--<%@ include file="b.jsp" %> --%>
<jsp:include page="b.jsp"></jsp:include>
</body>
</html>

3.注意

  生成两个Servlet源文件

4.<jsp:forward>

  用于把请求转发给另外一个资源。

  <jsp:forward page=""></...>

5.程序(相当与转发)

  相当于:

  <% request.getRequestDispatcher("/include/b.jsp").forward(request,response); %>

 <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!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>Insert title here</title>
</head>
<body>
<h2>AAAAAAAAAA</h2>
<%--<%@ include file="b.jsp" %> --%>
<%--<jsp:include page="b.jsp"></jsp:include> --%>
<jsp:forward page="/include/b.jsp"></jsp:forward>
</body>
</html>

6.区别

  jsp:forward可以使用jsp:param子标签,同样jsp:include也可以传递参数。

#a.jsp

 <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!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>Insert title here</title>
</head>
<body>
<h2>AAAAAAAAAA</h2>
<%--<%@ include file="b.jsp" %> --%>
<%--<jsp:include page="b.jsp"></jsp:include> --%> <jsp:forward page="/include/b.jsp">
<jsp:param value="tom" name="username"/>
</jsp:forward>
</body>
</html>

#b.jsp

 <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!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>Insert title here</title>
</head>
<body>
<h2>BBBBBBBBBBB</h2>
<%=request.getParameter("username") %>
</body>
</html>

#效果

  

  

  

  

JSP的学习二(指令与标签)的更多相关文章

  1. JAVAWEB开发之Session的追踪创建和销毁、JSP具体解释(指令,标签,内置对象,动作即转发和包括)、JavaBean及内省技术以及EL表达式获取内容的使用

    Session的追踪技术 已知Session是利用cookie机制的server端技术.当client第一次訪问资源时 假设调用request.getSession() 就会在server端创建一个由 ...

  2. JSP的学习二(请求转发与 重定向)

    一: 1.介绍知识点 1). 本质区别: 请求的转发只发出了一次请求, 而重定向则发出了两次请求. 具体: ①. 请求的转发: 地址栏是初次发出请求的地址.  请求的重定向: 地址栏不再是初次发出的请 ...

  3. dubbo源码学习(二) : spring 自定义标签

    做dubbo的配置时很容易发现,dubbo有一套自己的标签,提供给开发者配置,其实每一个标签对应着一个 实体,在容器启动的时候,dubbo会对所有的配置进行解析然后将解析后的内容设置到实体里,最终du ...

  4. jsp/servlet学习二之servlet详解

    Servlet API概览 Servlet API有一下四个java包: 1,javax.servlet,其中包含定义servlet和servlet容器之间契约的类和接口. 2,javax.servl ...

  5. JSP的学习(3)——语法知识二之page指令

    本篇接上一篇<JSP的学习(2)——语法知识一>,继续来学习JSP的语法.本文主要从JSP指令中的page指令,对其各个属性进行详细的学习: JSP指令: JSP指令是为JSP引擎而设计的 ...

  6. JSP的学习(5)——语法知识三之include指令

    本篇继续来对JSP语法中的JSP指令进行学习,在<JSP的学习(3)——语法知识二之page指令>中,已经介绍了JSP指令的书写格式和page指令的详细信息,所以在这一篇中我们会对JSP指 ...

  7. JSP指令、标签以及中文乱码

    JSP指令.标签以及中文乱码 一.JSP指令简介 JSP指令(directive)是为JSP引擎而设计的,它们并不直接产生任何可见输出,而只是告诉引擎如何处理JSP页面中的其余部分. JSP指令的基本 ...

  8. 从零开始学习html(二)认识标签(第一部分)——下

    八.<blockquote>标签,长文本引用 <!DOCTYPE HTML> <html> <head> <meta http-equiv=&qu ...

  9. 从零开始学习html(二)认识标签(第一部分)——上

    一.语义化,让你的网页更好的被搜索引擎理 学习html标签过程中,主要注意两个方面的学习:标签的用途.标签在浏览器中的默认样式. 标签的用途:我们学习网页制作时,常常会听到一个词,语义化. 那么什么叫 ...

随机推荐

  1. 51 nod 1046 A^B Mod C

    1046 A^B Mod C 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题  收藏  关注 给出3个正整数A B C,求A^B Mod C.   例如,3 5 8,3^ ...

  2. SQL语句(十八)—— 存储过程

    存储过程 系统存储过程 自定义存储过程 扩展存储过程 一.创建存储过程 创建存储过程 --例1 USE SU GO Create Procedure SelProc AS Select * From ...

  3. matlab中uigetfile命令的应用

    matlab中uigetfile命令的应用 uigetfile命令的应用 此函数的用法为 [FileName,PathName,FilterIndex] = uigetfile(FilterSpec, ...

  4. redis内存模型

    前言 Redis是目前最火爆的内存数据库之一,通过在内存中读写数据,大大提高了读写速度,可以说Redis是实现网站高并发不可或缺的一部分. 我们使用Redis时,会接触Redis的5种对象类型(字符串 ...

  5. Spring Boot后台启动不打印nohup.out

    #!/bin/bashnohup java -jar websocket-server-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod --serve ...

  6. [转载]Getting Started with ASP.NET vNext and Visual Studio 14

    说在转载之前的话:ASP.NET框架之前不断做大,而vNext则是从头开始,对ASP.NET框架进行拆分并瘦身,面对不同的需求而更加灵活,各个拆分出来的模块更加轻量.vNext的出现,对ASP.NET ...

  7. linux源码安装 rpm命令

    安装dhcp为例: 挂载光盘文件到/media目录 #mount /dev/sr0 /media 打开/media目录下的Packages目录 #cd /media/Packages 查看系统是否安装 ...

  8. jquery $.post() 向php传值 实现简单的二级联动

    更多内容推荐微信公众号,欢迎关注: 1 其中selectid是一个下拉菜单的id $().ready(function () { $("#selectid").change(fun ...

  9. local variables referenced from a Lambda expression must be final or effectively final------理解

    前几天使用lamdba时,报了一个这个错,原因是在lamdba体中使用了一个变量,觉得很奇怪! 今天在读这本书的时候,又看到了这个解释,这里有了更深刻的理解,总结一下: 在jdk1.8之前在使用匿名内 ...

  10. imperva 获取gti文档

    SSH到设备(MX或GW) 以root用户身份登录MX和GW 运行“impctl support get-tech-info --last-server-archives=5 --caes-numbe ...