关闭

RequestDispatcher.include(String str);用法。

1691人阅读 评论(0) 收藏 举报
简单的做了个测试,两个servlet,两个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 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" %>
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:19164次
    • 积分:405
    • 等级:
    • 排名:千里之外
    • 原创:15篇
    • 转载:11篇
    • 译文:0篇
    • 评论:2条
    文章分类
    最新评论