jsp九个内置对象、四个域对象及Servlet的三大域对象
2017-09-16 13:51
591 查看
一,什么是内置对象?
在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作用:可以获取其他八个内置对象
//示例: pageContext.getOut(); pageContext.getServletConfig()
使用场景:在自定义标签时会频繁使用到PageContext对象;或者是定义一个方法需要用到多个对象时,传一个pageContext对象就能解决问题.
四,JSP中四大域对象
分类:ServletContext context域 HttpServletRequet request域 HttpSession session域 --前三种在学习Servlet时就能接触到 PageContext page域 --jsp学习的
域对象的作用:保存数据,获取数据,共享数据.
保存数据: pageContext.setAttribute("内容");//默认保存到page域 pageContext.setAttribute("内容",域范围常量);//保存到指定域中 //四个域常量 PageContext.PAGE_SCOPE PageContext.REQUEST_SCOPE PageContext..SESSION_SCOPE PageContext.APPLICATION_SCOPE 获取数据: pageContext.getAttribute("内容"); <p>pageContext.getAttribute("name",<span style="font-family:宋体;">域范围常量</span><span style="font-family:Calibri;">);</span></p>//自动在四个域中搜索数据 pageContext.findAttribute("内容");//在四个域中自动搜索数据,顺序:page域->request域->session域->application域(context域)
域作用范围:
page域: 只能在当前jsp页面使用 (当前页面)
request域: 只能在同一个请求中使用 (转发)
session域: 只能在同一个会话(session对象)中使用 (私有的)
context域: 只能在同一个web应用中使用 (全局的)
Servlet的三大域对象
ServletContext context域 HttpServletRequet request域 HttpSession session域
ServletConfig的解析;
/** * 在javax.servlet包中,定义了ServletConfig接口。 * Servlet容器使用ServletConfig对象在Servlet初始化时向其传递配置信息。 *所谓的Serlvet配置信息,就是在Web应用程序中web.xml文件中配置有关Servlet的内容。 * *一个ServletConfig对象对应web.xml中一对<serlvet></servlet><servlet-mapping></servlet-mapping> *其生命周期:是一个servlet的实例化,初始化,就绪,销毁 *相比较与servletContext来说较短 */ public class ServletConfig_Test extends HttpServlet{ @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ServletConfig servletConfig = getServletConfig(); //getInitParameter(String name)方法:返回指定名称的初始化参数的值,如果参数不存在则返回null值。 String blog = servletConfig.getInitParameter("blog"); //getServletName()方法:获取web.xml文件中配置的Servlet名称。 String servletname = servletConfig.getServletName(); } }
ServletContext
/** * servletContext对象是Servlet三大域对象之一,每个Web项目都拥有且唯一的一个ServletContext对象, * 该对象是Web项目的全局对象或者上下文。Tomcat服务器在启动web项目时,会自动创建一个ServletContext对象, * 在关闭时,会自动销毁这个ServletContext对象。ServletContext对象可以在整个Web应用中共享数据资源。 * * 由于一个WEB应用中的所有Servlet共享同一个ServletContext对象,因此Servlet对象之间可以通过ServletContext对象 * 实现通讯。 * *1) 实现数据共享 *2) 获取全局配置参数 *3) 请求转发 *a) 拿取请求转发器,然后转发 *4) 获取资源文件 *5) 用来获得文件的MIME的类型. * */ public class ServletContext_text extends HttpServlet{ ServletContext sc ; @Override public void init(ServletConfig config) throws ServletException { super.init(config) ; sc = config.getServletContext() ;//1. } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //第二种方式 ServletContext sc1 = this.getServletContext() ; System.out.println(sc); System.out.println(sc1 == sc); //第三种方式 ServletContext sc2 = request.getSession().getServletContext() ; System.out.println(sc2 == sc); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }
相关文章推荐
- Web小结---Servlet,JSP,过滤器和监听器,四个作用域和九个内置对象,EL表达式语言,自定义标签,JSTL,国际化与汉字的编码
- Web小结---Servlet,JSP,过滤器和监听器,四个作用域和九个内置对象,EL表达式语言,自定义标签,JSTL,国际化与汉字的编码
- Servlet,JSP,过滤器和监听器,四个作用域和九个内置对象,EL表达式语言,自定义标签,JSTL
- Web小结---Servlet,JSP,过滤器和监听器,四个作用域和九个内置对象,EL表达式语言,自定义标签,JSTL,国际化与汉字的编码
- web day12 JSP三大指令,九个内置对象,动作标签,JavaBean(包含内省),EL表达式,函数库
- 两张表弄懂Jsp中的四个作用域域和九个内置对象
- jsp中9个内置对象与servlet对应关系及四个作用域
- servlet生命周期 & http & JSP九个内置对象
- jsp中9个内置对象与servlet对应关系及四个作用域
- JSP中的九个内置对象及四个作用域
- JSP 四个作用域及九个内置对象
- jsp中9个内置对象与servlet对应关系及四个作用域
- jsp中9个内置对象与servlet对应关系及四个作用域
- jsp中9个内置对象与servlet对应关系及四个作用域
- jsp中9个内置对象与servlet对应关系及四个作用域
- servlet中如何的到像jsp中的九个内置对象呢
- Jsp的九个内置对象与四个域对象
- JSP九大内置对象及Servlet四个作用域
- jsp中9个内置对象与servlet对应关系及四个作用域
- jsp中9个内置对象与servlet对应关系及四个作用域