Web开发中的四大域对象 与 jsp之九大内置对象

Web开发中的四大域对象

简介:

page(jsp有效)  request(一次请求) session(一次会话)application(当前web应用)

page域指的是pageContext.

request域指的是requestHttpServletRequest

session 域指的是 sessionHTTPSession

application 域指的是 applicationServletContext

之所以他们是域对象,原因就是他们都内置了map集合,都有setAttribute getAttribute方法。

他们都有自己固定的生命周期和作用域。这四个对象的生命周期(生命周期就是值对象的创建到销毁的期间):

四个域对象的声明周期:

page:jsp页面被执行,生命周期开始,jsp页面执行完毕,声明周期结束。(当前页面)

request:用户发送一个请求,开始,服务器返回响应,请求结束,生命周期结束。(转发)

session:用户打开浏览器访问,创建session(开始),session超时或被声明失效,该对象生命周期结束。(私有的)

application:web应用加载的时候创建。Web应用被移除或服务器关闭,对象销毁。[结束]。(全局的)         
 

注意:

Page只在当前jsp有效,每次请求分别对应不同的request。

Request只在当前请求有效,每次请求分别对应不同的request域。

Session只在一次会话中有效,会话结束就无法取到数据了。

四个域对象在选择的时候,能用范围小的绝不用范围大的:

page:数据只是暂时存在集合,在jsp页面的其他地方要用,用page(页面中自定义的map)。

Request:数据只是做显示的,看完了就没用了。就存request域,请求转发,Servlet产生的处理结果(数据)交给jsp显示,数据转发可以带数据。

Session:数据给用户看完了,一定还要用,会话结束了就没用了。

用户登录,用户信息发给客户端看,看完了,一会访问别的页面还要看用户信息。

购物车,购物车成功了,给用户看购物车,待会随时间可以查看购物车。

请求重定向,因为是两次请求,每一次请求的数据,第二次请求还要看。

application:数据给一个用户用完了,别人还要用。

聊天室,聊天记录,需要给所有的用户看。

统计网站在线人数,所有看到的应该是一个数。

总结:

    四个域对象在选择的时候,能用范围小的绝不用范围大的。需要定义Map时不如用page,请求Servlet,转发给jsp的数据存request,请求重定向带过去的数据存Session,全局的数据存application。

 jsp之九大内置对象:

一,什么是内置对象?

在jsp开发中会频繁使用到一些对象,如ServletContext HttpSession PageContext等.如果每次我们在jsp页面中需要使用这些对象都要自己亲自动手创建就会特别的繁琐.SUN公司因此在设计jsp时,在jsp页面加载完毕之后自动帮开发者创建好了这些对象,开发者只需要使用相应的对象调用相应的方法即可.这些系统创建好的对象就叫做内置对象.

在servlet程序中,如果开发者希望使用session对象,必须通过request.getSession()来得到session对象;而在jsp程序中,开发中可直接使用session(系统帮我们创建好的session对象的名字就叫session)调用相应的方法即可,如:session.getId().

二,九大内置对象到底是哪九大呢?

内置对象名          类型
request           HttpServletRequest
response        HttpServletResponse
config             ServletConfig
application     ServletContext
session           HttpSession
exception       Throwable
page                Object(this)
out                   JspWriter
pageContext   PageContext 

三,解析几个内置对象

1)out对象对象,对象类型是JspWriter类,相当于带缓存的PrintWriter(不带缓存)

PrintWriter:write("内容")           直接向浏览器输出内容

JspWriter:writer("内容")            向jsp缓冲区写出内容

JspWriter当满足以下条件时之一时,缓冲区的内容写出:

a,缓冲区满了

b,刷新缓冲区

c,关闭缓冲区

d,jsp页面执行完毕

2)pageContext对象

pageContext的对象类型是PageContext,叫jsp的上下文对象.

pageContext作用:可以获取其他八个内置对象

  1. //示例:

  2. pageContext.getOut();

  3. pageContext.getServletConfig()

使用场景:在自定义标签时会频繁使用到PageContext对象;或者是定义一个方法需要用到多个对象时,传一个pageContext对象就能解决问题.

猜你喜欢

转载自blog.csdn.net/weixin_41384583/article/details/82220020
今日推荐