浅谈servlet相关技术

来源:互联网 发布:商品期货数据 编辑:程序博客网 时间:2024/04/26 20:39

1.现在项目中,涌现出了很多优秀的MVC框架,但是控制相关功能底层还是离不开我们的servlet技术,下面让我们共同探讨一下与servlet相关的cookie与session相关技术 

1.客户端(浏览器端)保存信息的技术.
2.服务器要求客户端保存一些键值对.浏览器在适当的时机就会发送给服务器.
3.HTTP请求中的体现.
 服务器要求浏览器记住: set-cookie:name=tom
 浏览器带给服务器: Cookie:name=tom
4.Cookie的细节问题
 1>设置最长有效时间(setMaxAge)
   -1 ==>  浏览器一旦关闭,cookie失效.(cookie保存在浏览器内存中)
   0  ==>  发送到浏览器立即失效,通常用于删除已有cookie.(把之前的cookie覆盖.覆盖要保证cookie的 路径和键相同)
   正数 ==> 单位是秒. 表示最长有效时间(保存到硬盘中);
 2>设置cookie的路径
   1>cookie不设置路径,默认路径 取当前路径. 例如: http://localhost:8080/Day10/AServlet ==> http://localhost:8080/Day10
   2>cookie 会把键值对带给 自己路径下的所有子路径.
 3>设置cookie的域(了解)
   1>跨主机共享cookie的应用
    music.baidu.com
    zhidao.baidu.com
    map.baidu.com
    以上主机,想要共享cookie,该cookie如何设置?
     1.设置cookie的domain为".baidu.com"
     2.设置cookie的path为"/"
2.session相关技术
1.服务器端保存数据的技术.
2.当浏览器连接到服务器的时候, 如果发现浏览器没有携带sessionID过来.服务器会在内存中开辟一个空间(session),并把sessionID(session的唯一标示)以cookie
的方式发送给浏览器.下次浏览器再来访问的时候,会携带sessionID, 服务器发现 有sessionID 就可以找到在内存中对应的session.
3.如何操作?
 1>获得session, request.getSession();
 2>session中的常见操作
  4个常用方法
   setAttribute
   getAttribute
   removeAttribute
   getAttributeNames
 3>其他方法
   inValidate() 立即让session失效.
4.常见问题.
 1>session标示一次会话. 会话的范围?
  1.session的开始 ==> 第一次访问服务器.
  2.结束 第一: 浏览器关闭.(保存sessionID的cookie默认有效时间是-1)
      第二: 超过session设置的有效时间.默认30分钟. web.xml => <session-config><sessiont-timeout>
 2>session能不能跨项目?
   不能跨项目.
 3>session在一个项目中可以对项目中的任意路径共享数据吗?
  保存sessionID的cookie的路径是 项目==> /Day10
servlet技术中的3大域.
 application==>servletContext : 范围是整个项目,只有一个servletContext对象, 所有servlet的组件都能访问到.
  应用: 保存全局的配置.
 session ==> HttpSession : 范围是一次会话. 一个项目中存在几个Session呢? 一个没有保存sessionID的浏览器连接到服务器就会开启一个会话.有多少个浏览器访问就至少有多少个session.
  应用:购物车,验证码,登录信息
 request ==> HttpServletRequest : 范围是一次请求之内. 存在几个request域?当前正在处理的请求有多少个.
  应用:转发中共享数据.
servlet技术3大组件
 1.servlet
 2.filter  过滤器 *.do *.action
 3.listener  监听器
 

1 0
原创粉丝点击