這期內容當中小編將會給大家?guī)碛嘘P利用servlet怎么實現一個重定向功能,文章內容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
成都創(chuàng)新互聯(lián)專注于企業(yè)成都全網營銷推廣、網站重做改版、新寧網站定制設計、自適應品牌網站建設、html5、商城網站開發(fā)、集團公司官網建設、外貿營銷網站建設、高端網站制作、響應式網頁設計等建站業(yè)務,價格優(yōu)惠性價比高,為新寧等各大城市提供網站開發(fā)制作服務。
1.重定向是什么?
這里說的重定向是由http協(xié)議規(guī)定的一種機制。其工作流程如下所述。
(1)客戶端發(fā)起http請求,訪問服務器端組件。
(2)服務器端返回一個狀態(tài)代碼為302的響應結果。該代碼的意思是讓瀏覽器再訪問另一個組件,響應結果中包含著訪問新組件的url地址。新的訪問組件可能在同一個應用中也可能不在同一個應用中。
(3)當瀏覽器接受到這種結果,會自動訪問新的url.
(4)瀏覽器端接受新的url返回結果。
2.實現
重定向通過Servlet API 中HttpServletReponse接口提供的 sendRedirect(String location)方法完成。
3.重定向特點
3.1 servlet源組件的響應結果不會返回到客戶端。
3.2 servlet源組件和目標組件不會共享同一個ServletRequest對象。
3.3 如果源組件在進行重定向前提前提交響應結果,會報異常。
3.4 重定向的地址不必是同一個服務器的應用。
4.案例
Check1Servlet 第一次請求的類
package com.learn; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.PrintWriter; /** * Created by Administrator on 2017/09/28. */ public class Check1Servlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String userName = req.getParameter("name"); String message = ""; if(userName == null){ message = "please input your name"; } else { message = userName; } req.setAttribute("mess",message); PrintWriter out = resp.getWriter(); out.print("before redirect "); System.out.println("before redirect"); resp.sendRedirect("out1?mess="+message); out.print("after redirect"); System.out.println("after redirect"); out.close(); } }
Out1Servlet 重定向的類
package com.learn; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.PrintWriter; /** * Created by Administrator on 2017/09/28. */ public class Out1Servlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String mess = (String) req.getAttribute("mess"); System.out.println("請求范圍內的數據:"+mess); mess = req.getParameter("mess"); System.out.println("請求參數中的:"+mess); PrintWriter out = resp.getWriter(); out.write(mess); out.close(); } }
控制臺輸出結果:
上述就是小編為大家分享的利用servlet怎么實現一個重定向功能了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道。