在一个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);