Servlet第四天

同一个账号同时只能登陆一次:
 账号唯一,则登录同时记录账号(list/set)
 每次登陆需要判断,当前账号是否已经存在
  存在则不许登陆
  不存在则登陆


HttpServletRequest :一组请求、响应
 两个业务流程跳转,
  如果使用forward:
   req.getParameter()获取页面中的参数
   req.getAttribute()获取资源之间的共享对象
  如果使用sendRedirect
   request对象无法共享数据

HttpSession  :一个客户端一系列相关的请求、响应
 多组业务流程跳转:
  如果使用forward:
   session.getAttribute()获取资源之间的共享对象
  如果使用sendRedirect
   必须使用session.getAttribute()

ServletContext  :整个web应用
 多组业务流程
  某个用户设置的信息,给其他用户访问
  给当前系统中所有的用户访问的数据

=========================================================
 setAttribute(String name,Object o);
 getAttribute(String name):Object o;
 removeAttribute(String name);
=========================================================

session的作用:
 标识当前客户端
 一组相关操作只能属于当前用户

session的底层实现机制:
 cookie:由服务器端生成,发送给客户端,并保存在客户端的一小段用于描述客户信息的文件
  1 当客户首次访问服务器时,服务器端给当前用户创建一个cookie
  2 服务器保存信息: cookie-------用户
  3 服务器把生成的cookie对象发送给客户端
  4 客户端拿到cookie信息,则保存在本地文件中

  5 客户端继续访问服务器,必须读取cookie信息发送请求给服务器
  6 服务器拿到请求,以及客户端对应的cookie
  7 服务器用获取到得cookie在内部保存的对应关系中查找其对应的用户信息。返回给客户

  JSESSIONID=A17683EEAA6E6B1568FECC942BEDAE57
 url rewrite:
  给所有的请求url后面追加参数信息。如:
  add?jsessionid=A17683EEAA6E6B1568FECC942BEDAE57
  delete?jsessionid=A17683EEAA6E6B1568FECC942BEDAE57

  url = "add";
  url += req.getSession().getId();
  ==>
  resp.encodeUrl("add"):String ==>add?jsessionid=A17683EEAA6E6B1568FECC942BEDAE57
  resp.encodeRedirectURL("add")
 hidden:
  <input type="hidden" name="jsessionid" value="A17683EEAA6E6B1568FECC942BEDAE57">


addCookie--->AddCookieServlet---->index.html
index.html--->ShowCookieServlet


监听器:
 观察者模式

 ServletRequestListener  监听ServletRequest的创建和销毁
  事件源  ServletRequest
  事件对象 创建/销毁
  事件监听 ServletRequestListener

 HttpSessionListener 监听HttpSession的创建和销毁
 ServletContextListener  监听ServletContext的创建和销毁


监听器编程:
 1 编写监听器类,实现相应的接口,并实现其内部的两个方法
 2 把监听器类配置给web容器管理
 <listener>
  <listener-class>
   listener.MyServletContextListener
  </listener-class>
 </listener>


接口的作用:
 1 程序员并行开发
 2 解耦合
  IStuMgmtDAO dao= new StuMgmtDAOImpl();
  耦合在每个servlet处理类的源代码中,维护很难
  解决:
   dao应该是整个应用共享一个对象
   即,将dao对象放在servletContext范围中保存
   dao应该什么时候创建:
    项目启动,则dao创建
    项目关闭,则dao销毁
   ===》ServletContextListener

 


*1     第一页  上一页 下一页 最后一页
 rownum

2     1 2 3 ... 18 19 20 ___跳转

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值