JSP 九大内置对象和四大作用域简介

时间:2022-03-28 13:02:01

JSP 九大内置对象:

     1、out对象:是jsp中使用最频繁的对象,是JspWriter类的实例,是向客户端输出内容常用的对象 ,是输出流。通过“out” 对象发送的内容将是浏览器需要显示的内容,是文本一级的,可以通过“out” 对象直接向客户端写一个由程序动态生成HTML文件。常用的方法:

  1  out.print(type):输出数据。

  2  out.println(type):输出带有换行符的数据。

  3  out.newline():输出一个换行符。

  4  out.flush:输出缓冲区里的数据。

  5  out.close():关闭输出流。

  6  out.clearBuffer():清楚缓冲区里的数据,并把数据输出到客户端。

  7  out.clear():清楚缓冲区里的数据,但不会吧数据输出到客户端。

  8  out.getRemaining():获得缓冲区中没有被占用的空间大小。

  9  out.getBufferSize():换取缓冲区的大小,

  10  out.isAutoFlush():返回布尔值,标志是否自动刷新。

2、request对象:有服务器生成,此对象封装了由WEB浏览器或其它客户端生成地HTTP,当客户端请求jsp网页时,通过request对象调用相应的方法便可以获得用户提交的信息。常用方法:

  1  String getMethod():得到提交方式,返回String类型。

  2  String getRequestURI():得到请求的URL地址,返回String类型。
  3  Sring getProtocol():得到协议名称,返回String类型。

  4  Sring getServletPath():获得客户端请求服务器文件的路径,返回String类型。

  5  Sring getQueryString():得到URL的查询部分,对于post方式来说,该方法得不到任何信息。

  6 Sring getServerName():得到服务器的名称。

  7  String getServerPort():得到服务器的端口号。

  8  String getRemoteAddr():得到客户端的IP地址。

  9  getAttribute(String):返回由name指定的属性值,如果指定的属性不存在,则返回null。

  10  getattributeNames():返回由request对象所有属性的名字,结果集是枚举类的实例。

  11  getHeaderNames():返回所有请求表头的名字。

  12  getHeaders(String name):返回指定名字的请求标头的所有值。

  13 getParameter(String name):获得客户端传送给服务器端的参数值,该值由name指定。

  14 getParameterNames();获得客户端传送给服务器端的所有参数名。

  15 getParameterValues(String name):获得参数name包含的值

  16 setAtrribute(string name,java.lang.Object object):设置名为name的request参数的值。

  17 removeAttribute():删除请求中的属性。

  18 getCookies():返回客户端所有Cookie对象,结果是Cookie数组。

  19 getSession(): 返回和请求相关的session。

3、response对象:有服务器生成,用户向服务器提交了HTTP请求后,服务器会根据用户的请求建立默认的response对象。常用方法:

  1  addHeader(String name,String value):该方法将实现添加HTTP文件头。

  2  containsHeader(String name):用来判断参数name所指名字的HTTP文件头是否存在,存在返回true,否则返回false。

  3  setContentType(String st):用来改变contentType属性的值。

  4  encodeURL():使用sessionId封装URL。

  5  sendRedirect(String url):实现客户的重定向。

  6  addCookies(Cookie Cookie):该方法将实现添加一个Cookie对象。

  7  flushBuffer():强制把当前缓冲区的内容发送到客户端。

  8  getBufferSize():返回缓冲区的大小。

  9  sendError(int ernum):该方法实现向客户端发送错误信息。

  10 getOutputStream():返回客户端的输出流对象

  11 setHeader(String name,String value):该方法将根据HTTP文件头的名字来设定它的值。

4、 session对象:session对象指的是客户端与服务器的一次会话,从客户连到服务器的一个WebApplication开始,直到客户端与服务器断开连接为止。

      1  getID():每次生成的session对象,系统会分配一个独一无二的编号。
      2  getCreationTime():该方法将实现返回当前session对象的时间,以毫秒为单位。
     3   getLastAccessedTime():该方法将实现返回当前session对象最后一次被操作的时间,即1970年1月1日至今。
     4   setAttribute(String key,Object obj):该方法将参数obj指点的对象添加到session对象中,并为添加的对象指定索引的关键字,由key决定。
     5   setAttribute(String name):该方法从session对象中提取由参数name指定的对象。
      6   removeAttribute(Sting name):该方法从session对象中删除由参数name指定的对象。
      7   getAtrributeNames():该方法返回session对象中存储的第一个对象。
      8   setMaxInactiveInterval():设置session对象的生存时间。
     9   isNew():判断是否为新用户。

5、application对象:此对象服务器启动后,就会自动创建,也由服务器自动清除,不能由用户创建和清除。此对象 实现了用户间数据的共享,可存放全局变量。常用方法:

    1   getAttribute(String name):返回由参数name指定,存放在application中的对象。

   2    getAttributeNames():返回所有存放在application中的对象。

    3   getInitParameter(String name):返回由参数name指定的application中某个属性的初始值。

    4   getServerInfo():该方法获得Servlet的信息。

    5  setAtrribute(String name,Object obj):该方法用来将参数obj指定的对象添加到application对象中。

6、 exception对象:处理jsp编程时发生的错误,将某个页面指定为错误处理页面,把文件执行       时所有发生的错误和异常都集中在这个页面进行处理,提高了系统的统一性,一般和page指       令一起使用。常用方法:

    1  getMessage():该方法返回错误信息。

    2  printStackTrance():该方法以标准错误的形式输出错误和错误的堆栈。

    3  toString():该方法以字符串的形式返回对异常的描述。

7、  page对象:此对象代表了正在运行的由JSP文件产生的类对象,有点象类中的this指针。常用方法:

   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() 使一个线程处于等待直到被唤醒 
  11 void enterMonitor() 对Object加锁 
  12 void exitMonitor() 对Object开锁 

8、pageContext对象:代表的是当前页面运行的一些属性,他可以访问到本页所在的SESSION,也可以取本页面所在的application的某一属性值。常用方法:

     1 JspWriter getOut(): 返回当前客户端响应被使用的JspWriter流(out) 
     2 HttpSession getSession() 返回当前页中的HttpSession对象(session) 
     3 Object getPage() 返回当前页的Object对象(page) 
     4 ServletRequest getRequest() 返回当前页的ServletRequest对象(request) 
     5 ServletResponse getResponse() 返回当前页的ServletResponse对象(response) 
    6 Exception getException() 返回当前页的Exception对象(exception) 
     7 ServletConfig getServletConfig() 返回当前页的ServletConfig对象(config) 
     8 ServletContext getServletContext() 返回当前页的ServletContext对象(application) 
    9 void setAttribute(String name,Object attribute) 设置属性及属性值 
    10 void setAttribute(String name,Object obj,int scope) 在指定范围内设置属性及属性值 
    11 public Object getAttribute(String name) 取属性的值 
    12 Object getAttribute(String name,int scope) 在指定范围内取属性的值 
    13 public Object findAttribute(String name) 寻找一属性,返回起属性值或NULL 
    14 void removeAttribute(String name) 删除某属性 
   15 void removeAttribute(String name,int scope) 在指定范围删除某属性 
   16 int getAttributeScope(String name) 返回某属性的作用范围 
   17 Enumeration getAttributeNamesInScope(int scope) 返回指定范围内可用的属性名枚举 
   18 void release() 释放pageContext所占用的资源 
   19 void forward(String relativeUrlPath) 使当前页面重导到另一页面 
   20 void include(String relativeUrlPath) 在当前位置包含另一文件 

9、config对象:对象提供一些配置信息,包括Servlet初始化时所要用到的参数(通过属性名和属性值构成)以及服务器的有关信息(通过传递一个ServletContext对象),常用方法:

    1 ServletContext getServletContext() 返回含有服务器相关信息的ServletContext对象 
    2 String getInitParameter(String name) 返回初始化参数的值 
    3 Enumeration getInitParameterNames() 返回Servlet初始化所需所有参数的枚举 

JSP 四大作用域:
pageContext   request   session  application

1、如果把变量放到pageContext里,就说明它的作用域是page,它的有效范围只在当前jsp页    面里。 从把变量放到pageContext开始,到jsp页面结束,你都可以使用这个变量。
2、如果把变量放到request里,就说明它的作用域是request,它的有效范围是当前请求周      期。 所谓请求周期,就是指从http请求发起,到服务器处理结束,返回响应的整个过程。    在这个过程中可能使用forward的方式跳转了多个jsp页面,在这些页面里你都可以使用这    个变量。
3、如果把变量放到session里,就说明它的作用域是session,它的有效范围是当前会话。
   所谓当前会话,就是指从用户打开浏览器开始,到用户关闭浏览器这中间的过程。这个过程    可能包含多个请求响应。也就是说,只要用户不关浏览器,服务器就有办法知道这些请求是    一个人发起的,整个过程被称为一个会话(session),而放到会话中的变量,就可以在当    前会话的所有请求里使用。
4、如果把变量放到application里,就说明它的作用域是application,它的有效范围是整个    应用。整个应用是指从应用启动,到应用结束。我们没有说“从服务器启动,到服务器关      闭”,是因为一个服务器可能部署多个应用,当然你关闭了服务器,就会把上面所有的应用    都关闭了。application作用域里的变量,它们的存活时间是最长的,如果不进行手工删      除,它们就一直可以使用。与上述三个不同的是,application里的变量可以被所有用户共    用。如果用户甲的操作修改了application中的变量,用户乙访问时得到的是修改后的值。    这在其他scope中都是不会发生的,page, request, session都是完全隔离的,无论如何    修改都不会影响其他人的数据。