Request声明周期
- 创建:一次请求来的时候
- 销毁: 响应生成的时候
- 作用:
- 一次请求里面的数据
为何一次请求就在一个servlet中,为何还需要作为一域对象呢。这就要说到了一个重要的概念--请求转发。
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 转发
// request.getRequestDispatcher(内部的路径).forward(request, response);
// 内部路径就写 要跳转的Servlet的webXml配置的路径 因为是内部访问 但是如果是重定向得写成/项目名/+要跳转的Servlet的webXml配置的路径
request.getRequestDispatcher("/dis2").forward(request, response);
}
在前面文章介绍过重定向。下面总结下两者的区别:
1. 重定向发生两次请求而转发发送一次请求
2. 重定向地址栏发生改变,请求转发不变
3. 重定向是浏览器发送,请求转发是服务器内部
4. 重定向不存在request域对象,请求转发可以使用request域对象
5. 重定向是response方法,请求转发是request方法。
6. 重定向可以请求站外资源,请求转发不可以。
网友评论