jsp九个默认对象

jsp九个默认对象 分别是request, response, out, pageContext, session, application, page, config, exception。

它们与servlet中变量的对应关系如下:

首先要明确的是,这九个变量都只在<%%>中有效,<%!%>中是无法调用这九个对象的。实际上<%%>最后会成为service()方法中的代码,我们这里就看看如何在service()方法中获得这些对象吧。

  1. request

     
       
    public   void  service(ServletRequest req, ServletResponse res)  ... {
        HttpServletRequest request  
    = (HttpServletRequest) req;
    }

    jsp中的request就是service()中传入的req参数,因为service中定义的是ServletRequest类型,
    我们还需要转换成HttpServletRequest类型。
  2. response

     
       
    public   void  service(ServletRequest req, ServletResponse res)  ... {
        HttpServletResponse response  
    = (HttpServletResponse) res;
    }

    与上例相同,response也是service()中传入的res参数。
  3. out

     

    Writer out  =  response.getWriter();

    out对应着从response中取出的writer对象,负责向响应中输出数据。不过jsp和servlet中的out还是有一点区别,虽然它们都实现了java.io.Writer接口,但servlet中实际类型是java.io.PrintWriter,而jsp中实际类型是javax.servlet.jsp.JspWriter。

  4. pageContext

    这是jsp独有的,servlet里没有page的概念。

  5. session

     
       
    HttpSession session  =  request.getSession();

    直接从request中获得会话。

  6. application

     

    ServletConext application  =  getServletConfig().getServletContext();

    可以通过servletConfig获得ServletContext,这是整个web应用共享的一个对象。

  7. page

     

    Object page  =   this ;

    page就代表当前jsp对象,也可以直接使用this引用。

  8. config

     

    ServletConfig config  =  getServletConfig();

    这是在servlet初始化时由服务器传入的对象,可以通过它获得web.xml中定义的初始化参数。

  9. exception

    想在jsp中使用这个对象需要满足一些条件了。

    首先我们要在14-05/index.jsp中故意抛出一个异常。

                    

    str值是null,直接在null上调用length()方法会引发NullPointerException,然后我们可以看到页面第一行使用jsp指令(directive)设置了errorPage="error.jsp",这样在出现异常的时候就会自动forward到error.jsp中。现在看看error.jsp中有些什么。

     
       
    <% ... @ page contentType="text/html; charset=gb2312" isErrorPage="true" %>
    <! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd" >
    < html >
        
    < head >
            
    < meta  http-equiv ="Content-Type"  content ="text/html; charset=gb2312"   />
            
    < title > index </ title >
        
    </ head >
        
    < body >
            
    <% = exception %>
        
    </ body >
    </ html >

    最主要的是在jsp指令(directive)中设置isErrorPage="true",这样我们就可以在jsp中使用exception对象了,实际上这个异常是从request中取出来的。

其中常用的还是四个作用域对应的对象,其他的了解即可。

转载:http://www.family168.com/tutorial/jsp/html/jsp-ch-14.html#jsp-ch-14-04

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值