1.Filter
1.1概念:
filter表示过滤器,是JavaWeb的三大组件之一(Servlet,Filter,Listener)。
过滤器可以把资源的请求拦截下,从而实现特殊功能。
过滤器一般完成一些通用操作。 如权限控制,统一编码处理,敏感字符处理
1.2.filter快速入门
定义类,实现filter接口,重写所有方法
``
public class filterDemo implements Filter(要选javax Servlet类) { @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {} @Override public void init(FilterConfig filterConfig) throws ServletException {} @Override public void destroy() {} }
配置Filter拦截资源路径,在类上定义注解@WebFilter
``
@WebFilter("/*") public class FilterDemo implements Filter {
// ("/*")表示拦截所有
在doFilter方法中输出话,并放行
filter拦截路径的配置
执行逻辑:
拦截路径表示 Filter 会对请求的哪些资源进行拦截,使用 @WebFilter
注解进行配置。如:@WebFilter("拦截路径")
拦截路径有如下四种配置方式:
拦截具体的资源:/index.jsp:只有访问index.jsp时才会被拦截
目录拦截:/user/*:访问/user下的所有资源,都会被拦截
后缀名拦截:*.jsp:访问后缀名为jsp的资源,都会被拦截
拦截所有:/*:访问所有资源,都会被拦截
1.3.过滤器链的概述
1.3.1概念:
是指在一个Web应用,可以配置多个过滤器,这多个过滤器称为过滤器链。
如下图就是一个过滤器链。
1.3.2执行流程:
-
执行
Filter1
的放行前逻辑代码 -
执行
Filter1
的放行代码 -
执行
Filter2
的放行前逻辑代码 -
执行
Filter2
的放行代码 -
访问到资源
-
执行
Filter2
的放行后逻辑代码 -
执行
Filter1
的放行后逻辑代码
以上流程串起来就像一条链子,故称之为过滤器链
我们现在使用的是注解配置Filter,而这种配置方式的优先级是按照过滤器类名(字符串)的自然排序。
在实际问题要根据实际过滤,列如 登陆注册
2.Listener
2.1 概述
-
Listener 表示监听器,是 JavaWeb 三大组件(Servlet、Filter、Listener)之一。
-
监听器可以监听就是在
application
,session
,request
三个对象创建、销毁或者往其中添加修改删除属性时自动执行代码的功能组件。request 和 session 我们学习过。而
application
是ServletContext
类型的对象。ServletContext
代表整个web应用,在服务器启动的时候,tomcat会自动创建该对象。在服务器关闭时会自动销毁该对象。
2.2 分类
JavaWeb 提供了8个监听器:
这里面只有 ServletContextListener
这个监听器后期我们会接触到,ServletContextListener
是用来监听 ServletContext
对象的创建和销毁。
ServletContextListener
接口中有以下两个方法
void contextInitialized(ServletContextEvent sce)`:`ServletContext` 对象被创建了会自动执行的方法 void contextDestroyed(ServletContextEvent sce)`:`ServletContext` 对象被销毁时会自动执行的方法
3.AJAX
3.1 概述
==AJAX
(Asynchronous JavaScript And XML):异步的 JavaScript 和 XML。==
我们先来说概念中的 JavaScript
和 XML
,JavaScript
表明该技术和前端相关;XML
是指以此进行数据交换。
3.1.1 作用
AJAX 作用有以下两方面:
-
与服务器进行数据交换:通过AJAX可以给服务器发送请求,服务器将数据直接响应回给浏览器。如下图
我们先来看之前做功能的流程,如下图: