文章目录
【1】请求重定向
(1)比较请求转发和请求重定向
请求转发
request.getRequestDispatcher("跳转路径").forward(request, response);
请求重定向
response.sendRedirect("跳转路径");
(2)二者的区别
- 请求转发的地址不会改动,始终是刚开始的地址, 请求重定向在跳转后,地址栏会变为目标地址
- 请求转发是一次请求,跳转操作在服务器内部发生;请求重定向是两次请求,跳转操作是在浏览器,服务器之间发生
- 请求转发可以使用 request.setAttribute 进行值的传递;请求重定向需要使用 session.setAttribute 进行值的传递
【2】request, session 作用域(scope)对象
(1)作用范围限于一次请求
request.setAttribute(key, value);
request.getAttribute(key) ${key}
request.removeAttribute(key);
(2)作用范围同一个浏览器的多次请求之间(一次会话)
session.setAttribute(key, value);
session.getAttribute(key) ${key}
session.removeAttribute(key);
页面作用域,作用范围限于当前页面
page
应用程序作用域,作用于整个应用程序
application
page < request < sesssion < application
${ key } 会从小的作用域向大的作用域依次查找,直到找到为止
也可以利用前缀精确地找某个作用域:
- pageScope page 作用域
- requestScope 请求作用域
- sessionScope 会话作用域
- applicationScope 应用程序作用域
【3】jsp 中的隐式对象
9 个
- pageContext 页面作用域
- request 请求对象
- session 会话对象
- application 应用程序对象
- response 响应对象
- out 响应输出流
- page 当前的jsp对象(this)
- config 用来读取和jsp配置相关的信息
- exception 必须在当前页面的 page 指令中添加 isErrorPage=“true”, 表示一个异常对象