请求转发--req.getRequestDispatcher("XX").forward(req, resp);

在一个servlet中可以调用另外一个servlet来处理请求,如:

    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.setCharacterEncoding("utf-8");
        req.setCharacterEncoding("utf-8");

        resp.getWriter().write("XXXXXX 来自TestCoding的信息");

        String name = req.getParameter("name");
        System.out.println(name);

        //重定向,转到TestCoding这个servlet去处理请求
        req.getRequestDispatcher("TestDispatch").forward(req, resp);

    }

其中,getRequestDispatcher的参数是servlet在web.xml中的别名

 

***经测试发现,一旦一个servlet将一个请求转发给了另一个servlet,那么原来的servlet中的resp.getWriter().write()语句就不会执行

 

同时,servlet在向另一个servlet转发时,可以在req中附带上自己的数据,方式如下:

        req.setAttribute(Object key, Object value);

获取前一个servlet传过来的servlet的方式如下:

        req.getAttribute(key);

 

posted @ 2020-09-20 16:41  山下明明子  阅读(994)  评论(0编辑  收藏  举报