作为一个萌新,在学习Servlet过程中遇到一个问题困扰很久,重定向跳转文件一直失败,地址显示改变但无对应数据,具体问题环境分析如下。
问题:
tomcat启动方式(非xml文件配置方式):
重定向代码:
页面运行(输入正确密码):
运行结果(地址改变,但还在原界面, 如果使用转发又能正常跳转):
问题分析:
这里涉及到重定向的的原理,以及域的作用空间
转发是在同一个域中(如上图没有跳转出白色方框),因此数据能够携带直接提交给B,不需要写具体路径;
重定向在接受数据后会重新获取地址,跳出当前域(如上图跳出白框)访问一个新的地址,要想获取到之前的数据必须重新回到环境域中,因为没有配置tomcat中的文件,因此需要加文件名,才能访问回原环境
解决办法:
查看tomcat文件配置路径
重定向加上文件路径
修改后重启服务器就能完成跳转。不加路径跳转的是tomcat自身的环境,无法回到之前的域,因此地址有变化,但内容不会变化。