Servlet - 请求转发和重定向
1. 请求转发
作用: 实现多个servlet联动操作处理请求, 这样避免代码冗余, 让servlet的职责更加明确
使用: request.getRequestDispatcher("路径地址").forward(request, response);
特点: 一次请求, 浏览器地址不改变
注意: 请求转发后直接return结束即可
2. 重定向
作用: 解决了表单重复提交的问题, 以及当前servlet无法处理的请求的问题
使用: response.sendRedirect("路径地址");
特点: 两次请求, 两个request对象, 浏览器地址栏信息改变
注意:
如果请求中有表单数据, 而数据又比较重要, 不能重复提交的时候, 建议使用重定向
如果请求被servlet接收后, 无法进行处理, 建议使用重定向定位到可以处理的资源
路径:
相对路径: 从当前请求的路径查找资源路径
如果Servlet的别名中包含目录, 会造成重定向资源查找失败, 建议使用绝对路径
绝对路径: /虚拟项目名/资源路径
第一个/为服务器的根目录