四大作用域:
1、pageContext:
代表在当前页面的作用域范围内有效,页面发生跳转,则作用域失效。
2、request:
在一次请求的作用域范围内有效,地址不发生改变。(此作用域最为常用)
3、session:
在一个会话的作用域范围内有效(一个浏览器只要不关闭就是一个会话),若浏览器关闭,则作用域失效。
4、application:
整个应用程序都有效。
范围由小到大:
pageContext < request < session < application
扩展:
1.在el表达式中根据一个指定的key取值时,默认会按照上面由四大作用域范围由小到大来取值。
${books}
2.如果想要从指定作用域中取值,则需要对应的作用域+scope,如:requestScope,applicationScope....
${requestScope.books}
:
代表从request作用域中直接取值
转发与重定向:
转发:
1、一次请求;
2、可以在请求作用域中保存数据;
3、是服务器内部跳转,不能访问外部网页;
4、性能比重定向高;
5、地址不发生改变;
重定向:
1、两次请求;
2、不能保存第一次请求数据;
3、效率低;
4、可访问外部资源,如:
response.sendRedirect("http://www.baidu.com")
5、地址发生改变;
一次请求可取值代表两层含义:
1、可以取得request.setAttribute("key","value")
放入的值;
2、可以取得request.getParameter("name")
得到的值。