训练大纲(第051天)
大家如果想快速有效的学习,思想核心是“以建立知识体系为核心”,具体方法是“守破离”。确保老师课堂上做的操作,反复练习直到熟练。
第97次(过滤器filter)
学习主题:过滤器filter
学习目标:
1 掌握 filter的作用
2 掌握filter的编写
对应视频:
http://www.itbaizhan.cn/course/id/85.html
对应文档:
无
对应作业
1. 过滤器的介绍
根据视频中的讲解,完成以下内容
(1) 视频中的引入过滤器提到的项目中存在的问题是什么问题?
目前我们访问Servlet,是可以直接进行访问的,没有进行任何防护。可能会造成服务器资源的浪费,以及安全性不高。我们希望真的在请求被Servlet处理之前,进行一次请求的校验,符合要求再调用对应的Servlet
(2) 根据视频讲解说说你对过滤器的理解,以及你觉得过滤器的作用是什么?
答: 对请求进行拦截
2. 过滤器的创建和配置
(1) 视频中在代码注释中描述的问题是什么?。
目前我们访问Servlet,是可以直接进行访问的,没有进行任何防护。可能会造成服务器资源的浪费,以及安全性不高。我们希望真的在请求被Servlet处理之前,进行一次请求的校验,符合要求再调用对应的Servlet
(2) 创建过滤器要实现的接口是?。
Filter
(3) 创建的过滤器类中需要实现的三个方法是?。
init方法:服务器启动时调用
destory方法:服务器关闭时调用
doFilter放行方法
(4) 在web.xml中配置过滤器的代码是?
<filter>
<filter-name>myFilter</filter-name>
<filter-class>com.bjsxt.filter.MyFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>myFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
3. 过滤器之doFilter和init和destory方法
(1) doFilter方法的作用是?参数是及作用是?。
ServletRequest:接收此次拦截的请求的request实参
ServletResponse:接收此次拦截的请求的response实参
FilterChain:可以进行请求放行
(2) init方法的执行时机是?
服务器开启
(3) destory方法的执行时机是?
服务器关闭
4. 过滤器之拦截范围的配置
(1) 过滤器的拦截范围的配置是?及拦截的范围是什么?
拦截所有:/*
拦截部分Servlet的请求:*.do
拦截指定Servlet的请求:和要拦截的指定的Servlet的url-pattern配置完全一致即可,例如:/my
注意:过滤器之间会出现多重拦截,如果是按照拦截拦截范围的大小在web.xml中自大而小进行的配置则会先执行大范围的拦截器,再执行小范围的拦截器。
5. 过滤器案例之统一请求编码格式
(1) 根据视频讲解使用过滤器完成编码格式的统一设置。
![8175a88b3bb0339ed1b6eb04beb227d0.png](https://img-blog.csdnimg.cn/img_convert/8175a88b3bb0339ed1b6eb04beb227d0.png)
分享/讲解/扩展思考
点名提问从第一节课到最后一节课分别学到了什么,直到同学们把所有的知识点都说出来并且保证无误。
第98次(listener 监听器)
学习主题:listener 监听器
学习目标:
1 掌握监听器的作用
2 掌握监听器的编写
对应视频:
http://www.itbaizhan.cn/course/id/85.html
对应文档:
无
对应作业
6. 过滤器之session管理放行登录页面和登录请求
(1) 视频中的session管理的基本思路是什么?
在过滤器中获取session对象,然后查看session中的数据是否还在如果数据没了,则因为session失效则重定向到登录页面。如果数据还在session没有失效,则放行
(2) 视频中在过滤器中实现的session管理存在的问题是?。
在过滤器中使用session校验后发现登录页面的访问成了死循环,因为登录页面的请求也就是login.jsp的请求也会被过滤器拦截,而此时session中没有相关数据的造成又重定向到登录页面....
7. 过滤器之session管理静态资源放行和登录页面跳转
(1) 视频中session管理的代码仍然存在的问题是?
过滤器会拦截所有的请求,包括静态资源(css文件js文件image图片)请求也会拦截。造成页面中的样式和动态效果等出不来
8. 过滤器之session管理ajax请求优化
(1) 根据视频讲解在session管理代码中完成ajax请求的优化处理。
答:
![8175a88b3bb0339ed1b6eb04beb227d0.png](https://img-blog.csdnimg.cn/img_convert/8175a88b3bb0339ed1b6eb04beb227d0.png)
9. 过滤器之权限管理功能需求分析和数据库设计
(1) 权限管理的需求是什么?。
不同的用户在对同一功能使用时,有的用户可以直接使用,有的用户会被提示权限不足。
(2) 视频中讲解的思路是什么?
1、在数据库中创建一个URL权限表,该表存储了该系统需要被管理的URL。
2、在数据库中创建用户权限中间表,用来进行权限分配
3、在数据库中将权限给用户分配好
4、在用户登录成功后查询该用户具备的URL权限,存储到该用户的session中
5、在过滤器中对当前发起请求的用户的请求地址进行校验,校验该用户是否具备该请求地址的
10. 过滤器之权限管理功能数据实现和登录查询权限实现
(1) 根据视频,完成视频中的功能。
答:
![8175a88b3bb0339ed1b6eb04beb227d0.png](https://img-blog.csdnimg.cn/img_convert/8175a88b3bb0339ed1b6eb04beb227d0.png)
11. 过滤器之权限管理大结局
(1) 根据视频完整实现权限管理功能
![8175a88b3bb0339ed1b6eb04beb227d0.png](https://img-blog.csdnimg.cn/img_convert/8175a88b3bb0339ed1b6eb04beb227d0.png)
12. 监听器的引入和介绍
(1) 视频中统计当前在线人数的思路是什么
监听session的增加和减少
(2) 视频中的监听器的作用是什么?
监听request、session、application三个域对象的创建,销毁和数据的变更
(3) 完成删除功能的Servlet的实现
![8175a88b3bb0339ed1b6eb04beb227d0.png](https://img-blog.csdnimg.cn/img_convert/8175a88b3bb0339ed1b6eb04beb227d0.png)
13. 监听器的使用之监听request对象
(1) 监听request对象的两个接口什么?
ServletRequestListener,ServletRequestAttributeListener
(2) 监听request对象的两个接口的方法是?作用分别是?
监听request的创建和销毁
requestInitialized(ServletRequestEvent sre)
requestDestroyed(ServletRequestEvent sre)
(3) 在web.xml配置监听器的标签是?给出一个配置示例
<listener>
<listener-class>监听器类的包名和类名</listener-class>
</listener>
14. 监听器之监听session和application对象
(1) 监听session对象的接口是?
HttpSessionListener,ServleSessionAttributeListener
(2) 监听session对象的接口的方法分别是?作用 是?
监听session的作用域数据的变更:监听session的创建和销毁
(3) 监听application对象的接口是?。
ServletContextListener,ServletContextAttributeListener
(4) 监听application对象的接口的方法分别是?作用是?
监听application对象的数据的变更,监听application对象的创建和销毁
15. 监听器案例之当前在线人数统计
(1) 根据视频,完成统计当前在线人数功能。
分享/讲解/扩展思考
点名提问从第一节课到最后一节课分别学到了什么,直到同学们把所有的知识点都说出来并且保证无误。