属性说明:

language – 示例:language=“java”

import  -如:  (注意多个引用之间使用逗号分开。)
<%@ page import=“java.util.*,java.sql.*”%> contentType – 指定响应结果的MIME类型。默认为text/html;charset=ISO-8859-1 session = true | false –指定jsp页面是否使用session. errorPage = url – 指定当发生异常时转发到哪一个页面。 isErrorPage = true|false, - 表示此页是处理异常的页面。 pageEncoding – 设置页面的编码方式,此编码方式,会自动应用到contentType中的charset上,如果没有设置content-Type的话。
显示时以content-Type为准。建议这两个值应该设置一个或至少应该一致。
建议设置content-Type
buffer = none | 8kb | sizeb – 设置页面缓冲区大小。-建议不要修改此值。

演示errorPage和isErrorPage属性::

指定当发生异常时转发到哪一个页面。

这个技术就是如果当前访问的servlet出现了异常错误,不会跳转到500页面去了,而是跳转到我们自己指定的页面!

在这里,我们把错误写成分母为0.

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>演示jsp中的2个属性</title>
</head> <body>
<h1>演示JSP技术中ErroPage,isErropage</h1>
<%
int a=100/0;
//除数唯0,肯定会导致异常的
%>
<br/><br>
</body>
</html>

这个我们没有设置ErroPage属性,我们来看下访问结果:

设置errorPage属性和isErrorPage属性:

index2.jsp:

<%@ page language="java"
import="java.util.*"
pageEncoding="UTF-8"
errorPage="jsps/error.jsp"
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>演示jsp中的2个属性</title>
</head> <body>
<h1>演示JSP技术中ErroPage,isErropage</h1>
<%
int a=100/0;
//除数为0,肯定会导致异常的
%>
<br/><br>
</body>
</html>

error.jsp:

<%@ page language="java"
import="java.util.*"
pageEncoding="UTF-8"
isErrorPage="true"
%>
<%--上面添加了isErrorPage属性并设置值为true,那么当前页面就可以使用exception对象,否则不能 --%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head> <body>
<h1>这是error.jsp页面</h1>
<%
out.println(exception);
%>
<br/><br>
</body>
</html>

结果页面:

自动跳转到了错误页面,又因为用了isErrorPage=”true”所以,我们也能输出错误信息、

jsp:forword:

其实这个用法很简单,我就不全部演示了,解释一下这个是干嘛的。

其实就是一个转发!!!

<h1>演示JSP技术中jsp:forward标签</h1>
<jsp:forward page="index.jsp"></jsp:forward>
<h2>因为有上面的jsp:forward,所以这些文字是不会显示的,因为页面已经转到别的地方去了。</h2>
源组件还可以通过<jsp:param/>向目标组件添加额外的参数:
<jsp:forward path=“target.jsp”>
<jsp:param name=“name1” value=“name1”/>
<jsp:param name=“name2” value=“name2”/>
</jsp:forward>
JSP通过<jsp:forward/>标签来实现请求转发。
转发的目标可以是jsp,servlet或html.
注意:之前在转请求转发时,在转发之后的代码也会被执行,而jsp源组件中<jsp:forward/>在转发以后的代码不会被执行。因为当你在写了<jsp:forward/>,翻译以后源代码如下:
if (true) {
_jspx_page_context.forward("/index.jsp");
return;
}
<jsp:forward path = url />中的url即可以以/开头也可以不以/开头,以/开头表示绝对路径。 如:
helloapp/dir1/source.jsp
helloapp/dir1/dir2/target.jsp
可以通过以下两种方式从souce.jsp转到target.jsp
<jsp:forward path=“dir2/target.jsp”/>
<jsp:forward path=“/dir1/dir2/target.jsp”/>

演示结果:

根据这个我们可以知道,客户端只请求了一次,所以,这个转发肯定是转发了request和response过去的(共享同一个)。

理解成servlet的转发就好了!

JSP---演示ErroPage、isErroPage和jsp:forword标签的更多相关文章

  1. Struts框架——(一)用Servlet + JSP演示Struts基本原理

    一. 用Servlet + JSP演示Struts基本原理 struts是开源项目.它通过采用 Java Servlet/JSP 技术,实现了基于Java EE Web应用的MVC的应用框架.Stru ...

  2. JSTL(JSP Standard Tag Library ,JSP标准标签库)

    JSTL标签之核心标签   JSTL(JSP Standard Tag Library ,JSP标准标签库)是一个实现 Web应用程序中常见的通用功能的定制标记库集,这些功能包括迭代和条件判断.数据管 ...

  3. jsp学习(2)jsp标签

    1.脚本程序 脚本程序可以包含任意量的Java语句.变量.方法或表达式,只要它们在脚本语言中是有效的. 脚本程序的语法格式:<%代码片段%>您也可以编写与其等价的XML语句,就像下面这样: ...

  4. JSP的学习二(指令与标签)

    一:page指令 1.JSP的指令 放在<%@ 指令 属性=“值”%> 主要有page,include,tablib. 2.page指令 用于定义JSP页面的各种属性,作用于是JSP的整个 ...

  5. JSP学习(五)JSP标签

    JSP标签 jsp的常用标签有: <jsp:include>标签 <jsp:forward>标签 <jsp:param>标签 <jsp:include> ...

  6. [原创]java WEB学习笔记16:JSP指令(page,include),JSP标签(forwar,include,param)

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  7. JSP学习笔记(3)——JSTL 标签库

    JSP Standard Tag Lib,名为JSP标准标签库,设计的目的主要用来方便我们将数据输出,而不是使用JSP中的语法<% %> <%= %> <%! %> ...

  8. jsp页面使用EL表达式 使用Jstl标签库中的标签,需要引入jstl.jar和standard.jar

    spring boot 中使用jstl 首先在pom中加入 <dependency> <groupId>jstl</groupId> <artifactId& ...

  9. jsp中引用的jstl 和fmt标签-详解

    JSTL 核心标签库标签共有13个,功能上分为4类: 1.表达式控制标签:out.set.remove.catch 2.流程控制标签:if.choose.when.otherwise 3.循环标签:f ...

随机推荐

  1. Python subprocess模块学习总结

    从Python 2.4开始,Python引入subprocess模块来管理子进程,以取代一些旧模块的方法:如 os.system.os.spawn*.os.popen*.popen2.*.comman ...

  2. 支持阻塞操作和轮询操作的globalfifo设备驱动代码分析以及测试代码

    #include <linux/module.h> #include <linux/types.h> #include <linux/fs.h> #include ...

  3. Git常用命令汇总

    1.初始化相关 git init 初始化仓库 git remove add origin url 添加仓库地址 git remove rm origin 删除仓库地址 git clone 克隆别人的分 ...

  4. DB天气app冲刺第五天

    今天上了软工的一节课,感觉自己前几天的方向错了,而且基本是在耗时间,因为虽然一直在努力的看书 编代码,但效果不明显.所以今天要好好想一个新的方向重新来过. 明天送上计划.

  5. Python元类实践--自己定义一个和collections中一样的namedtuple

    大家可能很熟悉在collections模块中有一个很好用的扩展数据类型-namedtuple. 如果你还不知道这个类型,那么请翻看标准手册. 我利用元类轻松定义一个namedtuple. 先把代码贴上 ...

  6. CSS content内容生成技术以及应用(转)

    一.哗啦哗啦的简介 zxx://这里“哗啦哗啦”的作用是为了渲染一种氛围.content属性早在 CSS2.1的时候就被引入了,可以使用:before以及:after伪元素生成内容.此特性目前已被大部 ...

  7. Codeforces Round #208 (Div. 2)

    A - Dima and Continuous Line 水题:直接模拟: #include<cstdio> #define maxn 1005 using namespace std; ...

  8. URAL 1119. Metro(BFS)

    点我看题目 题意  : 这个人在左下角,地铁在右上角,由很多格子组成的地图,每一条边都是一条路,每一条边都是100米.还有的可以走对角线,问你从起点到终点最短是多少. 思路 : 其实我想说一下,,,, ...

  9. 深入WSGI,并按样例实现一个

    感觉WSGI确实和SERVLET相似,为PYTHON提供了运行和管理环境.WSGI服务器和PYTHON的WEB框架一起,实现WEB响应. 步骤: 首先,服务器启动并加载一个由Web框架/应用提供的可调 ...

  10. 服务器部署_nginx报错: [warn] conflicting server name "www.test.com" on 0.0.0.0:80, ignored

    今天修改nginx配置文件nginx.conf之后,启动nginx就会报错.经仔细检查是重复配置了 server元素导致, 当nginx检测到重复的 server_name item.test.com ...