1.Filter的概述快速入门执行流程1Filter概念:Filter表示过滤器,是JavaWeb三大组件(Servlet、Filter、Listener)之一。过滤器可以把对资源的请求拦截下来从而实现一些特殊的功能。过滤器一般完成一些通用的操作比如权限控制、统一编码处理、敏感字符处理等等2Filter快速入门1.定义类实现Filter接口并重写其所有方法public class FilterDemo implements Filter { public void init(FilterConfig filterConfig) public void doFilter(ServletRequest request public void destroy() }2.配置Filter拦截资源的路径在类上定义WebFilter注解WebFilter(/*) public class FilterDemo implements Filter {3.在doFilter方法中输出一句话并放行public void doFilter(ServletRequest request, Ser System.out.println(filter被执行了..); //放行 chain.doFilter(request,response); }3Filter执行流程1.放行后访问对应资源资源访问完成后还会回到Filter中吗会2.如果回到Filter中是重头执行还是执行放行后的逻辑呢放行后逻辑执行放行前逻辑--放行--访问资源--执行放行后逻辑2.Filter使用细节Filter拦截路径配置过滤器链1Filter拦截路径配置Filter可以根据需求配置不同的拦截资源路径WebFilter(/*) public class FilterDemo拦截具体的资源:/index.jsp:只有访问index.jsp时才会被拦截目录拦截/user/*访问/user下的所有资源都会被拦截后缀名拦截*.jsp访问后缀名为jsp的资源都会被拦截拦截所有/*访问所有资源都会被拦截2过滤器链一个Web应用可以配置多个过滤器这多个过滤器称为过滤器链注解配置的Filter优先级按照过滤器类名字符串的自然排序3.Listener概念:Listener表示监听器,是JavaWeb三大组件(Servlet、Filter、Listener)之一。监听器可以监听就是在application,session,request三个对象创建、销毁或者往其中添加修改删除属性时自动执行代码的功能组件Listener分类JavaWeb中提供了8个监听器监听器分类监听器名称作用ServletContext监听ServletContextListener用于对ServletContext对象进行监听(创建、销毁ServletContextAttributeListener对ServletContext对象中属性的监听(增删改属性Session监听HttpSessionListener对Session对象的整体状态的监听(创建、销毁HttpSessionAttributeListener对Session对象中的属性监听(增删改属性HttpSessionBindingListener监听对象于Session的绑定和解除HttpSessionActivationListener对Session数据的钝化和活化的监听Request监听ServletRequestListener对Request对象进行监听(创建、销毁ServletRequestAttributeListener对Request对象中属性的监听(增删改属性ServletContextListener 使用1.定义类,实现ServletContextListener接口public class ContextLoaderListener implements ServletContextListener { /** *ServletContext对象被创建整个web应用发布成功 * paramsce */ public void contextInitialized(ServletContextEvent sce) {} /** *ServletContext对象被销毁整个web应用卸载 * param sce */ public void contextDestroyed(ServletContextEvent sce) {}2.在类上添加WebListener注解4.AJAX1概述概念:AJAX(Asynchronous JavaScript And XML):异步的 JavaScript 和 XMLAJAX作用:1.与服务器进行数据交换通过AJAX可以给服务器发送请求并获取服务器响应的数据使用了AJAX和服务器进行通信就可以使用HTMLAJAX来替换JSP页面了2.异步交互可以在不重新加载整个页面的情况下与服务器交换数据并更新部分网页的技术如搜索联想、用户名是否可用校验等等...同步和异步2AJAX快速入门1.编写AjaxServlet并使用response输出字符串2.创建XMLHttpRequest对象用于和服务器交换数据var xmlhttp; if(window.XMLHttpRequest){ // code for IE7, Firefox, Chrome, Opera, Safari xmlhttp new XMLHttpRequest(); }else{ // code for IE6, IE5 xmlhttp new ActiveXObject(Microsoft.XMLHTTP);3.向服务器发送请求xmlhttp.open(GET,url); xmlhttp.send();//发送请求4.获取服务器响应数据xmlhttp.onreadystatechange function ({ if (xmlhttp.readyState 4 xmlhttp.status 200) alert(xmlhttp.response Text);}}5.Axios异步框架Axios对原生的AJAX进行封装简化书写官网:https://www.axios-http.cn1Axios快速入门1. 引入 axios 的 js文件script srcjs/axios-0.18.0.js/script2.使用axios发送请求并获取响应结果axios({ method:get, url:http://localhost:8080/ajax-demo1/aJAXDemo1?usernamezhangsanquot; }).then(function (resp) alert(resp.data); });axios({ method:post url:http://localhost:8080/ajax-demo1/aJAXDemo1quot;, data:usernamezhangsan }).then(function (resp) alert(resp.data); });2Axios请求方式别名为了方便起见Axios已经为所有支持的请求方法提供了别名。axios.get(url[, config])axios.delete(url[, config])axios.head(url, config])axios.options(url[, config])axios.post(url[, data], config]])axios.put(url[, data], config]])axios.patch(url[, data[, config]])发送get请求axios.get(url) .then(function (resp) alert(resp.data); });发送post请求axios.post(url,参数) .then(function (resp) alert(resp.data); });6.JSON1JSON概念和基础语法概念:JavaScript Object Notation。JavaScript 对象表示法由于其语法简单层次结构鲜明现多用于作为数据载体在网络中进行数据传输JSON基础语法定义:var 变量名 {key1: value1, key2: value2, .... };value的数据类型为数字(整数或浮点数)字符串(在双引号中)逻辑值(true或 false)数组在方括号中)对象(在花括号中null示例var json (name: zhangsan, age: 23, addr: [北京, 上海, 西安] };获取数据:变量名.keyjson.name2JSON数据和Java对象转换请求数据JSON字符串转为Java对象响应数据Java对象转为JSON字符串Fastjson是阿里巴巴提供的一个Java语言编写的高性能功能完善的JSON库是目前Java语言中最快的JSON库可以实现Java对象和JSON字符串的相互转换。使用1.导入坐标dependency groupldcom.alibaba/groupld artifactldfastjson/artifactld version1.2.62/version /dependency2. Java对象转JSONString jsonStr JSON.toJSONString(obj);3. JSON字符串转Java对象User user JSON.parseObject(jsonStr, User.class);