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

现在我们先来说一下四个作用域,以便描述各大对象都分属于什么作用域,下面我们就通过一张简单的表格来看看各大作用域的信息共享范围:

    第一个作用域是page,他只在当前页面有效,也就是用户请求的页面有效,当当前页面关闭或转到其他页面时,page对象将在响应回馈给客户端后释放。

    第二个作用域是request,他在当前请求中有效,request可以通过setAttribute()方法实现页面中的信息传递,也可以通过forward()方法进行页面间的跳转,需要注意的是request是转发不是重定向,转发相对于浏览器来说是透明的,也就是无论页面如何跳转,地址栏上显示的依旧是最初的地址。

    第三个作用域是session,他在当前回话中有效。当一个台电脑上的同一浏览器对服务器进行多次访问时,在这多次访问之间传递的信息就是session作用域的范围。它从浏览器发出第一个HTTP请求即可认为会话开始,但是会话结束的时间是不确定的,因为在浏览器关闭时并不会通知服务器,一般Tomcat设置的默认时间为120分钟,也可以通过setMaxInactiveInterval(int)方法进行设置,或是通过invalidate()方法强制结束当前会话。

    第四个作用域是application,他在所有的应用程序中都有效,也就是当服务器开始到服务器结束这段时间,application作用域中存储的数据都是有效的,同样可以通过setAttribute赋值和getAttribute取值。

    好了,相信现在大家已经对四个作用域有了一定的了解,下面我们来说一下九大内置对象。

内置对象一(out):

    out 对象用于在Web浏览器内输出信息,并且管理应用服务器上的输出缓冲区。在使用 out 对象输出数据时,可以对数据缓冲区进行操作,及时清除缓冲区中的残余数据,为其他的输出让出缓冲空间。待数据输出完毕后,要及时关闭输出流。其最常用的方法为print,可在页面中显示字符串信息。out的作用域为page:

<%out.print("Hello"); %>

 

内置对象二(request):

    request 对象是 javax.servlet.httpServletRequest类型的对象。 该对象代表了客户端的请求信息,主要用于接受通过HTTP协议传送到服务器的数据。(包括头信息、系统信息、请求方式以及请求参数等)。request对象的作用域为一次请求(也就是request作用域)。request的常用方法有getParameter(String name)根据表单组件名称获取页面提交数据,getParameterValues(String name)获取一组以相同名称命名的表单组件提交的数据,setCharacterEncoding(String charset)在调用getParameter()方法前进行设定,用于解决中文乱码,getRequestDispatcher(String path)返回一个javax.servlet.RequestDispatcher对象,该对象的forward()方法用于转发请求:

 

 
  1. <%

  2. Object obj = new Object();

  3. request.getParameter("uname");

  4. request.getParameterValues("rid");

  5. request.setCharacterEncoding("UTF-8");

  6. request.getRequestDispatcher("目标页面").forward(request,response);

  7. %>


 

 

 

内置对象三(response):

    response 代表的是对客户端的响应,主要是将JSP容器处理过的对象传回到客户端。response对象也具有作用域,它只在JSP页面内有效。response的常用方法有addCookie(Cookie cookie)向客户端添加cookie,serContentType(String type)设置HTTP响应的contentType类型,setCharacterEncoding(String charset)设置响应所采用的字符编码类型,sendRedirect(String location)将请求重新定位到一个新的地址上,这是地址栏上的地址会改变:

 

 
  1. <%

  2. response.addCookie(cokkie);

  3. response.setContentType("type");

  4. response.setCharacterEncoding("utf-8");

  5. response.sendRedirect("重新定位的页面");

  6. %>


 

 

内置对象四(session):

    session 对象是由服务器自动创建的与用户请求相关的对象。服务器为每个用户都生成一个session对象,用于保存该用户的信息,跟踪用户的操作状态。session对象内部使用Map类来保存数据,因此保存数据的格式为 “Key/value”。 session对象的value可以使用对象类型。session的常用方法有setAttribute(String key,Object value)以key/value的形式将对象保存到session中,getAttribute(String key)通过key值获取session中保存的value,invalidate()强制session对象失效,getId()获取sessionid,setMaxInactiveInterval(int interval)设置session的非活动时间,getMaxInactiveInterval()获取session的有效非活动时间,removeAttribute(String key)删除session中对应key的value值:

 

 
  1. <%

  2. Object obj = new Object();

  3. session.setAttribute("key",obj);

  4. session.getAttribute("key");

  5. session.setMaxInactiveInterval(100);

  6. session.getMaxInactiveInterval();

  7. session.getId();

  8. session.removeAttribute("key");

  9. session.invalidate();

  10. %>


 

 

内置对象五(application):

    application 对象可将信息保存在服务器中,直到服务器关闭,否则application对象中保存的信息会在整个应用中都有效。与session对象相比,application对象生命周期更长,类似于系统的“全局变量”。application常用方法有setAttribute(String key,Object value)以key/value的形式将对象存储到application中,getAttribute(String key)通过key获取application中存储的对象,getRealPath(String path)返回相对路径的真实路径:

 

 
  1. <%

  2. Object obj = new Object();

  3. application.setAttribute("key",obj);

  4. application.getAttribute("key");

  5. application.getRealPath("路径名");

  6. %>


 

 

内置对象六(pageContext):

    pageContext 对象的作用是取得任何范围的参数,通过它可以获取 JSP页面的out、request、reponse、session、application 等对象。pageContext对象的创建和初始化都是由容器来完成的,在JSP页面中可以直接使用 pageContext对象。pageContext的常用方法有getRequest()获取request对象,getResponse()获取response对象,getSession()获得session对象,getOut()获取out对象,setAttribute(String key,Object value)保存属性,getAttribute(String key)获取属性,include("url")请求指定的资源,并且将目标资源的响应结果包含在调用页面的响应中:

 

 
  1. <%

  2. Object obj = new Object();

  3. pageContext.getRequest();

  4. pageContext.getResponse();

  5. pageContext.getSession();

  6. pageContext.getOut();

  7. pageContext.setAttribute("key",obj);

  8. pageContext.getAttribute("key");

  9. pageContext.include("资源地址");

  10. %>

 

 

内置对象七(page):

    page 对象代表JSP本身,只有在JSP页面内才是合法的。 page隐含对象本质上包含当前 Servlet接口引用的变量,类似于Java编程中的 this 指针。

内置对象八(config): 

    config 对象的主要作用是取得服务器的配置信息。通过 pageConext对象的 getServletConfig() 方法可以获取一个config对象。当一个Servlet 初始化时,容器把某些信息通过 config对象传递给这个 Servlet。 开发者可以在web.xml 文件中为应用程序环境中的Servlet程序和JSP页面提供初始化参数。

内置对象九(exception):

    exception 对象的作用是显示异常信息,只有在包含 isErrorPage="true" 的页面中才可以被使用,在一般的JSP页面中使用该对象将无法编译JSP文件。excepation对象和Java的所有对象一样,都具有系统提供的继承结构。exception 对象几乎定义了所有异常情况。在Java程序中,可以使用try/catch关键字来处理异常情况; 如果在JSP页面中出现没有捕获到的异常,就会生成 exception 对象,并把 exception 对象传送到在page指令中设定的错误页面中,然后在错误页面中处理相应的 exception 对象。

    因为后三个对象很少在JSP页面中使用,所以在这里不过多介绍。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值