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的主要方法有:

jsp_内置对象

jsp_内置对象

 

3   response对象

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

    response对象的主要方法有:

jsp_内置对象

jsp_内置对象

实例如下:

<%@ 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对象的主要方法是:

jsp_内置对象

实例:

jsp_内置对象

jsp_内置对象

jsp_内置对象

jsp_内置对象

jsp_内置对象

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对象的实用的方法:、

jsp_内置对象

jsp_内置对象

例如:

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对象的主要方法是:

jsp_内置对象

  

7    config对象

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

         config对象的常用方法是:

         jsp_内置对象

实例:假设有个计数器(由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));

%>

 

相关文章:

  • 2021-10-26
  • 2021-12-06
  • 2021-12-19
  • 2021-11-29
  • 2021-05-06
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-05-23
  • 2022-12-23
  • 2022-12-23
  • 2022-01-06
相关资源
相似解决方案