简单的做了个测试,两个servlet,两个jsp页。
输出结果:
this is servlet2
hello
this is test51.jsp
this is test5.jsp 总结:servlet1中include另外一个servlet2,会计算servlet2,最终转向servlet1决定,servlet2中的request和response对象中存储的数据被和并到servlet1的request和response对象中。 servlet中include一个jsp页,相当于:jsp中<%@ include file="XXX.jsp" %>
public
class
TestDispatcher
extends
javax.servlet.http.HttpServlet
implements
javax.servlet.Servlet
{ public TestDispatcher() { super(); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
RequestDispatcher rd ;
rd = request.getRequestDispatcher("TestDispatcher1"); rd.include(request, response); //String hello = (String) request.getAttribute("hello"); //System.out.println(hello); rd = request.getRequestDispatcher("/test/test51.jsp"); rd.include(request, response); rd = request.getRequestDispatcher("/test/test5.jsp"); rd.include(request, response); } }
public
class
TestDispatcher1
extends
javax.servlet.http.HttpServlet
implements
javax.servlet.Servlet
{ public TestDispatcher1() { super(); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setAttribute("hello", "hello"); response.getWriter().write("this is servlet2<br>");
response.sendRedirect("http://www.csdn.net");
} }
<%
@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"
%>
<%
@ taglib uri="/WEB-INF/c.tld" prefix="c"
%>
<!
DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"
>
<
html
>
<
head
>
<
meta
http-equiv
="Content-Type"
content
="text/html; charset=ISO-8859-1"
>
<
title
>
Insert title here
</
title
>
</
head
>
<
body
>
<
c:out
value
="${hello}"
></
c:out
> <br>
this is test51.jsp. <br>
</
body
>
</
html
>
<%
@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"
%>
<!
DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"
>
<
html
>
<
head
>
<
meta
http-equiv
="Content-Type"
content
="text/html; charset=ISO-8859-1"
>
<
title
>
Insert title here
</
title
>
</
head
>
<
body
>
this is test5.jsp.
</
body
>
</
html
>
this is test51.jsp
this is test5.jsp 总结:servlet1中include另外一个servlet2,会计算servlet2,最终转向servlet1决定,servlet2中的request和response对象中存储的数据被和并到servlet1的request和response对象中。 servlet中include一个jsp页,相当于:jsp中<%@ include file="XXX.jsp" %>