JSP 内置对象
本篇继前两篇内置对象,继续记录JSP中的其他的内置对象:application,page,pageContext,config,exception
application内置对象
该对象相当于JAVA中的全局静态对向,在服务器启动后,就一直存在,知道服务器关闭。
该对象中的值,在整个服务器开启期间都是所有用户共享的,因此通常用于做一些用户登录次数统计和服务相关信息的操作。
常用的方法包括:
setAttribute()
getAttribute()
getAttributeNames()
getServerInfo()
使用方式如下:
<%
application.setAttribute("name","xingoo");
application.setAttribute("age","32");
%>
name:<%=application.getAttribute("name") %><br>
application中的属性:<br><%
Enumeration attributes = application.getAttributeNames();
while(attributes.hasMoreElements()){
String name = attributes.nextElement().toString();
out.println(name+": "+application.getAttribute(name)+"<br>");
}
%><br>
JSP(servlet)引擎版本号:<%=application.getServerInfo() %>
样例代码:
<%@ page language="java" import="java.util.*,java.io.*" contentType="text/html; charset=utf-8"%>
<%--
language 脚本使用的语言
import 加载类文件
contentType 编码方式
--%>
<!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=utf-8">
<title>application内置对象</title>
</head>
<body>
<h1>application</h1>
<%
application.setAttribute("name","xingoo");
application.setAttribute("age","32");
%>
name:<%=application.getAttribute("name") %><br>
application中的属性:<br><%
Enumeration attributes = application.getAttributeNames();
while(attributes.hasMoreElements()){
String name = attributes.nextElement().toString();
out.println(name+": "+application.getAttribute(name)+"<br>");
}
%><br>
JSP(servlet)引擎版本号:<%=application.getServerInfo() %>
</body>
</html>
运行效果:
可以看到application默认保存了一些服务器相关的信息
page内置对象
page对象用于JSP页面本身的引用,相当于一个this指针。 因为JSP本身会解析成一个java类,这个page对象,就是该类的一个类对象。
常用方法就是类的基本方法:
class getClass()返回此object类
int hashCode() hash码
boolean equals(Object obj) 是否与制定的对象相等
void copy(Object obj) 拷贝
Object clone() 克隆
String toString()
void notify() 唤醒线程
void notifyAll() 唤醒所有线程
void wait(int timeout) 使一个线程处于等待直到timeout结束或被唤醒
void wait() 使一个线程处于等待直到被唤醒
比如,在页面中引用:
pageObject:<%=page.getClass() %>
可以得到如下的结果:
pageObject:class org.apache.jsp.jspPage_jsp
这是因为jsp页面,会被解析成:【JSP页面名字】_jsp.java
pageContext内置对象
这个对象很强大,通过它可以得到session,page,application,request,response等对象。
常用的方法:
JspWriter getOut()回去输出流
HttpSession getSession() 返回当前HttpSession对象
Object getPage() 返回Object对象
ServletRequest getRequest()
ServletResponse getResponse()
void setAttribute
Object getAttribute()
int getAttributeScope(String name)返回属性的作用范围
void forward(String relativeUrlPath) 使当前页面重导到另一页面
void include(String relativeUrlPath)当前位置包含另一文件
config内置对象
这个对象用于初始化Servlet时,传递一些必要的信息参数等,比如服务器的相关信息都会以ServletContext对象进行传递,通过该对象可以获得ServletContext的引用。
常用的方法:
ServketContext getServletContext()返回服务器相关信息对象
String getInitParameter(String name)返回初始化参数值
Enumeration getInitParameterNames() 返回Servlet初始化需要的参数
exception内置对象
这个对象时异常对象,如果要使用该对象,需要注意:
1 在使用界面使用 errorPage="错误处理页面.jsp" ,指定错误处理的JSP
2 在错误处理的JSP页面中,设定 isErrorPage="true"
参考样例如下:
在使用界面,指定错误处理的界面
<%@ page language="java" import="java.util.*,java.io.*" contentType="text/html; charset=utf-8"
errorPage="exception.jsp"%>
<!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=utf-8">
<title>exception内置对象</title>
</head>
<body>
<h1>JSP</h1>
<%
System.out.println(100/0);//抛出运行时异常,算术异常
%>
</body>
</html>
在错误处理界面,进行一场的捕获:
<%@ page language="java" import="java.util.*,java.io.*" contentType="text/html; charset=utf-8"
isErrorPage="true"%>
<!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=utf-8">
<title>exception内置对象</title>
</head>
<body>
<h1>JSP</h1>
异常消息是:<%=exception.getMessage() %><br>
异常字符串描述:<%=exception.toString() %><br>
</body>
</html>
可得到如下的错误信息:
- linux/scp命令报“bash: scp: command not found lost connection”错误的解决办法
- bat/cmd批处理连接SqlServer数据库查询脚本
- 一起用 HTML5 Canvas 做一个简单又骚气的粒子引擎
- 解决mstsc无法连接问题:由于没有远程桌面授权服务器可以提供许可证…
- Apache/Nginx伪静态规则匹配http://出现的问题与解决
- 微信文件微起底
- Go语言TCP Socket编程--1
- Go语言TCP Socket编程--2
- 服务器 数据库设计技巧--1
- CVE-2015-0235:Linux glibc高危漏洞的检测及修复方法
- zabbix监控在lnmp环境下编译安装小记
- 【重磅】百度开源分布式深度学习平台,挑战TensorFlow (教程)
- WordPress评论ajax动态加载,解决静态缓存下评论不更新问题
- WordPress显示访客UA信息:Show UserAgent纯代码轻度汉化版
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- VBA调用外部对象02:FileSystemObject——操作文本文件
- 打卡群刷题总结0723——组合
- VBA根据单元格底色统计个数
- 打卡群刷题总结0724——子集
- 打卡群刷题总结0726——删除排序数组中的重复项 II
- VBA调用外部对象02:FileSystemObject——OpenTextFile参数
- 使用HTTP 404-File Not Found的C2
- MySQL主从复制详解
- Excel VBA事件——ActiveX控件
- Excel VBA事件
- VBA调用外部对象02:FileSystemObject——其他函数
- 递归的理解
- Excel VBA事件——Worksheet
- 类模块——接口排序
- 窗体UserForm——命令按钮