HttpServletResponse實現重定向


寫在前面:

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 }
View Code

注冊和映射:

 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>
View Code

重定向和轉發的區別

1、相同點:頁面都會實現跳轉

2、不同點:轉發的時候,url地址欄不會發生變化;重定向的時候,url地址欄會發生變化。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM