javaweb 过滤器(Filter)感悟

过滤器的主要功能:在浏览器访问指定网站前进行筛选,经过过滤器之后传入指定网站。

过滤器的应用范围:1:统一处理Servlet的中文乱码。 2:屏蔽敏感词   3:控制浏览器的访问权限。

 

过滤器的基本配置:

在src下新建包名,在包名建立class类。然后实现Filter接口(此Filter接口为javax.servlet包下的接口),并且实现dofilt方法。此过滤器是为了将这项目的所有servlet都进行设置成UTF-8格式

过滤器在web.xml的配置:

配置filter和配置servlet类似,需要相同的名进行映射,filter-class填入过滤器所在位置,url-pattern填入经过过滤器后,访问网址的目的地。也就是说在访问localhost:8080/index前都要经过过滤器charset和过滤器word的筛选

过滤器使用@WebFilter()进行配置:

这里也是跟servlet类似,只需要在filter过滤器配置@WebFilter()+所想要到达的目的地,可以用来替代在web.xml中对过滤器的替代。

过滤器实现对敏感词的屏蔽:

这里是代码结构。

 

 

这里是index.jsp网页,这里是简单的登陆注册表单的实现。

这里是进行敏感字进行屏蔽处理的filter过滤器。首先先用servletRequst.getParameter("name")取得index.jsp网页输入的用户名,并对用户名使用replaceAll方法,将敏感字替换。

并且servletRequest.setAttribute("name",name);将改正后的用户名传递给servletreqeust,使得这个name可以在后续中进行提取访问。如果不进行此操作,这个name只是在当前Filter过滤器

发生改变,而传递到servlet之类后,还是未进行替换敏感字的name。最后filterChain.doFilter(servletRequest,servletResponse);使得访问在经过filter后得以继续发访问。如果不写,则网页会

一直停留在filter中,无法进行跳转,进入到下一部。

最后访问经过Filter过滤器后到达servlet,写入dopost方法,接受index.jsp的请求。这样屏蔽敏感字的过滤器就完成了。

限制访问权限的过滤器:

index.jsp:

随后经过wordfilter,wordfilter后访问/indexservlet:

取出index.jsp的账号和密码

这里我直接设置了账号为admin密码为123才能登入成功,后跳转到download资源中心,可以访问其资源

 

然而在进入/download.jsp前我们还设置了过滤器,来防止未登入用户进入我们的资源中心

浏览器取出了在indexservlet中,用session 保存的用户名(name),后判断用户名是否为空,如果为空跳转登入页,如果不为空就进行接下来的访问,也就是我们配置的目的地download.jsp页面了。

这样我们就实现了只有登入后的用户才可以访问download.jsp。如果直接访问的话,因为没有经过indexServlet对用户名用session保存,使得在经过download.jsp前经过的过滤器判断name==null,

直接跳转回index.jsp拒绝了其访问。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值