域對象 request
阿新 • • 發佈:2018-03-15
esp print int system class end 進行 color 客戶端
一)域對象:
1)request的生命周期:
從請求開始創建,到響應完成結束。
2) 作用:攜帶一次請求內的數據。
3)請求轉發:
請求轉發:
1)瀏覽器發送請求到服務器A,然後服務器A將請求轉發到B 然後B處理結果將原路返回。二重定向,直接url發生變化,將客戶端請求的直接轉給另一個服務器。而不是由服務器A進行請求的轉發。
2)服務器B可以獲取瀏覽器的發送過來的所有參數。request可以進行屬性值的設置類似servletcontex。而轉發確不是,在服務器A設置的值 在B上無法獲取。
方法:request.getRequestDispatcher("/req1").forward(request,response);
服務器A:
1 package jd.com.rsp; 2 3 import javax.servlet.ServletException; 4 import javax.servlet.annotation.WebServlet; 5 import javax.servlet.http.HttpServlet; 6 import javax.servlet.http.HttpServletRequest; 7 import javax.servlet.http.HttpServletResponse; 8 import java.io.IOException; 9 10@WebServlet(name = "Servletreq") 11 public class Servletreq extends HttpServlet { 12 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 13 System.out.println("請求轉發給req1"); 14 request.setAttribute("pwd","123"); 15request.getRequestDispatcher("/req1").forward(request,response); 16 17 } 18 19 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 20 doPost(request,response); 21 } 22 }
服務器B:
1 package jd.com.rsp; 2 3 import javax.servlet.ServletException; 4 import javax.servlet.annotation.WebServlet; 5 import javax.servlet.http.HttpServlet; 6 import javax.servlet.http.HttpServletRequest; 7 import javax.servlet.http.HttpServletResponse; 8 import java.io.IOException; 9 10 @WebServlet(name = "Servletreq1") 11 public class Servletreq1 extends HttpServlet { 12 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 13 14 } 15 16 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 17 System.out.println("請求轉發到req1了。"); 18 String user=request.getParameter("user"); 19 Object pwd=request.getAttribute("pwd"); 20 System.out.println("獲取參數"+user); 21 System.out.println("獲取req設置的值"+pwd); 22 } 23 }
域對象 request