请求转发和重定向
1. 两者的区别
重定向的特点:
- 重定向的跳转是由浏览器发起的,在这个过程中浏览器会发起两次请求;
- 重定向跳转可以跳转到任意服务器的资源,但是无法跳转到WEB-INF中的资源;
- 重定向跳转不能和request域对象一起使用;
- 重定向跳转浏览器的地址栏中的地址会变成跳转到的路径;
请求转发的特点:
- 请求转发的跳转是由服务器发起的,在这个过程中浏览器只会发起一次请求;
- 请求转发只能跳转到本项目的资源,但是可以跳转到WEB-INF中的资源;
- 请求转发可以和request域对象一起使用;
2. 重定向的使用
2.1 原生Selvlet重定向
点击查看代码
response.sendRedirect("url"); //推荐
//或者使用以下方法
response.setStatus(302);
response.setHeader("Location","http://www.baidu.com");
2.2 springmvc中实现
点击查看代码
return "redirect:/index"; //在使用RestController注解时,该方法只会返回字符串,可以用response.sendRedirect方法替换
3. 请求转发的使用
3.1 原生Servlet实现请求转发
点击查看代码
request.getRequestDispatcher(url).forward(request, response);
3.2 springmvc中实现
点击查看代码
@RequestMapping("/test")
public String toXXX(){
return "forward:/WEB-INF/templates/test.jsp" ;
}
分类:
Java
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!