response.sendRedirect 传递参数的问题

response.sendRedirect是通过浏览器来做转向的。

假设在A.jsp页面设置request.setAttribute("username","admin");

那么在  request.sendredirect 转向的B.jsp页面中是不能通过request.getAttribute("username");  来得到admin的。

这是因为上个页面请求已经结束,也就是 request这个对象已经消亡了。所以也就得不到admin了。

可以使用request.getDispatcherHeader(B.jsp").forward(request,response);在B.jsp页面就可以得到admin了。

此外要说明:如果你的jsp页面是在webroot目录下,那么在response.sendRedirect(参数);参数中的路径是不同的。

response.sendRedirect(参数);应该是:response.sendRedirect(request.getContextPath() + "/B.jsp");

而在request.getDispatcherHeader(参数).forward(request,response);应该使用request.getDispatcherHeader("B.jsp").forward(request,response);

posted @   Entropy_lxl  阅读(65143)  评论(1编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 字符编码:从基础到乱码解决
点击右上角即可分享
微信分享提示