寫在前面:
web服務器接收到客戶端的http請求,針對這個請求,分別建立了一個代表請求的HttpServletResponse對象;和一個代表響應的HttpServletRequest對象。
如果要獲取客戶端請求過來的參數:HttpServletRequest對象。
如果要給客戶端響應一些信息:找HttpServletResponse對象。
HttpServletResponse實現重定向
resp.sendRedirect("/response_war/down");
一個web資源收到客戶端請求后,它會通知客戶端去訪問另一個web資源,這個過程叫重定向。
比如:用戶登錄,用戶登錄成功后,會跳轉到另一個頁面,這個過程就是重定向。
重定向的時候,一定要注意路徑問題,否則會404。
正確寫法:
class:

1 package com.wang.servlet; 2 3 import javax.servlet.ServletException; 4 import javax.servlet.ServletOutputStream; 5 import javax.servlet.http.HttpServlet; 6 import javax.servlet.http.HttpServletRequest; 7 import javax.servlet.http.HttpServletResponse; 8 import java.io.FileInputStream; 9 import java.io.IOException; 10 import java.net.URLEncoder; 11 12 public class RedirectServlet extends HttpServlet { 13 @Override 14 protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { 15 resp.sendRedirect("/response_war/down"); 16 } 17 18 @Override 19 protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { 20 doGet(req, resp); 21 } 22 }
注冊和映射:

1 <!--注冊和映射--> 2 <servlet> 3 <!--這個hello的名字是隨便起的,只要和下面的mapping中的名字相同就行--> 4 <servlet-name>RedirectServlet</servlet-name> 5 <servlet-class>com.wang.servlet.RedirectServlet</servlet-class> 6 </servlet> 7 <!--一個Servlet對應一個Mapping:映射--> 8 <servlet-mapping> 9 <servlet-name>RedirectServlet</servlet-name> 10 <url-pattern>/red</url-pattern> 11 </servlet-mapping>
重定向和轉發的區別
1、相同點:頁面都會實現跳轉
2、不同點:轉發的時候,url地址欄不會發生變化;重定向的時候,url地址欄會發生變化。