回顾servlet

  • servlet用来处理请求和返回结果

  • servlet对应的地址是什么 url: http://主机:端口/资源的路径(在容器中资源路径是应用的名字/内部资源[servlet 的配置路径或者是 html/css文件的地址])

  • 请求的是什么?有没有请求参数?有的话怎么获取,key=value 其中key是根据业务需求提前定义好的(就像去银行办卡,不是看你想带什么资料,而是看人家要什么资料)

  • 获取到参数后就是业务问题 ,处理完业务得到结果,通过响应对象返回

  • 参数的乱码(设置字符集)和返回结果的乱码(还需要告诉内容类型)

  • 转发和重定向:转发是内部的事情,是处于一次请求内,我们可以像请求中设置数据,在另外一个servlet中获取到

  • 重定向是客户端行为,是服务器告诉客户端重新请求另外一个地方,外部资源必须是http开头的,因为是新的一次请求,所以request保存的数据是获取不不到的

  • 如果想在多次请求中获取相同的数据,可以使用session,session是一次会话,中间包含多次请求,直到session失效(如浏览器退出之后,保存sessionid的cookie没了;session有效期到期了)

  • cookie是客户端保存的,主要是保存一些简单的数据 key-value类型的,也是服务端生成后返回客户端,下次客户端带过去,比如我们的sessionid,但是cookie不太安全,容易被伪造

上下文对象ServletContext

  • 存取
  • 获取路径(如果需要重定向,可以先获取到路径,然后拼接字符串)
  • 获取真实路径 获取项目运行时候资源所在磁盘的位置 作用:会根据实际运行时的位置来获取对应的目录,这样我们在通过io流进行文件的读写...
  • ServletContext 可以保存数据 获取项目真实路径,项目名字 记录访问次数

过滤器filter

监听器listener

作用:得知某个事情发生了,再根据业务来处一些情况,比如竞价排名,统计访问次数,统计在线人数...

8个监听器

  1. 程序启动和停止的监听
  2. 当我们向ServletContext中添加或移除数据是会执行
  3. 会话创建和销毁时执行
  4. 当向session中添加或移除数据时执行
  5. 当请求创建和销毁时执行
  6. 当向请求中添或移除数据时执行
  7. 需要添加再数据方
  8. 程序停止和启动时,tomcat会将session序列化和反序列化,这两个过程称为钝化和活化

回顾前面

  1. 待整理...