首页 理论教育JavaWeb应用开发中的流转控制对象及技术

JavaWeb应用开发中的流转控制对象及技术

【摘要】:在JSP 开发中,转发会把处理用户请求的控制权转交给其他Web 组件。所有与发送内容直接有关的任务必须由被转发的组件完成。第二种流转控制技术是包含。与forward 传递控制权不同的是,执行include 的组件维持对请求的控制权,只是简单地请求将另一个组件的输出包含在该页面的某个特定的地方。而使用application 对象的getRequestDispatcher()方法获取RequestDispatcher 对象, 相当于使用的是 ServletContext 对象的getRequestDispatcher()方法。例如,使用内置对象application 的流转控制机制的代码片段:

在JSP 开发中,转发(forward)会把处理用户请求的控制权转交给其他Web 组件。forward 在有些时候会比较有用,比如说需要用一个组件设置一些JavaBean、打开或者关闭资源、认证用户,或者在将控制权传递给下一个组件之前需要执行一些准备工作的时候。在转发之前可以执行很多类型的任务,但是要转发的组件不能设置响应头部信息,也不能有内容发送到输出缓冲区。所有与发送内容直接有关的任务必须由被转发的组件完成。

第二种流转控制技术是包含(include)。与forward 传递控制权不同的是,执行include 的组件维持对请求的控制权,只是简单地请求将另一个组件的输出包含在该页面的某个特定的地方。对于常见的设计元素,例如页首、页脚和导航栏等,这是一个非常好的方法。

forward 和include 都是通过一个专门的对象java.servlet.RequestDispatcher来完成的。调用application 对象的getRequestDispatcher()方法,或者调用request 对象的getRequestDispatcher()方法都可以获得一个RequestDispatcher 对象。而使用application 对象的getRequestDispatcher()方法获取RequestDispatcher 对象, 相当于使用的是 ServletContext 对象的getRequestDispatcher()方法。而获取ServletContext 对象的方式有多种,可以使用config、pageContext、request、session 等内置对象的getServletContext()方法。(www.chuimin.cn)

例如,使用内置对象application 的流转控制机制的代码片段: