轉發(javaWeb)
從一個servlet轉發到另一個servlet
代碼示例:
/Servlet1:
package com.helong.dispatcher;
import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class Servlet1
*/
@WebServlet("/Servlet1")
public class Servlet1 extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println(request);
// 請求轉發
//1.獲取轉發器
RequestDispatcher disp = request.getRequestDispatcher("/Servlet2");
//域 能夠存儲數據 轉發的同時向域中寫入一些數據
request.setAttribute("hl", "helong");
//2.轉發
disp.forward(request, response);
}
}
/Servlet2:
package com.helong.dispatcher;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class Servlet1
*/
@WebServlet("/Servlet2")
public class Servlet2 extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//接收到的是同一個request和response
System.out.println(request);
//將存放到域中的數據取出來
String value = (String) request.getAttribute("hl");
System.out.println(value);
System.out.println("Servlet2");
}
}