page 指令|学习笔记

简介: 快速学习 page 指令

开发者学堂课程【JSP 快速入门page 指令】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/33/detail/719


page 指令


page 指令是最为常用的指定,也是属性最多的属性!

page 指令没有必须属性,都是可选属性。

例如 <%@page %>,没有给出任何属性也是可以的!在 JSP 页面中,任何指令都可以重复出现!

<%@page language="java"%>

<%@page import="java.util.*2"%>

<%@page pageEncoding="utf-8"%>


1. page -->最复杂:

<@page language="java" info="xxx"...%>

·pageEncoding和contentType:

> pageEncoding:

它指定当前 jsp 页面的编码,只要不说谎,就不会有乱码!在服务器要把 jsp 编译成. java 时需要使用 pageEncoding!

> contentType:

它表示添加一个响应头:Content-Type!

等同与 response.setContentType("text/html;charset=utf-8");

>如果两个属性只提供一个,那么另一个的默认值为设置那一个。

>如果两个属性都没有设置,那么默认为iso

·import:导包!可以出现多次


·errorPage 和 isErrorPage

 > errorPage:当前页面如果抛出异常,那么要转发到哪一个页面,由 errorPage来指定

>isErrorPage:它指定当前页面是否为处理错误的页面!当该属性为 true 时,这个页面会设置状态码为 500!

而且这个页面可以使用 9 大内置对象中的 exception!

我们知道,在一个 ISP 页面出错后,Tomcat 会响应给用户错误信息( 500 页面)!

如果你不希望 Tomcat 给用户输出错误信息,那么可以使用 page 指令的 errorPage,来指定错误页!也就是自定义错误页面,

例如:<%@page errorPage="xxx.jsp"%>。这时,在当前 JSP 页面出现错误时,会请求转发到 xxx.jsp 页面。

a.jsp

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

<@ paga errorPage ="b.jsp"%>

<%

if(true)

throw new Exception (“哈哈~") ;

%>

b.jspe

<%@ page pageEncoding= "UTE-8"%>

<html>

<body>

<h1>出错啦!</h1>

</body>

</html>

在上面代码中,a.jsp 抛出异常后,会请求转发到 b.jsp。

在浏览器的地址栏中还是 a.jsp,因为是请求转发!

而且客户端浏览器收到的响应码为 200,表示请求成功!如果希望客户端得到500,那么需要指定 b.jsp 为错误页面。

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

< %@page isErrorPage="true"%>

·<error-page>

不只可以通过 JSP 的 page 指令来配置错误页面,还可以在 web.xml 文件中指定错误页面。

这种方式其实与 page 指令无关,但还是在这个位置适合讲解。

web.xml

<error-page>

<error-code>404</error-code>

<location>/error404.jsp</ location>

</error-page>

<error-page>

<error-code>500</error-code>

<location>/error500.jsp</ location>u</error-page>

</error-page>

<error-page>

<exception-type>jaxa.lang.RuntimeException</exception-type>

<location>/error.jsp</location>

</error-page>


<error-page> 有两种使用方式:

<error-code> 和 <location> 子元素;

<exception-type> 和 <location> 子元素;


·autoFlush 和 butter

> autoFlush:指定 jsp 的输出流缓冲区满时,是否自动刷新:默认为 true,如果为false,那么在缓冲区满时抛出异常!

>buffer:指定缓冲区大小,默认为 8kb,通常不需要修改!

Language:只能是 Java,这个属性可以看出 JSPS 最初设计时的野心!希望 JSP 可以转换成其他语言!但是,到现在 JSP 也只能转换成 Java  代码;

info : JSP 说明性信息;

isThreadSafe:默认为 false,为 true 时,JSP 生成的 Servlet,会表实现一个过时的标记接口 SingleThreadModel,这时 JSP 就只能处理单线程的访问;

session:默认为 true,表示当前 JSP 页面可以使用 session 对象,如果为 false 表示当前 JSP 页面不能使用 session 这个内置对象;

extends:指定当前 JSP 页面生成的 Servlet 去继承该属性指定的类;

相关文章
|
4月前
|
SQL 前端开发
一篇文章讲明白IPage使用大概
一篇文章讲明白IPage使用大概
58 0
|
11月前
|
小程序
小程序踩坑-appJSON["tabBar"][2]["pagePath"] "pages/test/test" 需在 pages 数组中
小程序踩坑-appJSON["tabBar"][2]["pagePath"] "pages/test/test" 需在 pages 数组中
91 0
|
12月前
|
存储 缓存 关系型数据库
【介绍一下Page页的结构】
【介绍一下Page页的结构】
|
前端开发 JavaScript 流计算
什么是前端开发领域的 Page Blink 和 Page Flicker
什么是前端开发领域的 Page Blink 和 Page Flicker
|
XML 缓存 安全
Page指令
Page指令
139 0
|
Apache
一个很有用的apache指令SetEnvIf
SetEnv 指令 说明 设置环境变量 语法 SetEnv env-variable value   SetEnvIf 指令 说明 根据客户端请求属性设置环境变量 ...
2260 0
|
Java 容器
《%@page isELIgnored="false"%》的作用
《%@page isELIgnored="false"%》的作用
331 0
《%@page isELIgnored="false"%》的作用
|
存储 缓存 算法
我们还需要Page Cache么?
作者:齐江 杨艇艇 马涛
1097 0
|
JavaScript 前端开发