请求转发 :
作用:实现多个servlet 联动操作处理请求,这样避免代码冗余,让servlet 的职责更加明确。
使用: req.getRequestDispatcher("要转发的地址").forward(req,resp);
地址:相对路径,直接书写servlet 的别名即可。
特点: 一次请求,浏览器地址栏信息不改变。
注意:
* 请求转发后直接return结束即可
解决的问题:服务器在接收到浏览器的请求后,仅仅使用一个Servlet 进行处理,会造成不同的Servlet
逻辑代码冗余,Servlet 的职责不明确。
reuqet作用域:
* 解决了一次请求内的servlet的数据共享问题
*重定向:
* 解决了表单重复提交的问题,以及当前servlet无法处理的请求的问题。
* 使用:
* resp.sendRedirect(String uri);
* 示例:
* resp.sendRedirect("/login/main");
* 特点:
* 两次请求,两个request对象。
* 浏览器地址栏信息改变
* 时机:
* 如果请求中有表单数据,而数据又比较重要,不能重复提交,建议使用重定向。
* 如果请求被Servlet接收后,无法进行处理,建议使用重定向定位到可以处理的资源