九大隐含对象
? *类型: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()来进行输出