第十五天:听课笔记

1.//   --> 
  path.split("")[path.split("").length - 1]
  pos = lastIndexOf("") substring(pos)
  subString 
  File

2.递归 返回 结果问题
要递归 你现在有返回了 下次我递归的时候我返回什么了?
所以将结果装到一个容器,通过调用它的程序给它一个容器,递归的时候将结果放到容器中

3.Filter
拦截的是服务器拿页面

javax.Servlet.Filter 接口

在web.xml中 注册和要拦截的资源

过滤器是给服务器调用的,要想给服务器调用,在web.xml中注册,设置要拦截的资源
//向服务器注册
<filter>
  <filter-name></filter-name>
  <filter-class></filter-class>           包.类名
<init-param>
   <param-name></param-name>
   <param-value></param-value>
</init-param>

</filter>
//告诉服务器要拦截的路径是啥
<filter-mapping>                         //多次
  <filter-name></filter-name>
  <url-pattern></url-pattern>            /*和*.XXX
</filter-mapping>

filter链   --->  对象

4.Servlet 实例化 load-on-startup 浏览器访问
          销毁 服务器不关
  Filter  web容器在启动时,会自动扫描是否 配置filter
          为多个用户    -->多个用户访问同一个资源

  <url-pattern> 或 <servlet-name> 请求路径 或 名称
  <dispatcher> 指定过滤器所拦截资源被web容器调用的方式
   web容器调用的方式:
               浏览器访问
               forward
               include
               error 跳转
   dispatcher:
   FORWARD, REQUEST(default), INCLUDE, ERROR(要服务器报错,要是多个错咧,怎么办)
   多个组合,看与老师的结论是够一致

5.Filter工作原理
创建 销毁 由web服务器调用
init(FilterConfig config)
FilterConfig
web容器会将初始化信息封装成对象config传给它
init-param ... 又回到了以前,用它的几种方法

doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
和service()差不多嘛,每次访问拦截资源都会执行 
拿到了:请求 、响应
FilterChain   Filter链 --> 对象

chain.doFilter(request, response); //放行
放行 让web服务器去访问filter链接的下 一个filter,要是没有,web服务器就访问目标资源

优先级:注册时,最先能拦截的优先级高


destory

6.案例:统一全站字符编码的过滤器
配置文件 ---> 初始化

7.案例:禁止缓存,对JSP过滤
三句话

但是 图片 CSS要缓存

img src="XXX" 浏览器会向服务器发两次请求 第一次请求 第二次请求:发现有img,会向服务器发第二次请求
HTTP1.1 保持连接了?

一次请求+100张图片的请求+100张CSS的请求
减小服务器的链接数:把很多个合为一个

服务器会缓存

8.权限
实现URL级别的权限认证
动态代理:调用方法的拦截 颗粒度更精确

通过改变url-pattern
/admin/XXX
/visitor/YYY

init

substring contains

跳转后要return

9.中文空格和英文空格

10.this.getClass().getClassLoader().getResourceAsStream(XXX)
                                   .getResource(XXX) 返回url,传给document = reader.read(url)
都在classpath
要是XXX有两个,放在不同的文件夹下,它找谁?

11.权限
大于什么的权限 manage 既有manage的权限又有user的权限
user的权限 的roles都有(admin,manager,user)

用过滤器的URL实现权限
只需将新的JSP/Servlet 映射就可以了
/admin/XXX
/manage/YYY
/user/ZZZ

12.注册 授权 checkbox EL JSTL

13.对request, response包装后传给chain.doFilter(request,response)

14.过滤器 乱码
对GET方式没办法 request.setCharacterEncoidng
getParameterValues getParameter(XXX)
问题:没有setParameter

用包装 将request包装了再放行

15.压缩 流量 包装

16.包装设计模式:
1.想对哪个对象增强,就在包装类里面定义一个相应类型的变量
2.定义一个构造函数接受相应的对象
3.想对 对象哪个方法进行增强,就覆盖相应的方法
4.包装类和被包装的类 所属于同一个父类

17.Filter
透明的 耦合性低
想它干就在web.xml中配置,不想它干就不在web.xml中配置

18.动态代理 CGLIB
动态代理 要一个父类
CGLIB    没有父类也可以,它是用的子类的思想

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值