通过ServletContext 实现客户端对一个servlet 的请求转发到另一个servlet:
ServletContextDemo2.java文件:
package com.neu; //转发源 import java.io.IOException; import javax.servlet.RequestDispatcher; import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class ServletContextDemo2 extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ServletContext sc = getServletContext(); RequestDispatcher rd = sc.getRequestDispatcher("/servlet/ServletContextDemo3");//转发的地址。ServletContext得到的,地址必须以"/"开头,该"/"代表着当前应用的访问路径。 rd.forward(request, response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { } }
ServletContextDemo3.java文件:
运行结果:
package com.neu; //转发的目标 import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class ServletContextDemo3 extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.getWriter().write("I am three"); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { } }
运行:http://localhost:8080/ServletDemo/servlet/ServletContextDemo2
结果:I am three