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