中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java中轉發與重定向的區別

發布時間:2021-06-18 10:51:47 來源:億速云 閱讀:148 作者:chen 欄目:編程語言

本篇內容介紹了“Java中轉發與重定向的區別”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

 轉發與重定向簡介

轉發和重定向都是實現頁面跳轉

也就是說,當我們訪問一個 Servlet 的時候 ,Servlet 幫我們跳轉到另一個界面。

轉發與重定向的區別

  • 實現轉發調用的是 HttpServletRequest 對象中的方法

  • 實現重定向調用的是 HttpServletResponse 對象中的方法

    • 轉發時瀏覽器中的 url 地址不會發生改變

    • 重定向時瀏覽器中的 url 地址會發生改變

  • 轉發時瀏覽器只請求一次服務器

  • 重定向時瀏覽器請求兩次服務器

    • 轉發能使用 request 帶數據到跳轉的頁面

    • 重定向能使用 ServletContext 帶數據到跳轉的頁面

代碼演示轉發和重定向

package servlet;   import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException;   @WebServlet("/login") public class ServletDemo extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //獲取表單提交過來的數據 //getParameter()方法可以獲取請求的參數信息 String name = req.getParameter("name"); String password = req.getParameter("password");   //打印獲取到的參數信息 System.out.println("name:"+name); System.out.println("password:"+password);   //如果name=admin,password=123,則跳轉到succee.jsp,否則跳轉到fail.jsp if("admin".equals(name)&&"123".equals(password)){ //通過轉發實現跳轉 req.getRequestDispatcher("/success.jsp").forward(req,resp); }else { //通過重定向實現跳轉 resp.sendRedirect("/fail.jsp"); } }   @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req, resp);   } }

Java中轉發與重定向的區別

Java中轉發與重定向的區別

Java中轉發與重定向的區別

Java中轉發與重定向的區別

JSP代碼

<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>登錄</title> </head> <body> <form action="/login"> <table align="center"> <tr> <td>賬號:</td> <td><input type="text" name="name"></td> </tr> <tr> <td>密碼:</td> <td><input type="text" name="password"></td> </tr> <tr> <td><input type="submit" value="登錄"></td> <td><input type="reset" value="重置"></td> </tr> </table> </form> </body> </html>

轉發和重定向如何帶數據到某個頁面

Java中轉發與重定向的區別

package servlet; import javax.servlet.ServletContext;  import javax.servlet.ServletException;  import javax.servlet.annotation.WebServlet;  import javax.servlet.http.HttpServlet;  import javax.servlet.http.HttpServletRequest;  import javax.servlet.http.HttpServletResponse;  import java.io.IOException; @WebServlet("/login")  public class ServletDemo extends HttpServlet {  @Override  protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //通過轉發帶數據  req.setAttribute("name","張三");  req.getRequestDispatcher("/send.jsp").forward(req,resp); } @Override  protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {  doGet(req, resp); }  }

send.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>轉發和重定向傳代數據練習</title> </head> <body> <% //1、接收轉發傳代的數據 String name = (String) request.getAttribute("name"); out.println("轉發傳代的數據:"+name);   %>   </body> </html>

Java中轉發與重定向的區別

package servlet; import javax.servlet.ServletContext;  import javax.servlet.ServletException;  import javax.servlet.annotation.WebServlet;  import javax.servlet.http.HttpServlet;  import javax.servlet.http.HttpServletRequest;  import javax.servlet.http.HttpServletResponse;  import java.io.IOException; @WebServlet("/login")  public class ServletDemo extends HttpServlet {  @Override  protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {    //通過重定向帶數據  ServletContext servletContext = this.getServletContext();  servletContext.setAttribute("name","王二麻子");  resp.sendRedirect("/send2.jsp"); } @Override  protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {  doGet(req, resp); }  }

send2.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>轉發和重定向傳代數據練習</title> </head> <body> <% //1、接收重定向傳代的數據 String name1 = (String)application.getAttribute("name"); out.println("重定向傳代的數據:"+name1); %> </body> </html>

練習

Java中轉發與重定向的區別

index.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> <form action="CountServlet" method="post"> <h4>加法計算器</h4> 加數1:<input type="number" name="one"> 加數2:<input type="number" name="two"> <input type="submit" value="計算"> </form> </body> </html>

count.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> 計算結果:<%=request.getAttribute("count")%> <!--計算結果:<%=application.getAttribute("count")%>--> </body> </html>

Servlet

package servlet; import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; @WebServlet("/CountServlet") public class CountServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String one=request.getParameter("one"); int o=Integer.parseInt(one);//強制轉換,將String類型的數據轉換成int類型 String two=request.getParameter("two"); int t=Integer.parseInt(two);//強制轉換,將String類型的數據轉換成int類型 System.out.println(one+" "+two); int c=o+t; String co=String.valueOf(c);//將int類型的數據轉換成String類型 //轉發,可以攜帶數據 request.setAttribute("count",co); request.getRequestDispatcher("count.jsp").forward(request,response); //用于存放數據 // ServletContext s=this.getServletContext(); // s.setAttribute("count",co); //重定向只能依靠ServletContext獲取數據 // response.sendRedirect("count.jsp"); System.out.println(co); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request,response); } }

“Java中轉發與重定向的區別”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

奉化市| 通辽市| 安西县| 广灵县| 大化| 永济市| 甘孜县| 临高县| 焦作市| 讷河市| 沙雅县| 资阳市| 湖北省| 三明市| 天气| 龙井市| 喀喇| 大安市| 镇康县| 扬中市| 麻江县| 潞城市| 阜宁县| 扎兰屯市| 华阴市| 股票| 民乐县| 绿春县| 延安市| 衡阳县| 马关县| 泰州市| 图木舒克市| 鱼台县| 白山市| 汽车| 宁陵县| 营口市| 磴口县| 崇左市| 烟台市|