javaee 中的重定向与转发

本文探讨了JavaEE中两种重要的请求处理方式:转发和重定向。转发是服务器内部操作,不涉及浏览器,请求在同一个请求周期内完成。而重定向则是服务器响应后,浏览器收到重定向链接,发起新的请求,整个过程涉及到浏览器的参与。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转发 (是服务器内部的事,不牵扯浏览器,转发的时候该请求好还没有结束)

通过request.getRequestDispatcher("path").forward(request, response);//request是HttpServletRequest的对象
或者通过调用 this.getServletContext().getRequestDispatcher("path").forward(request, response);来实现

重定向 (浏览器发起的请求已被服务器响应,该请求已经结束,但因为服务器给浏览器响应了一个重定向的链接,所以浏览器会自动再发一次所给链接的请求,所以整个过程牵扯到了浏览器)

只能通过response.sendRedirect("path");//responseHttpServletResponse的对象

:重定向发了两次请求,且浏览器的地址栏会发生变化,可以访问域外链接,如 https://www.baidu.com
转发是服务器内部的发生的,不会引起浏览器的二次请求,所以地址栏不会发生变化,但不能访问域外链接,且因为是一次请求,所以可以内部传递数据
        通常为了提供访问速度等,一般都采用转发
package com.itheima.servlet;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class demo8 extends HttpServlet {

	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		
		this.getServletContext().getRequestDispatcher("path");//转发
		request.getRequestDispatcher("path");//转发
		response.sendRedirect("path");//重定向
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		doGet(request, response);
	}

}


     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值