目录
一、out对象
1、概念
(1)out对象的作用主要是向浏览器输出数据,也可以通过out对象对缓冲区进行操作
(2)JSP程序利用out对象将网页内容输出时,都要和客户端做一次连接,为了节省资源,jsp设置一个缓冲区,输出内容先存放于此,等到满时再一次性将内容发送往客户端
(3)除了直接使用内置对象以外,还可以使用pageContext.getOut()方法获取out对象
(4)out对象被封装成javax.servlet.JspWriter接口,out对象的作用域是page(html都属于out)
2、常用方法
序号 | 方法名 | 方法功能 |
---|---|---|
1 | print() | 输出各种类型数据 |
2 | println() | 输出各种类型数据并换行 |
3 | newLine() | 输出一个换行符 |
4 | close() | 关闭输出流 |
5 | flush() | 输出缓冲区里的数据 |
6 | clearBuffer() | 清除缓冲区里的数据,并把数据写到客户端 |
7 | clear() | 清除缓冲区里的数据,但不写到客户端 |
8 | getBufferSize() | 获得缓冲区的大小 |
9 | getRemaining() | 获得缓冲区剩余空间的大小 |
10 | isAutoFlush() | 判断缓冲区是否自动刷新 |
(1)out.println()用于分行显示各种类型的数据,相当于print()加上newLine(),也与“<%=%>”等价
(2)对缓冲区进行操作时
①clear()清空缓冲区中的内容,如果缓冲区中的数已经被刷新到客户端,则会引发IO异常
②clearBuffer()清空缓冲区中的内容,即使缓冲区中的数已经被刷新到客户端,也不会引发IO异常
3、代码例子
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!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>out对象应用实例</title>
</head>
<body>
<%
out.println("out对象应用实例:<br><hr>");
out.println("<br>输出布尔型数据:");
out.println(true);
out.println("<br>输出字符型数据:");
out.println('l');
out.println("<br>输出字符数组数据:");
out.println(new char[]{'l','z','c'});
out.println("<br>输出双精度数据:");
out.println(5.66d);
out.println("<br>输出单精度数据:");
out.println(36.8f);
out.println("<br>输出整型数据:");
out.println(8);
out.println("<br>输出长整型数据:");
out.println(123456789123456L);
out.println("<br>输出对象:");
out.println(new java.util.Date());
out.println("<br>输出字符串:");
out.println("liuzc@hnrpc");
out.println("<br>输出新行:");
out.newLine();
out.println("<br>缓冲区大小:");
out.println(out.getBufferSize());
out.println("<br>缓冲区剩余大小:");
out.println(out.getRemaining());
out.println("<br>是否自动刷新:");
out.println(out.isAutoFlush());
out.flush();
out.println("<br>调用out.flush()");
out.close();/* out.close()后面的代码不再输出到浏览器 */
out.println(5.66d);
%>
</body>
</html>
二、request对象
1、概念
(1)request是一个javax.servlet.http.HttpServletRequest对象,封装了浏览器的请求信息
(2)通过request对象可以获取用户的请求信息
(3)request也提供获取cookie、header和session等对象的数据的方法
(4)请求信息的内容包括请求的头部信息(Header)、系统信息(编码方式)、请求的方式(GET、POST)、请求的参数名称和参数值等信息
2、request对象的常用方法
序号 | 方法名 | 方法功能 |
---|---|---|
1 | getAttribute (String name) | 获得由name指定的属性的值,如果不存在指定的属性,返回空值(null) |
2 | setAttribute(String name, java. lang. Object obj) | 设置名字为name的request参数的值为obj |
3 | getCookie() | 返回客戸端的cookie対象,結果是一个cookie数组 |
4 | getHeader(String name) | 获得HTTP协议定义的传送文件头信息 |
5 | getHeaderName () | 返回所有request header 的名字,结果保存在一个Enumeration类的实例中 |
6 | getServerName(String name) | 获得服务器的名字 |
7 | getServerPort (String name) | 获得服务器的端口号 |
8 | getRemoteAddr() | 获得客戸端的IP地址 |
9 | getRemoteHost() | 获得客戸端的电脑名字 |
10 | getProtocol() | 获得客戸端向服务器端传送数据的协议名称 |
11 | getMethod() | 获得客戸端向服务器端传送数据的方法 |
12 | getServletPath() | 获得客戸端所请求的脚本文件的文件路径 |
13 | getCharacterEncoding() | 获得请求中的字符编码方式 |
14 | getSession (Boolean create) | 返回和请求相关的Session |
15 | getParameter(String name) | 获得客戸端传送給服务器端的参数値 |
16 | getParameterNames() | 获得所有的的参数值的名字 |
17 | getParameterValues() | 获得指定的参数值 |
18 | getQueryString() | 获得査询字符串,该串由客戸端GET方法向服务器传送 |
19 | getRequestURI() | 获得发出请求字符串的客戸端地址 |
20 | getContentLength() | 获得内容的长度 |
3、获取请求头部信息的方法
String getHeader(String name):返回指定头部名称的字符串类型的信息值
Enumeration<String> getHeaderNames():返回所有头部信息的名称
Enumeration<String> getHeaders(String name):返回指定头部名称的所有信息值
int getIntHeader(String name):返回指定头部名称的类型信息值
long getDateHeader(String name):返回指定头部名称的代表日期对象的长整型信息值
<>:枚举型
<%@ page contentType="text/html;charset=UTF-8" import="java.util.*" %>
<html>
<head>
<title> 使用request对象获取并显示全部请求头信息</title>
</head>
<body>
<h1>您客户端发送的HTTP请求头包含如下信息:</h1>
<%
Enumeration<String>headers = request.getHeaderNames();
while(headers.hasMoreElements()){
String headerName = headers.nextElement();
String headerValue = request.getHeader(headerName);
%>
<b><%= headerName %></b>:<%= headerValue %><br/>
<%
}
%>
</body>
</html>
4、获取请求参数的方法
String getParameter (String name):获取name的参数值。
Enumeration getParameterNames():获取所有参数的名称。
String[] getParameterValues(String name):获取name的所有参数值。
Map getParameterMap():取得一个要求参数的Map
(1)input.jsp文件
<html>
<body>
<form action="request.jsp" method=post name=form>
<input type="text" name="boy">
<input type="submit" value="Enter" name="submit">
</form>
</body>
</html>
(2)request.jsp文件
<%@ page contentType="text/html;charset=UTF-8" %>
<html>
<body>
<p>获取文本框提交的信息:
<%String strContent=request.getParameter("boy");
%>
<%=strContent%>
<p> 获取按钮的名字:
<%String strButtonName=request.getParameter("submit");
%>
<%=strButtonName%>
</body>
</html>
三、response对象
1、概念
(1)是应答相关的HttpServletResponse类的一个对象,它封装了服务器对客户端的响应
(2)response对象产生的对客户的请求做出动态的响应,并向客户端发送数据,HttpServletResponse对象具有页面作用域
(3)JSP会根据客户端的请求建立一个默认的response对象,用来提供给客户端浏览器的参考信息,比如响应的头,响应的本体(HTML文本内容)以及服务端的状态码信息
2、常用方法
序号 | 方法名 | 方法功能 |
---|---|---|
1 | addHeader(String name,String value) | 添加HTTP文件头,该header将会传递到客户端 |
2 | setHeader(String name,String value) | 设置指定名字的HTTP文件头值 |
3 | containsHeader(String name) | 判断指定名字的HTTP文件头是否存在 |
4 | addCookie(Cookie cookie) | 添加一个cookie对象,用来保存客户端的用户信息 |
5 | encodeURL() | 使用sessionId来封装URL |
6 | flushBuffer() | 强制将当前缓冲区的内容发送到客户端 |
7 | getBufferSize() | 返回缓冲区的大小 |
8 | sendError(int sc) | 向客户端发送错误信息 |
9 | sendRedirect(String location) | 把响应发送到另一个指定位置进行处理 |
10 | getOutputStream() | 返回到客户端的输出流对象 |
11 | setContentType() | 动态改变contentType属性(设置响应的MIME类型) |
3、代码例子
(1)当前页面转换为excel文件
<%@ page contentType="text/html;charset=UTF-8" %>
<html>
<head><title>response对象的setContentType方法演示</title></head>
<body bgcolor=cyan>
<p>将当前页面保存为Word文档吗?
<form action="" method="get" name=form>
<input type="submit" value="yes" name="submit">
</form>
<% String str=request.getParameter("submit");
if(str==null) {str="";}
if(str.equals("yes")){
response.setContentType("application/vnd.ms-excel;charset=GB2312");
//尝试下不同的类型,比如application/pdf image/jpeg等
}
%>
</body>
</html>
转其他常见类型文件如下:
<%@ page contentType="text/html;charset=UTF-8" language="java" import="java.util.*" %>
<html>
<head>
<title> response页面刷新 </title>
</head>
<body>
<%
response.setHeader("refresh","2");
out.println(new Date().toLocaleString());
%>
</body>
</html>
4、重定向的方法
(1)void sendRedirect (String url):将页面定向到指定的地址
String encodeRedirectURL (String url):对指定的地址进行编码
sendRedirect (String url):将对用户端的响应重新定向到指定的url上,这个方法必须在响应被提交之前调用。调用这个方法后,响应立即被提交,在调用这个方法后,Servlet不会再有更多的输出
(2)通过setRedirect实现页面跳转
<%@ page contentType="text/html;charset=UTF-8" %>
<html>
<head><title>response对象的setContentType方法演示</title></head>
<body>
<p>你要跳转页面吗?
<form action="" method="get" name=form>
<input type="submit" value="yes" name="submit">
<input type="reset" value="no" name="reset">
</form>
<% String str=request.getParameter("submit");
if(str==null) {str="";}
if(str.equals("yes")){
response.sendRedirect("3_5_respose_reflesh.jsp");
}
%>
</body>
</html>
四、session对象
1、概念
(1)session对象是和请求相关的HttpSession对象,它封装了属于客户会话的所有信息
(2)Session在第一个JSP页面被装载时自动创建,完成会话期管理。从一个客户打开浏览器并连接到服务器开始,到客户关闭浏览器离开这个服务器结束,被称为一个会话
(3)session对象的Id是指当一个客户首次访问服务器上的一个JSP页面时,JSP引擎产生一个session对象,同时分配一个字符类型的Id号,JSP引擎同时将这个Id号发送到客户端,存放在cookie中,这样session对象和客户之间就建立了一一对应的关系,当客户再访问连接该服务器的其他页面时,不再分配给客户新的session对象,直到客户关闭浏览器后,服务器端将该客户的session对象取消,服务器与该客户的会话对应关系消失。当客户重新打开浏览器再连接到该服务器时,服务器为该客户再创建一个新的session对象
2、常用方法
序号 | 方法名 | 方法功能 |
---|---|---|
1 | getAttribute(String name) | 获得指定名字的属性 |
2 | getAttributeNames () | 返回session对象中存储的第一个属性对象 |
3 | getCreationTime() | 返回session对象的创建时间 |
4 | getId() | 返回当前session对象的编号 |
5 | getLastAccessedTime() | 返回当前session对象的最后一次被操作的时间 |
6 | getMaxInactiveInterval () | 获取session对象的生存时间 |
7 | removeAttribute (String name) | 删除指定属性的属性值和属性名 |
8 | setAttribute (String name, Object obj) | 设置指定名字的属性 |
9 | Invalidate() | 注销当前的session |
10 | isNew() | 判断是否是一个新的session |
<%@ page contentType="text/html;charset=UTF-8"%>
<html>
<head>
<title>session-uv和pv的差别</title>
</head>
<body>
<%!//声明变量和函数
int pv = 0, uv = 1;
synchronized void countPv() {
pv++;
}
synchronized void countUv() {
uv++;
}%>
<%//执行java语句
countPv();
//System.out.println(session.toString());
if (session.isNew()) {
countUv();
};
// String str = String.valueOf(uv);
//application.setAttribute("uv", str);
//注销后会如何?其实并不影响session.invalidate();
%>
<p>
<p>
本网站的UV2:<%=uv %>
</p>
<p>
本页面访问量PV:<%=pv%>
</p>
</body>
</html>
3、cookie(对比session)
简单理解:Cookie就是保存session传送来的信息的地方
(1)HTTP本身是一个无状态的连接协议,为了支持客户端与服务器之间的交互,我们就需要通过不同的技术为交互存储状态,而这些不同的技术就是Cookie和Session了
(2)当用户使用浏览器访问一个支持cookie的网站的时候,用户会提供包括用户名在内的个人信息并且提交至服务器,接着,服务器在向客户端回传相应的超文本的同时也会发回这些个人信息
这些信息并不是存放在HTTP响应体(Response Body)中,而是存放在HTTP响应头(Response Header),当客户端浏览器接收到来自服务器的响应之后,浏览器会将这些信息存放在一个统一的位置,对于Window操作系统而言,可以从[系统盘]:\Documents and Settings [用户名] \ Cookies目录中找到存储的Cookie
(3)Cookie的常用用途:
①购物车(大部分送服务器的数据库)、逐步注册、搜索引擎记录、个性化服务
②站点跟踪特定访问者访问的次数,最后访问的时间以及访问者进入站点的路径
③Cookie能够帮助站点统计用户个人资料以实现各种各样的个性化服务
④Cookie实现自动登录功能,使得用户不需要输入用户名和密码就可以进入曾经浏览的站点(限定在同一网站)
在Cookie中信息的片段以“名/值”对(name-value pairs)的形式储存
(4)常用方法
返回类型 | 方法名 | 完成功能 |
---|---|---|
void | setName (String name) | 设置Cookie的名字 |
String | getName() | 返回cookie的名字 |
void | setValue(String value) | 设置Cookie的值 |
String | getValue() | 返回Cookie的值 |
void | setDomain(String domain) | 设置cookie中适用的域名 |
String | getDomain(String domain) | 获取cookie中适用的域名 |
void | setMaxAge(int second) | 设置cookie的存活周期 |
int | getMaxAge(int second) | 获取cookie在失效以前的最大时间,以秒计算 |
void | setPath(String path) | 设置能够读取Cookie的路径 |
String | getPath(String path) | 返回Cookie的适用路径 |
void | setComment(String msg) | 设置cookie的注释 |
void | setSecure(boolean flag) | 设置浏览器是否需要使用安全协议才能读取该cookie |
(5)对于Cookie的写入和读取,需要结合response对象来实现,写入Cookie的主要步骤如下:
①创建Cookie对象
②设定Cookie的属性(一般设置Cookie的有效期)
③调用response.addCookie(Cookie c)方法将其写入客户端
<%@ page contentType="text/html;charset=UTF-8" %>
<html>
<body>
<!--这里是Cookie的写入 -->
cookie write!!!!
<%
Cookie c=new Cookie("fit-10sss","123456aaaa");
c.setMaxAge(10); //1小时=60分钟*60秒,cookie的有效期,单位秒。不设置失效时间或设置为负数表示当前会话有效,也就是关闭浏览器后Cookie失效
response.addCookie(c); //respose进行add,request进行get
%>
<!--这里是Cookie的读取 -->
<p>
cookie read!!!!
<p>
<%
Cookie a[]=request.getCookies(); //respose进行add,request进行get
//根据设置时的cookie个数决定数组元素个数
for (int i =0;i<a.length;i++){
String s1=(String)a[i].getName();
String s2=(String)a[i].getValue();
out.println("<br>Cookie的名和值是:"+s1+" "+s2+"<br>");
}
%>
<body>
<html>
4、Cookie和session的异同
(1)存放地点:Cookie存放在客户端的硬盘里,属于离线存放,而session存放在服务器的内存中
(2)存活时间:Cookie可以长期存放在客户端【chrome一般限制是400天】,具体的存活时间由setMaxAge()方法【单位秒】所指定的数值决定,session随用户访问服务器而产生,随客户超时或下线而消失
(3)安全性:Cookie存放在客户端,可能会被别有用心的网站读取,安全性较差,而session存放在服务器的内存中,用户不能修改,且随客户端浏览器的关闭而消失,安全性较好
(4)联系:不论是Cookie还是session内置对象都需要浏览器支持Cookie并且没有禁用Cookie
五、application对象
1、概念
(1)application对象负责提供应用程序在服务器运行时的一些全局信息,它在服务器启动时创建,直到服务器关闭时消失,实现的是javax.servlet.ServletContext
(2)它实现了用户间数据的共享,可存放全局变量,这样在用户的前后连接或不同用户之间的连接中,可以对此对象的同一属性进行操作
(3)在任何地方对此对象属性的操作,都将影响到其他用户对此的访问
(4)服务器的启动和关闭决定了application对象的生命
2、有关属性操作的方法
(1)public void setAttribute(String name, Object value):在application对象中存储指定名字的属性和值,如果指定的属性名已经存在,则更改这个属性的值
(2)public Object getAttibue(String name):读取application对象中指定名字的属性的值,如果指定的属性名不存在,则返回null
(3)public Enumeration getAttributeNames():获取application对象中所有属性的名字
(4)public void removeAttribue(String name):删除application对象中指定名字的属性,如果指定的属性名不存在,则什么都不做
3、获取容器相关信息的方法
(1)public int getMajorVersion():获取Servlet支持的Servlet API的主版本号
(2)public int getMinorVersion():获取Servlet支持的Servlet API的次版本号
(3)public String getServerInfo():获取Servlet容器的名称和版本号
4、其他方法
(1)public String getMimeType(String file):获取指定文件的MIME类型
(2)public String getRealPath(String path):获取指定path的绝对路径
(3)public String getServletContextName():获取Web应用的名字
(4)public void log(String msg):将指定的信息写入日志文件
<%@ page contentType="text/html;charset=UTF-8" %>
<html>
<body>
<%!
ServletContext application;
synchronized void countPeople(){
application = getServletContext();
Integer number = (Integer)application.getAttribute("number");
if(number == null){
number = new Integer(1);
application.setAttribute("number",number);
}else{
number = new Integer(number.intValue()+1);
application.setAttribute("number",number);
}
}
%>
<%
if(session.isNew()){
countPeople();
}
int personCount = ((Integer)application.getAttribute("number")).intValue();
%>
<p>您是第<%=personCount%>个访问本站的人。
</p>
</body>
</html>
六、pageContext对象
1、概念
(1)JSP利用页面上下文对象pageContext可以获取页面所有相关的属性
(2)通过pageContext对象也可以得到当前页面中所有其他的JSP内置对象(out、request、response、session、application等)及其所支持的属性
(3)它实现的接口为javax.servlet.jsp.PageContext
2、用户获取属性的方法
(1)public void setAttribute(String name, Object value):在pageContext对象中存储指定名字的属性和值,如果值为null,则效果等同于removeAttribute(String name)
(2)public void setAttribute(String name, Object value, int scope):在指定范围内存储指定名字的属性和值,如果值为null,则效果等同于removeAttribute(String name,int scope)
(3)public Object getAttibue(String name):读取pageContext对象中指定名字的属性的值,如果指定的属性名不存在,则返回null
(4)public Object getAttribute(String name, int scope):读取指定范围内指定名字的属性的值,如果指定的属性名不存在,则返回null
(5)public Enumeration getAttributeNamesInScope(int scope):获取指定范围内所有属性的名字
(6)public int getAttributesScope(String name):读取指定名字的属性的所属范围
(7)public void removeAttrbute(String name):删除pageContext对象中指定名字的属性,如果指定的属性名不存在,则什么都不做
(8)public void removeAttribute(String name, int scope):删除指定范围内指定名字的属性,如果指定的属性名不存在,则什么都不做
(9)public Object findAttribute(String name):依次在pageContext对象,request对象,session对象,application对象中搜索指定名字的属性。如果找到,则返回属性的值,如果没有找到,则返回null
3、常用方法
序号 | 方法名称 | 功能 |
---|---|---|
1 | Exception getException() | 获取当前页面出现的异常(即exception对象),不过此时页面应为错误处理页. |
2 | JspWriter getOut() | 获取当前页面的输出流,即out对象 |
3 | Object getPage() | 获取当前页面的Servlet对象,即page对象 |
4 | ServletRequest getRequest() | 获取当前页面的请求对象,即request对象 |
5 | ServletResponse getResponse() | 获取当前页面的响应对象,即Response对象 |
6 | ServletConfig getServletConfig() | 获取当前页面的ServletConfig对象,即config对象 |
7 | ServletContext getServletContext() | 获取当前的ServletContext对象,即application对象 |
8 | HttpSession getSession() | 获取当前页面的会话对象,即session对象 |
<%@ page contentType="text/html;charset=UTF-8" %>
<html>
<body>
<%
//使用pageContext设置属性,该属性默认在page范围内
pageContext.setAttribute("name","fit pageContext");
request.setAttribute("name","编程 request");
session.setAttribute("name","蓝敏编程 session");
//session.putValue("name","计算机编程");
application.setAttribute("name","蓝敏编程 application");
application.setAttribute("age","99");
%>
page设定的值:<%=pageContext.getAttribute("name")%><br>
request设定的值:<%=pageContext.getRequest().getAttribute("name")%><br>
session设定的值:<%=pageContext.getSession().getAttribute("name")%><br>
application设定的值:<%=pageContext.getServletContext().getAttribute("name")%><br>
范围1内的值:<%=pageContext.getAttribute("name",1)%><br>
范围2内的值:<%=pageContext.getAttribute("name",2)%><br>
范围3内的值:<%=pageContext.getAttribute("name",3)%><br>
范围4内的值:<%=pageContext.getAttribute("name",4)%><br>
<!--从最小的范围page开始,然后是reques、session以及application-->
<%pageContext.removeAttribute("name",3);%>
pageContext修改后的session设定的值:<%=session.getAttribute("name")%><br>
<%pageContext.setAttribute("name","应用技术培训",4);%>
pageContext修改后的application设定的值:<%=pageContext.getServletContext().getAttribute("name")%><br>
查找name的值(注意顺序从page至application逐个查找):<%=pageContext.findAttribute("name")%><br>
查找age的值:<%=pageContext.findAttribute("age")%><br>
属性name的范围:<%=pageContext.getAttributesScope("name")%><br>
属性age的范围:<%=pageContext.getAttributesScope("age")%><br>
</body>
</html>
七、page对象
1、概念
(1)page对象是JSP页面对应的Servlet类的实现对象,相当于this
(2)page对象是指指向当前JSP页面本身,有点像类中的this指针,它是java.lang.Object类的实例,page对象在实际开发过程中并不经常使用
2、 page对象常用方法如下:(主要是Object类中声明的方法)
(1)class getClass():返回此Object的类
(2)int hashCode():返回此Object的hash码
(3)boolean equals(Object obj):判断Object是否与指导的Object对象相等
(4)void copy(Object obj):把此Object拷贝到指定的Object对象中
(5)Object clone():克隆此Object对象
(6)String toString():把此Object对象转换成String类的对象
(7)void notify():唤醒一个等待的线程
(8)void notifyAll():唤醒所有等待的线程
(9)void wait(int timeout):使一个线程处于等待直到timeout结束或唤醒
(10)void wait():使仪的线程处于等待直到被唤醒
3、page和pageContext的区别
(1)page:java.lang.Object的实例,对应this关键字。JSP网页本身,page对象是当前页面转换后的Servlet类的实例。从转换后的Servlet类的代码中,可以看到这种关系:Object page = this,在JSP页面中,很少使用page对象。
(2)pageContext:javax.servlet.jsp.PageContext的实例,该对象代表该JSP 页面上下文,使用该对象可以访问页面中的共享数据。常用的方法有getServletContext和getServletConfig等
八、config对象
1、概念
(1)config对象代表当前JSP页面的配置信息,它对应的接口是:是javax.servlet.ServletConfig
(2)通常情况下,JSP页面无需配置,因此config对象在JSP页面中比较少用,但它在Servlet中的作用比较大
2、config对象的常用方法
(1) public String getInitParameter(String name):获取指定名字的初始化参数的值,如果参数不存在,则返回null
(2)public Enumeration getInitParameterNames():获取所有初始化参数的名字,如果没有初始化参数,则返回一个空的枚举集合
(3)public ServletContext getServletContext():获取Servlet的上下文对象
(4)public String getServletName():获取Servlet对象的名称
<%@ page contentType="text/html;charset=UTF-8" %>
<html>
<body>
<!-- 直接输出config的getServletName的值 -->
<%=config.getServletName()%>
</body>
</html>
九、exception对象
1、概念
(1)exception对象代表了JSP文件运行时所产生的错误和异常对象
(2)只有在包含<%@page isErrorPage="true" %>的页面中才可以使用
(3)在一般的JSP文件中使用该对象会导致无法编译JSP文件
2、常用方法
序号 | 方法 | 说明 |
---|---|---|
1 | getMessage() | 返回exception对象的异常信息字符串 |
2 | getLocalizedMessage() | 返回本地化的异常错误 |
3 | toString() | 返回关于异常错误的简单信息描述 |
4 | fillInStackTrace() | 重写异常错误的栈执行轨迹 |
3、代码例子
(1)3_12_errorpage.jsp文件
<%@ page language="java" import="java.util.*"
contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"
errorPage="error.jsp"
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>起始页</title>
</head>
<body>
<%
float price = Float.parseFloat("10元");
%>
</body>
</html>
(2)error.jsp文件
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="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>错误提示页面</title>
</head>
<body>
<h2>这里是错误页面提示</h2>
<h3>
<%=exception.getMessage()%><br>
<%=exception.getLocalizedMessage()%><br>
<%=exception.toString()%><br>
<%=exception.fillInStackTrace()%><br>
</h3>
</body>