jsp_内置对象

        JSP为简化页面的开发提供了一些内部对象,这些内部对象不需要由JSP的编写者实例化,它们由容器实现和管理,

在所有的JSP页面中能使用内部对象。所有的隐含对象只能对Scriptlets或者表达式有用,在JSP申明中不可用。

JSP有以下的内部对象:

*request对象

*response对象

*pageContext对象

*session对象

*application对象

*out对象

*config对象

*page对象

*exception对象

JSP内置对象总述
对象 类型 描述 作用域
request javax.servlet.ServletRequest 客户端的请求,通常是HttpServlet的子类,如果客户的请求中有参数,则该对象就有一个参数列表 request(用户请求期))
response javax,servlet.ServletResponse的子类 JSP页面的响应,是HttpS而vletResponse的子类,页面的属性和需求通过标准API访问相关的对象,以便JSP引擎编译页面。但是,不同Server对这些属性和对象的实现方式不同 page(页面执行期)
pageContext java.servlet.jsp.PageContext 解决方案是JSP引擎编译用factory类返回的服务器PageContext类的实现方法。PageContext类和request、response对象及page指令的一些属性(errorpage,session,buffer,autoflush)同时被初始化,同时提供request请求的相关的对象 page(页面执行期)
session javax.servlet.HttpSession HTTPsession是与request联合的对象 session(会话期)
application javax.servlet.ServletContext servlet的环境通过调用getServletConfig().getContext()方法获得 applicaiton(整个web环境运行期)
out javax.servlet.jsp.JspWriter 代表输出流的对象 page(页面执行期)
config javax.servlet.ServletConfig 页面的ServletConfig对象 page(页面执行期)
page javax.lang.Object 指向页面自身的方式(在Java代码中多以this替代) page(页面执行期)
exception java.lang.Throwable 没有被Throwable不活的错误,传向了errorpage的URI page(页面执行期)

 

内置对象详细介绍:

1   out对象

      out对象被封装成javax.servlet.jsp.JspWriter接口。它表示为客户打开的输入流,PrintWriter使用它向客户端发送输出流。简单的说,它主要用来向客户端输出数据,代表输出流的对象:

 主要方法有:

out.print(各种类型):   输出各种类型的字符

out.newLine()   输出一个换行字符

out.flush()   输出缓冲区里的数据

out.close()   关闭输出流

out.clearBuffer()   清除缓冲里的数据  并把数据输出到客户端

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

out.getBufferSize()  获得缓冲区的大小

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

out.isAutoFlush()   返回布尔值  如果AutoFlush为真,则返回ture;反之,则返回false;

 

2   request对象

     request对象代表请求对象,它被包装成HttpServletRequest接口。通过getParameter方法可以得到request的参数,

通过GET POST HEAD等方法可以得到request的类型,通过Cookies、Referer等可以得到请求的HTTP头。来自客户端

的请求经Servlet容器处理后,由request对象进行封装。它作为jspService()方法的一个参数由容器传递给JSP页面:

    request的主要方法有:

 

3   response对象

     response被包装成HttpServletResponse接口,它封装了JSP产生的响应,然后被发送到客户端以响应用户的请求。和request对象一样,它由容器生成,作为jspService()方法的参数被传入JSP。因为输出流是缓冲的,所以可以设置HTTP状态码和response头。

    response对象的主要方法有:

实例如下:

<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%@ page import="javax.servlet.http.Cookie,java.util.*" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>


<html>
  <body>
    <%
    String userName="hellking";
    Cookie[]cookie=request.getCookies();
    Cookie cookie_response=null;
    List list=Arrays.asList(cookie);
    Iterator it=list.iterator();
    while(it.hasNext())
    {
      Cookie temp=(Cookie)it.next();
      if(temp.getName().equals(userName+"_access_time"));
      {
        cookie_response=temp;
        break;
      }
    }
    
    out.println("当前时间"+new java.util.Date()+"<br>");
    if(cookie_response!=null)
    {
      out.println("上次访问的时间:"+cookie_response.getValue());
      cookie_response.setValue(new Date().toString());
    }
    else
    {
    cookie_response=new Cookie(userName+"_access_time",new java.util.Date().toString());
    }
    response.addCookie(cookie_response);
    response.setContentType("text/html");
    response.flushBuffer();
         %>
  </body>
</html>

 

4   session对象

        session对象用来保存每个用户信息,以便跟踪每个用户的操作状态。其中,session信息保存在容器里,session的ID保存在客户机的Cookie中。在许多服务器上,如果浏览器支持Cookie的话,就直接使用Cookie。但是如果不支持或废除Cookie的话,就自动转化为URL-rewriting(重写URL,这个URL包含客户端的信息),session自动为每个流程提供了方便的存储信息的方法。

        一般情况下,用户首次登陆系统时容器会给此用户分配一个唯一标识的session id,这个ID用于区分其他的用户。当用户推出系统时,这个session就会自动消失。和session对应的是HTTPSession接口。

session对象的主要方法是:

实例:

5  pageContext对象

     pageContext对象被封装成javax.servlet.jsp.pageContext接口,它为JSP页面包装页面的上下文,管理对属于JSP中特殊可见部分中已命名对象的访问。它的创建和初始化都是容器完成的。JSP页面里可以直接使用pageContext对象的句柄。pageContext对象的getXXX() setXXX() findXXX()方法可以用来根据不同的对象范围实现对这些对象的管理。

     pageContext对象的主要功能是管理对属于JSP中可见部分中已经命名对象的访问。PageContext对象的创建于初始化通常对于JSP程序员是透明的,JSP程序员可以从JSP中获取到用来代表PageContext对象的句柄,因此可以使用pageContext对象的各种API。

pageContext对象的实用的方法:、

例如:

ServletRequest req=pageContext.getRequest();

String name=req.getParameter("name");

pageContext.setAttribute("userName",name);   #默认情况下,该属性只在当前页面有效

String name=req.getParameter("name");

 

6   application对象

application对象为多个应用程序保存信息。对于一个容器来说,每个用户都共同使用一个application对象,这和session对象是不一样的。服务器启动后,就会自动创建application对象,这个对象会一直保持,直到服务器关闭为止。

application对象的主要方法是:

  

7    config对象

        config对象被封装成javax.servlet.ServletConfig接口,它表示Servlet的配置。当一个Servlet初始化时,容器把某些信息通过此对象传递给这个Servlet。

         config对象的常用方法是:

         

实例:假设有个计数器(由application实现),为了使得每次服务器启动后,计数器能够按以前的数继续计数,而不是重新计数,代码如下:

<body>

<% int org=0;

int count=0;

try{

org=integer.parseInt(config.getInitParameter("counter");

}catch(Exception e)

{

count.print("org:"+e);

}

try{

count=Integer.parseInt((application.getAttribute("congif_counter").toString()));

}catch(Exception e){

out.println("config_counter"+e);

}

if(count<org)count=org;

out.println("此页面已经访问了“+count+"次”);

count++;

application.setAttribute("config_counter",new Integer(count));

%>

 

来源:网络


智能推荐

jsp内置对象--response

response:响应对象 提供的方法:void addcookie(Cookie cookie);服务端向客户端增加一个cookie对象 void sendRedirect(String location) throws IOException:页面跳转的一种方式(重定向) void setContetType(String type) :设置服务端响应时的编码(设置服务端的ContentTyp...

jsp内置对象小结

jsp的9大内置对象: 内置对象名          类型   request        HttpServletRequest   response  &n...

JSP内置对象简介

在JSP中为了便于数据信息的保存,传递,获取等操作,专门设置了9个内置对象。每个对象都有自己的属性和方法。 JSP内置对象是预先设定的,不需要创建,在编写JSP代码(JSP声明或JSP脚本)时,可直接使用。 JSP内置对象的有效作用范围,是层层包含的。最大的是application,其次是session,request,page。 out对象 out对象的主要功能是向客户输出响应信息,其只要方法是...

JSP内置对象

问:什么是JSP内置对象? 答:JSP内置对象就是指有些对象不用声明就可以在JSP页面的Java程序片和表达式部分使用。  概述: (1)JSP的常用内置对象有request、response、session、application和out。其中response和request对象是JSP内置对象中较为重要的两个,这两个对象提供了对服务器和浏览器通信方法的控制。 (2)HTTP协议被称作...

jsp内置对象--session

session(服务端) session:会话 1. 浏览网站:开始->关闭 2. 购物:浏览,结算,付款,退出 3. 电子邮件: 浏览,写邮件,退出 以上都是session的例子,一次开始到结束被称作session session机制: 客户端第一次请求服务端时,(JSESSIONID与sessioID开始匹配,不成功)服务端会产生一个session对象(用于保存该客户的信息) 并且产生s...

猜你喜欢

JSP内置对象

SP内置对象就是在编写JSP页面时,不需做任何声明就可以直接使用的对象。 常用的内置对象:out、request、response、session、application 1.out:javax.servlet.jsp.JspWriter类型,代表输出流对象。作用域为page。out对象用来向浏览器输出数据。其常用方法如下: out.print():输出各种类型数据 out.newLine():输...

jsp内置对象

out.print()即把打印内容都存入缓冲区,若调用flush方法,则强制把缓冲区内容打印并清空。 缓冲区问题:缓冲区类似于碗,全部的内容存放在碗中,我们将内容输出到客户端的时候,内容仍然存在于缓冲区(碗)中,缓冲区(碗)只有在满了之后,即碗中的所有数据都被读出到浏览器(客户端)之后,缓冲区才会自动清空(即将碗中的数据全部倒掉,碗空之后再重新盛一满碗数据),而flush()函数相当于外挂的存在,...

JSP内置对象简介

一 内置对象简介 JSP内置对象是Web容器创建的一组对象,不使用new关键字就可以使用的内置对象。 例如:     二 JSP的九大内置对象     三 Web程序的请求响应模式 用户发送请求(request) 服务器给用户响应(response)     查看图片附件...

Jsp内置对象

JSP九大内置对象  1.request对象 、2.response对象、 3.pageContext对象、4.session对象、5.application对象、6.out对象、7.config对象、8.page对象、9.exception对象 Jsp有九大内置对象,这九大内置对象我们常用的也就三四个,下面我来给大家说一下这些内置对象的作用和常用的方法 reques...

原型对象,原型链

函数都有prototype属性,它指向原型对象。 实例对象有__proto__属性,它指向对象原型 每一个原型对象都有constructor输赢,指向构造函数,每一个原型对象又具有__proto__属性,这个指向Object.prototype.在这里插入图片描述...

问答精选

Correctly formatting GCM notifications?

I'm currently trying out the google cloud messaging service with its sample application "Guestbook." https://developers.google.com/cloud/samples/mbs/ I'm attempting to send notifications tha...

Are there any performance benefits of using Asynchronous functions over Synchronous in Node Js?

Now I came across an article that distinguishes between an Asynchronous function and Synchronous functions. From my understanding of the different examples and explanations, synchronous functions are ...

Python: Costing calculator output

Good day all I'm busy creating a small costing calculator for the signage department. I'm not getting the calculator to output the amount. Brief Description: You enter the height and width and then wh...

Flask-SQLAlchemy - model has no attribute 'foreign_keys'

I have 3 models created with Flask-SQLalchemy: User, Role, UserRole role.py: user.py: user_role.py: If I try (in the console) to get all users via User.query.all() I get AttributeError: 'NoneType' obj...

Seeding many PRNGs, then having to seed them again, what is a good quality approach?

I have many particles that follow an stochastic process in parallel. For each particle, there is a PRNG associated to it. The simulation must go through many repetitions to get average results. For ea...

相关问题

相关文章

热门文章

推荐文章

相关标签

推荐问答