-
转发和重定向的区别
转发、重定向
转发--->Forward,100%不能带工程名
转发的特点:1)、可以传值;
2)、路径没有发生改变,其实总共只发起了一次请求;
3)、转发的方式只能跳转到本工程之内的url 。
public class ForwardA,这个类存值
//1.通过 HttpServletRequest存值
req.setAttribute("msg","ForwardA存的值");
//2.通过转发的方式跳转到ForwardB
req.getRequestDispatcher("/forwardB.do").forward(req,resp);
public class ForwardB,这个类取值
获取刚才ForwardA存的值
String msg = req.getAttribute("msg").toString();
System.out.println("获取的值为:"+msg);
在运行过程中,浏览器的输出路径没有发生变化:
http://localhost:8080/ServletDemo007Day04/forwardA.do
tips:
测试的时候一定要先访问@WebServlet("/forwardA.do")这个存值的,然后再访问@WebServlet("/forwardB.do")这个取值的,否则会报505空指针异常的错误。
重定向--->Redirect,必须带工程名
重定向的特点:1)、不会传值,也不会携带值;
2)、路径会发生改变,其实这是发起了两次请求;
3)、重定向的方式可以跳转到本工程之外的url,比如:可以跳到其他工程的url或者百度等。
public class RedirectA,这个类存值
//1.通过 HttpServletRequest存值
req.setAttribute("msg","RedirectA存的值");
//2.通过重定向的方式跳转到RedirectB 必须带上工程名
resp.sendRedirect("/ServletDemo007Day04/redirectB.do");
public class RedirectB,这个类取值
//获取刚才RedirectA存的值
String msg = req.getAttribute("msg").toString();
System.out.println("获取的值为:"+msg);
在运行过程中,浏览器的输出路径发生了变化:
刚开始访问的是:http://localhost:8080/ServletDemo007Day04/redirectA.do
然后运行结束后的路径变成了:http://localhost:8080/ServletDemo007Day04/redirectB.do
同时也报了个505的空指针异常的错误:![]()


-
以下演示重定向可以跳转到本工程之外的url,如百度:

来源:https://www.cnblogs.com/WJ-9452/p/14855309.html
最新更新
求1000阶乘的结果末尾有多少个0
详解MyBatis延迟加载是如何实现的
IDEA 控制台中文乱码4种解决方案
SpringBoot中版本兼容性处理的实现示例
Spring的IOC解决程序耦合的实现
详解Spring多数据源如何切换
Java报错:UnsupportedOperationException in Col
使用Spring Batch实现批处理任务的详细教程
java中怎么将多个音频文件拼接合成一个
SpringBoot整合ES多个精确值查询 terms功能实
数据库审计与智能监控:从日志分析到异
SQL Server 中的数据类型隐式转换问题
SQL Server中T-SQL 数据类型转换详解
sqlserver 数据类型转换小实验
SQL Server数据类型转换方法
SQL Server 2017无法连接到服务器的问题解决
SQLServer地址搜索性能优化
Sql Server查询性能优化之不可小觑的书签查
SQL Server数据库的高性能优化经验总结
SQL SERVER性能优化综述(很好的总结,不要错
uniapp/H5 获取手机桌面壁纸 (静态壁纸)
[前端] DNS解析与优化
为什么在js中需要添加addEventListener()?
JS模块化系统
js通过Object.defineProperty() 定义和控制对象
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比