请求转发和重定向的区别
作者:互联网
package study; import jakarta.servlet.ServletException; import jakarta.servlet.annotation.WebServlet; import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; /** * 请求转发 与 重定向 的区别 * 1 请求转发的地址栏不会发生改变,而重定向的地址栏会发生改变 * 2 请求转发只有一次请求,而重定向有俩次请求 * 3 请求转发时request对象可以共享,而重定向时request对象不可以共享 * 4 请求转发是服务端行为,重定向是客户端行为 * 5 请求转发的地址只能是当前项目的资源,重定向可以是任意地址 * * @author YAM */ @WebServlet("/s06") public class Servlet06 extends HttpServlet { @Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println("Servlet06..."); String uname = req.getParameter("uname"); System.out.println(uname); req.setAttribute("upwd", "123456"); //请求转发 // req.getRequestDispatcher("index.jsp").forward(req,resp); //重定向 // resp.sendRedirect("index.jsp"); //请求转发 无法到百度 , 根路径 为 /servlet03_war_exploded/06://baidu.com // req.getRequestDispatcher("http://www.baidu.com").forward(req, resp); //重定向 跳转至百度 resp.sendRedirect("http://www.baidu.com"); } }
jsp代码:
<%-- Created by IntelliJ IDEA. User: MasterYang Date: 2022/8/19 Time: 22:45 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>$Title$</title> </head> <body> <%-- Java 脚本段 --%> <% String uname = request.getParameter("uname"); String upwd = (String) request.getAttribute("upwd"); out.print(uname); out.print("----------"); out.print(upwd); %> </body> </html>
标签:请求,resp,req,转发,import,重定向 来源: https://www.cnblogs.com/MasterYang/p/16607267.html