码迷,mamicode.com
首页 > 其他好文 > 详细

Servlet技术-请求转发,重定向和包含的关系

时间:2014-06-08 17:19:51      阅读:144      评论:0      收藏:0      [点我收藏+]

标签:servlet   实例   技术   

Web组件之间的关系包含3种,请求转发,URL重定向和包含

1.请求转发

请求转发允许把请求转发给同一应用程序的其他web组件,这种技术通常用于Web应用控制层的Servlet流程控制器,可检查HTTP请求的数据,并将请求转发到合适的目标组件,目标组件执行具体的请求处理操作并生成响应结果。

实例:

如果当前的Servlet组件要把请求转发给一个jsp组件,如hello.jsp,可在Servlet中的service方法中执行一下代码:
RequestDispatcher rd=request.getRequestDispatcher("hello.jsp");

//forward to request URL

rd.forward(request,resposne);

在jsp页面中,可以使用<jsp:forward>标签来转发请求

<jsp:forward page="hello.jsp">

对于请求转发,转发的源组件和目标组件可以共享request范围内的数据

2.URL重定向

请求重定向类似与请求转发,但有一些重要区别,Web组件可以将请求定向到任意的URL,而不仅仅是同一应用中URL。重定向的源组件和目标组件不能共享同一个

HttpServletRequest对象,因此不能共享request范围内的共享数据

实例:

若当前应用的Servlet组件要把请求转发给URL,如http://www.csdn.net/可以在Servlet中的service()方法中执行一下代码

response.sendRedirect("http://www.csdn.net");

HttpServletResponse的sendRedirect()向浏览器返回包含重定向的信息,浏览器根据这一信息迅速发出一个新的新Http请求,请求访问重定向内容

3.包含

包含关系允许一个web组件聚集来自同一个应用中其他Web组件的输出数据,并使用被聚集的数据来创建响应结果,这种技术通常用于模版处理器,它可以控制网页布局。模版中每个页面区域的内容来自不同的URL,从而组成单个页面,这种技术能够为应用程序提供一致的外观和感觉

实例:

Servlet类使用javax.Servlet.RequestDispatcher.include()方法包含其他的web组件,如当前的Servlet组件包含3个jsp组件,header.jsp main.jsp footer.jsp则可以在service中执行一下代码:
RequestDispatcher rd;

rd=response.getRequestDispatcher("\header.jsp");

rd.include(request,response);

rd=response.getRequestDispatcher("\main.jsp");

rd.include(request,response);

rd=response.getRequestDispatcher("\footer.jsp");

rd.include(request,response);

在jsp文件中可以通过<include>指令来包含其他资源

<%@ include file="header.jsp"%>

<%@ include file="main.jsp"%>

<%@ include file="footer.jsp"%>

Servlet技术-请求转发,重定向和包含的关系,布布扣,bubuko.com

Servlet技术-请求转发,重定向和包含的关系

标签:servlet   实例   技术   

原文地址:http://blog.csdn.net/hephec/article/details/28652329

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!