资讯专栏INFORMATION COLUMN

调用其他web资源

I_Am / 1985人阅读

摘要:组件可以直接或间接的调用其他资源。调用运行组件服务的一个有效的资源,必须首先通过方法获得一个对象。在响应中包含其他资源导入其他资源是经常使用的,例如广告内容或者版权信息,包含在一个资源返回的响应中。

web组件可以直接或间接的调用其他web资源。一个web组件通过内嵌返回客户端内容的另一个web资源的url来间接调用其他web资源。在执行时,一个web资源通过包含另一个资源的内容或者转发请求到另一个资源直接调用。
调用运行web组件服务的一个有效的资源,必须首先通过getRequestDispatcher方法获得一个RequestDispatcher对象。你可以从web上下文或者一个请求对象中获取RequestDispatcher对象;需要注意的是,这两个方法有一些不同的行为。该方法将所请求的路径作为一个参数;请求可能使用相对路径(),但web上下文必须是一个绝对路径。如果资源是无效的,或者服务容器没有为该类型的资源实现RequestDispatcher对象,getRequestDispatcher将返回null。 您的servlet应该准备好处理这种情况。

在响应中包含其他资源

导入其他web资源是经常使用的,例如广告内容或者版权信息,包含在一个web资源返回的响应中。导入其他web资源,调用RequestDispatcher对象的include方法:

include(request, response);

如果资源是静态的,include方法启用了程序化的服务端关联。如果资源是一个web组件,这个方法的作用是发送请求到要包含的web组件,执行这个web组件,然后将include包含的servlet响应执行的结果。被包含的组件可以访问请求对象,但它对响应的处理是受限的。

它可以写入响应体,并且提交响应

它不能设置响应头或者调用任何方法,比如设置cookie,等影响请求头的操作

将控制器转移到另一个web资源

在某些应用程序中,你可能相对某些web资源做请求的预处理,有另一个组件生成响应。例如,你可能想去部分的处理一个请求,然后根据请求的性质调用另一个web组件。为了控制转发到另一个web资源,你需要调用RequestDispatcher对象的forward方法。当一个请求被转发,请求的url会被设置为转发页面的路径。原始URL和他的构成部分被设置到下面的属性中:

javax.servlet.forward.request_uri
javax.servlet.forward.context_path
javax.servlet.forward.servlet_path
javax.servlet.forward.path_info
javax.servlet.forward.query_string

应该使用forward方法为回复用户提供另一个资源责任。如果你已经在servlet内部响应一个ServletOutputStream对象或者PrintWriter对象,你不能使用这个方法;做这个操作,将抛出IllegalStateException异常。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/73945.html

相关文章

  • Filter : 过滤请求和响应

    摘要:过滤器可以执行的主要任务如下查询请求并采取响应措施组织请求响应对的进一步传递修改请求头和数据。在后一种情况下,过滤器负责填充响应。编写自定义请求和响应代码过滤器有多种方式去修改请求和响应。 filter对象可以改变请求和响应的头信息和内容信息。过滤器和web组件的不同之处在于,过滤器通常不会自行创建响应。作为替代,过滤器提供附加到任意类型的web资源的功能。因此,过滤器不该对要过滤的w...

    张汉庆 评论0 收藏0
  • Servlet第二篇【Servlet调用图、Servlet细节、ServletConfig、Serv

    摘要:无论我访问的是还是。映射的可以使用通配符通配符有两种格式扩展名正斜杠开头并以结尾。当多个用户并发访问共享资源的时候就会出现线程安全问题。 Servlet的调用图 前面我们已经学过了Servlet的生命周期了,我们根据Servlet的生命周期画出Servlet的调用图加深理解 showImg(https://segmentfault.com/img/remote/146000001322...

    luck 评论0 收藏0
  • 详谈 Filter 过滤器

    摘要:元素用于指定过滤器的完整的限定类名。除此之外,过滤器不会被调用。参数用于访问后续过滤器。还可以为指定目标资源为某个,例如当用户访问时,会执行名字为的,这时会执行过滤器。防止中文乱码过滤器项目使用框架时。 文章首发在CSDN博客,转载请务必注明以下所有链接,否则考虑法律追究责任。 CSDN地址:http://blog.csdn.net/tzs_1041218129/article/det...

    wind5o 评论0 收藏0

发表评论

0条评论

I_Am

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<