域对象、转发重定向

>域对象
Request   ServletContex   Session
作用范围:Request<Session<ServletContext
Request:一次请求之内有效。从一个servlet转发到另一个servlet可以共享request数据。
Session:多次请求之内有效。只要会话不断,这个session就可以共享数据。多个servlet共享session的数据。
ServletContex:多个用户都可以访问servletContext(相当于可被多个用户共享)里面的数据。Session只有当前的用户可以访问到。

三个对象都是维护了一个map集合。区别作用域不同

cookie:客户端技术,只能存字符串
session:服务器端技术,可存储对象。

转发和重定向
转发可以带信息

注意:
resp.sendRedirect(/*req.getContextPath()+*/"/success.jsp"); 重定向的时候要写全路径
getRequestDispatcher 转发,不必写全路径,因为就是在当前应用里进行跳转的

四大域对象:实际开发
PageContext:pageConext 存放的数据在当前页面有效。开发时使用较少。 Input type=hiden
ServletRequest:request 存放的数据在一次请求(转发)内有效。使用非常多。
  比如login—doLogin—success,的(三个资源)一次请求,地址栏是不变的,用户感觉不到中间的servlet’。 执行完 之后就会销毁,session的话,会一直存在。
Session:存放的数据在一次会话中有效。使用的比较多。如:存放用户的登录信息,购物车功能。 
浏览器关闭时默认将JSESSIONID销毁,session在半小时之内都在。
一般存放用户对象,这样就可以取出诸如权限等之类的信息。
能够使用request就别用session
ServletContext:application 存放的数据在整个应用范围内都有效。因为范围太大,应尽量少用。
其他人访问该应用的时候也可以获取到这些数据。所有的用户都可以共享里面的数据。
一般来一个用户加一,保存用户访问量。统计在线人数。

 

posted @ 2018-12-02 11:35  payn  阅读(242)  评论(0)    收藏  举报