JSP内置对象
2017-09-19 00:00
162 查看
在web开发中,为方便开发者,JSP定义了一些由JSP容器实现和管理的内置对象,这些对象可以直接被开发者使用,而不需要再对其进行实例化!本文详解,JSP2.0之后由ServletApi提供的9个内置对象,如下:
第一部分
由此可见,JSP内置对象作用域范围,分别是:page,request,session,application
1)page范围(pageContext):一页中有效,跳转即无效。
(2)request范围:服务器跳转有效,客户端跳转无效。
(3)session范围:跳转有效,新开浏览器无效。
(4)application范围:所有用户有效,重启服务器无效。
这四个对象有3个方法:
(1) void setAttribute(String key,Object o); //设置属性
(2) Object getAttribute(String key); //取得后要向下转型。
(3) void removeAttribute(String key); //删除属性
注意:在getAttribute之后一定要转型!
举例:
pageContext.setAttribute("name","xiazdong"); //只能在单个页面中进行保存
String name = (String)pageContext.getAttribute("name"); //换了一个页面后就无法取得
注意:尽可能在满足功能的前提下,将属性设置的保存范围尽可能的小。这样能够提高性能;
第二部分:
1、介绍request对象:
2、介绍response对象:、
3、介绍out对象:
out对象常用方法有
clear()清楚缓冲区的内容,clearBuffer()清楚缓冲区的内容同时将数据输出到客户端
getBufferSize()获取缓冲区的大小
最常见的是直接打印输出内容
4、介绍session对象:
(1)String getId():获得session id。session id类似于Cookie的JSessionId,是服务器自动分配的;
(2)session.setAttribute("",""):设置属性。
(3)session.getCreationTime():获得创建时间。
(4)session.getLastAccessedTime():获得最后访问时间。
(5)session.isNew():这个session是否是新的,即判断session id。
(6)session.invalidate():把session的属性设置全部清空。
5、介绍application对象:
(1)getRealPath(path):获得真实路径。
(2)getContextPath():获得虚拟路径。
(3)getInitParameter(String );
我们可以在web.xml中添加初始化参数:
6、介绍pageContext对象
表示JSP上下文,可以通过这个实例,取得request\response\session\<jsp:forward>等。
(1)pageContext.forward(String);
(2)pageContext.include(String);
(3)pageContext.getServletConfig();
(4)pageContext.getServletContext();
(5)pageContext.getRequest();
(6)pageContext.geResponse();
(7)pageContext.getSession();
也就是说,只要有了pageContext对象,就能完成一切内置对象的功能;
补充:pageConext设置任意范围的属性(很少使用)
使用函数:pageConext.setAttribute("name","value",int SCOPE); SCOPE 取值范围为PAGE_SCOPE,REQUEST_SCOPE,SESSION_SCOPE,APPLICATION_SCOPE四个,比如设置page范围:
pageConext.setAttribute("name","xiazdong",PageConext.PAGE_SCOPE);
只需要PageContext就能完成全部内置对象的操作;
7、介绍page对象:
page对象是指的是JSP页面的本身,她是Object对象的类,通过page对象可以调用到Servlet类定义的方法,page对象在开发中并不经常用到,这里就不讲解了!
8、介绍config对象:
config对象是ServletConfig类的一个实例,用法参考ServletConfig
9、介绍exception对象:
主要是处理页面异常和错误,实际开发中此对象使用也不多,一般都是调试项目会使用
使用这个对象必须将isErrorPage设置为true
如下
打印错误代码
综上总结在实际开发中,我们经常使用的是request,response,session,out,这四个!
内置对象名称 | 相对应的类 | 作用域 |
request | javax.servlet.ServletRequest | request |
response | javax.servlet.ServletResponse | page |
pageContext | javax.servlet.pageContext | session |
session | javax.servlet.HttpSession | page |
application | javax.servlet.ServletContext | application |
out | javax.servlet.JspWriter | page |
config | javax.servlet.ServletConfig | page |
page | javax.servlet.Object | page |
exception | javax.servlet.Throwable | page |
由此可见,JSP内置对象作用域范围,分别是:page,request,session,application
1)page范围(pageContext):一页中有效,跳转即无效。
(2)request范围:服务器跳转有效,客户端跳转无效。
(3)session范围:跳转有效,新开浏览器无效。
(4)application范围:所有用户有效,重启服务器无效。
这四个对象有3个方法:
(1) void setAttribute(String key,Object o); //设置属性
(2) Object getAttribute(String key); //取得后要向下转型。
(3) void removeAttribute(String key); //删除属性
注意:在getAttribute之后一定要转型!
举例:
pageContext.setAttribute("name","xiazdong"); //只能在单个页面中进行保存
String name = (String)pageContext.getAttribute("name"); //换了一个页面后就无法取得
注意:尽可能在满足功能的前提下,将属性设置的保存范围尽可能的小。这样能够提高性能;
第二部分:
1、介绍request对象:
(1)request.getParameter(String name):取得name元素的值。 取得来源:(1)地址重写(2)表单提交 (2)Enumeration enu = request.getParameterNames():取得全部的参数的名称,通过迭代器遍历。 (3)String[] strs = request.getParameterValues(String name):用于取得比如checkbox的多项选择。 (4)Enumeration enu = request.getHeaderNames():获得全部头信息的名字。 (5)String str = request.getHeader(String name):获得名字为name的头信息的内容。 (6)String str = request.getMethod():获得是post或get. (7)request.setCharacterEncoding(String ):统一request的编码。 比如服务器的JSP页面设置为GBK,而浏览器为UTF-8,则会出现编码不匹配问题。 (8)request.isUserInRole(String name); 用于用户验证角色 (9)Cookie[] c = request.getCookies():获得全部的cookie。
2、介绍response对象:、
StringgetCharacterEncoding() 返回响应用的是何种字符编码 ServletOutputStreamgetOutputStream() 返回响应的一个二进制输出流 PrintWritergetWriter() 返回可以向客户端输出字符的一个对象 voidsetContentLength(intlen) 设置响应头长度 voidsetContentType(Stringtype) 设置响应的MIME类型 sendRedirect(java.lang.Stringlocation) 重新定向客户端的请求
3、介绍out对象:
out对象常用方法有
clear()清楚缓冲区的内容,clearBuffer()清楚缓冲区的内容同时将数据输出到客户端
getBufferSize()获取缓冲区的大小
最常见的是直接打印输出内容
<%@ page contentType="text/html;charset=GB2312" %> <html> <head> <title>out object test</title> </head> <body> <!-- 使用out对象输出--> <% out.print("Hello World"); //不换行 out.println("Hello World"); //换行 %> </body> </html>
4、介绍session对象:
(1)String getId():获得session id。session id类似于Cookie的JSessionId,是服务器自动分配的;
(2)session.setAttribute("",""):设置属性。
(3)session.getCreationTime():获得创建时间。
(4)session.getLastAccessedTime():获得最后访问时间。
(5)session.isNew():这个session是否是新的,即判断session id。
(6)session.invalidate():把session的属性设置全部清空。
5、介绍application对象:
(1)getRealPath(path):获得真实路径。
(2)getContextPath():获得虚拟路径。
(3)getInitParameter(String );
我们可以在web.xml中添加初始化参数:
<context-param> <param-name></param-name> <param-value></param-value> </context-param>
6、介绍pageContext对象
表示JSP上下文,可以通过这个实例,取得request\response\session\<jsp:forward>等。
(1)pageContext.forward(String);
(2)pageContext.include(String);
(3)pageContext.getServletConfig();
(4)pageContext.getServletContext();
(5)pageContext.getRequest();
(6)pageContext.geResponse();
(7)pageContext.getSession();
也就是说,只要有了pageContext对象,就能完成一切内置对象的功能;
补充:pageConext设置任意范围的属性(很少使用)
使用函数:pageConext.setAttribute("name","value",int SCOPE); SCOPE 取值范围为PAGE_SCOPE,REQUEST_SCOPE,SESSION_SCOPE,APPLICATION_SCOPE四个,比如设置page范围:
pageConext.setAttribute("name","xiazdong",PageConext.PAGE_SCOPE);
只需要PageContext就能完成全部内置对象的操作;
7、介绍page对象:
page对象是指的是JSP页面的本身,她是Object对象的类,通过page对象可以调用到Servlet类定义的方法,page对象在开发中并不经常用到,这里就不讲解了!
8、介绍config对象:
config对象是ServletConfig类的一个实例,用法参考ServletConfig
9、介绍exception对象:
主要是处理页面异常和错误,实际开发中此对象使用也不多,一般都是调试项目会使用
使用这个对象必须将isErrorPage设置为true
如下
<%@ page contentType="text/html;charset=GB2312" errorPage="exceptionobject.jsp"%> <html> <head> <title>pageContext object test</title> </head> <body> 发生错误的位置!<br> <% int a=5; int b=0; %> 输出结果=<%=(a/b)%> </body> </html>
打印错误代码
<%@ page contentType="text/html;charset=GB2312" isErrorPage="true"%> <%@ page import="java.io.PrintStream"%> <html> <head> <title>exception object test</title> </head> <body> <%=exception.getMessage() %><br> <% exception.printStackTrace(new java.io.PrintWriter(out)); %> </body> </html>
综上总结在实际开发中,我们经常使用的是request,response,session,out,这四个!
相关文章推荐
- JSP内置对象
- JSP内置对象(9个常用的内置对象)
- JSP内置对象(1)----request、response
- 简单的记住JSP内置对象的方…
- JSP内置对象
- JSP内置对象(四)——application对象
- jsp/servlet相关技术 (五) --- jsp内置对象(二)
- JSP内置对象(9个常用的内置对象)
- jsp内置对象之get与post
- JSP内置对象(1)
- JSP内置对象
- jsp内置对象
- JSP内置对象
- 9种jsp内置对象
- jsp内置对象
- JSP内置对象(1)----request、response
- 07-通过cookie保存并读取用户登录信息(jsp内置对象)
- javaEE servlet获取jsp内置对象
- JSP内置对象(五)——out对象
- jsp内置对象