九大隐含对象
*类型:ServletContext
*作用:ServletContext对象
*Servlet中的获取方式:this.getServletContext()
2、session
*类型:HttpSession
*作用:会话对象
*Servlet中的获取方式:request.getSession()
3、request
*类型:HttpServletRequest
*作用:请求对象
*Servlet中的获取方式:直接使用
4、pageContext
*类型:pageContext
*作用:域对象;jsp老大(可以通过老大直接获取其他八个隐含对象)
*Servlet中的获取方式:无
5、response
*类型:HttpServletRequest
*作用:与Servlet中的response对象一致,响应对象
*Servlet中的获取方式:直接使用
6、page
*类型:Object
*作用:page=this,当前jsp对象
7、out
*类型:JSPWriter
*作用:与Servlet中的PrintWriter的作用类似。(都继承了Writer)
8、config
*类型:ServletConfig
*作用:与Servlet中的ServletConfig作用一致
*Servlet中的获取方式:this.getServletConfig()
9、exception
*类型:Throwable
*作用:接受处理异常信息
四大域对象
*getAttribute( )
*setAttribute()
*removeAttribute()
pageContext (PageContextImpl 类) 当前 jsp 页面范围内有效
request (HttpServletRequest 类)、 一次请求内有效
session (HttpSession 类)、 一个会话范围内有效(打开浏览器访问服务器,直到关闭浏览器)
application (ServletContext 类) 整个 web 工程范围内都有效(只要 web 工程不停止,数据都在)
域对象是可以像 Map 一样存取数据的对象。四个域对象功能一样。不同的是它们对数据的存取范围。
虽然四个域对象都可以存取数据。在使用上它们是有优先顺序的。
四个域在使用的时候,优先顺序分别是,他们从小到大的范围的顺序。
pageContext ====>>> request ====>>> session ====>>> application
out.write() 输出字符串没有问题
out.print() 输出任意数据都没有问题(都转换成为字符串后调用的 write 输出)
结论:在 jsp 页面中,可以统一使用 out.print()来进行输出