filter过滤器_过滤器Filter案例

43927c3894d4198be33fb00468ee4adf.png

过滤器是服务器安全的重要手段之一是保护服务器资源被无权限访问的主要手段。

在doFilter中使用

* //设置请求编码格式

request.setCharacterEncoding("utf-8");

//设置响应编码格式

response.setContentType("text/html;charset=utf-8");

Filter案例之session管理

在过滤器中获取session对象,然后查看session中的数据是否还在

如果数据没了,则因为session失效则重定向到登录页面。如果数据还在

session没有失效,则放行

问题1:

在过滤器中使用session校验后发现登录页面的访问成了死循环,因为登录页面的

请求也就是login.jsp的请求也会被过滤器拦截,而此时session中没有相关数据的

造成又重定向到登录页面......

解决1:

对login.jsp和登录请求进行放行

问题2:

过滤器会拦截所有的请求,包括静态资源(css文件js文件image图片)请求也会拦截。

造成页面中的样式和动态效果等出不来

解决2:

对静态资源放行

Filter案例之权限管理

需求:

不同的用户在对同一功能使用时,有的用户可以直接使用,有的用户会被提示权限不足。

思路:

1、在数据库中创建一个URL权限表,该表存储了该系统需要被管理的URL。

2、在数据库中创建用户权限中间表,用来进行权限分配

3、在数据库中将权限给用户分配好

4、在用户登录成功后查询该用户具备的URL权限,存储到该用户的session中

5、在过滤器中对当前发起请求的用户的请求地址进行校验,校验该用户是否具备该请求地址的

权限,如果具备则放行执行,如果不具备则提示权限不足。

数据库设计:

URL权限表:t_url

编号: urlid

url地址 :location

描述:remark

用户权限中间表:t_user_url

uid

urlid

SQL语句的设计:查询当前登录用户的url信息

子查询:

select * from t_url where urlid in (select urlid from t_user_url where uid=8)

联合查询:

select * from t_url tu,t_user_url tul where tu.urlid=tul.urlid and tul.uid=8

注释的使用

@WebFilter(filterName = "MyFilter",urlPatterns = "/*")

public 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值