学习servlet之间的跳转 随笔mark

本文深入探讨了Servlet中的两种跳转方式:转向(转发)和重定向。详细解释了如何使用RequestDispatcher对象进行转发,以及如何利用HttpServletResponse设置状态码实现重定向,包括301和302的区别。

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

Servlet之间的跳转分为两种:

1.转向(转发)

转向是通过RequestDispatcher对象的forward(HttpServletRequest req,HttpServletResponse res) 方法来实现的。RequestDispatcher可以通过HttpServletRequest的getRequestDispatcher()方法获得。例如:

RequestDispatcher dispatcher = request.getRequestDispatcher("/servlet/LifeCycleServlet");

dispatcher.forward(request,response);

getRequestDispatcher()方法的参数必须以"/"开始,"/"表示本Web应用程序的根目录。如果要跳转到Servlet为http://localhost:8080/servlet/servlet/LifeCycleServlet,则参数应为"/servlet/LifeCycleServlet"

Forward不仅可以跳转到本应用的另一个Servlet,Jsp也main也可以跳转到另一个文件,甚至跳转到WEB-INF文件夹下的文件,框架中常用一个Servlet来集中处理请求,然后跳转到相应的Servlet,或者在Servlet中处理业务逻辑,然后跳转到JSP页面中显示处理的结果

2.重定向

重定向是利用服务器返回的状态码来实现的,客户端浏览器请求服务器的时候,服务器端会返回一个状态码,服务器端通过HttpServletResponse的setStatus(int status)方法设置状态码,如果服务器返回的是301或者302,则浏览器回到新的网址重新请求该资源

301、302都表示重定向,区别是301是永久性重定向,302是临时性重定向,重定向到另一个网址:

response.setStatus(HttpServletResponse.SC_MONED_TEMPORAILY);//设置状态码为302

response.setHeader("Location","http://www.baidu.com");//新网址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值