jsp中的请求转发和重定向

本文探讨了JSP中的两种页面跳转方式——请求转发和重定向。请求转发能保留提交数据,如在表单提交后,通过servlet转发到index.jsp仍能获取表单值;而重定向会导致数据丢失,且请求次数为2次,地址栏会显示重定向后的页面地址。了解这两者的区别对于优化网页交互至关重要。

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

jsp中的请求转发和重定向
要用到内置对象request和response
请求转发:request.getRequestDispatcher("请求的地址").forward(request, response);
重定向:response.sendRedirect("请求的地址");

无论是请求转发还是重定向都可以实现页面的的跳转,但其中还是有很多的不同

 

一.request会保留提交的数据,response不会(以表单为例)

在login.jsp页面中创建表单,提交单servlet中

 <form action="servlet1" method="get">
       名字:<input type="text" name="username" value=""><br>
       密码:<input type="password" name="password" value=""><br>
       <button>提交</button>
 </form>

在servlet中转发到index.jsp

request.getRequestDispatcher("index.jsp").forward(request, response);

在index页面中获取表单的值,中间经过一次,转发,依然可以获取到

String username =  request.getParameter("username");
String password =  request.getParameter("password");
out.print("用户名为"+username);
out.print("<br>");
out.print("密码为"+password);

如果在jsp页面中换成

response.sendRedirect("index.jsp");

的话,就会发生数据的丢失,输出的结果为null

二.请求的次数不同

     请求转发请求的次数为1

      类似与一个传递的过程

     
      重定向请求的次数为2

      类似与请求错了,再发一个请求

三.地址栏是否改变

    请求转发的地址不会发生改变

     地址栏显示的地址为请求转发页面的地址(还是servlet)

    重定向的地址会发生改变(地址为重定向后那个页面的地址)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值