盗链:用户未经授权,访问到了需要授权才可获取的资源
区分哪些资源应该被过滤器保护,哪些不应该被过滤器保护?
需要登录之后才能访问:被过滤器保护
无需登录就能访问:不要被过滤器保护
1、获取session对象,并从中获取xname的值
2、判断xname是否为null
3、如果xname是null,将请求重定向至defance.jsp
4、如果xname不是null,放行本次请求
过滤器实现防盗链的步骤:
1、登录时需要记录一个session作为判断是否登录的标识(例子使用xname)
2、编写过滤器程序,在doFilter方法中判断session中是否有标识(xname)
如果有:证明是正常访问,放行
如果没有:证明是非法访问,拦截,重定向到提示页面
3、区分登录前(不被保护)和登录后(被保护)的资源,并将保护的资源放入专门的路径中(例子是/system路径中)
4、设置过滤器只保护/system/*资源
主要的应用场景:字符集、防盗链、权限控制。