黑马程序员技术交流社区
标题: 【上海校区】Filter&Ajax的使用介绍 [打印本页]
作者: 偷树的光头强 时间: 2018-11-1 20:06
标题: 【上海校区】Filter&Ajax的使用介绍
一:Filter的使用
1. Filter是由Tomcat启动时创建。接口包含三个方法。
1.void init(FilterConfig filterConfig) 过滤器对象创建的时候调用的方法
2.void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) 执行过滤的方法
3.void destory() 过滤器销毁的时候调用的方法
2.Filter过滤器的开发步骤
第一步:新建一个普通java类,实现Filter接口;
第二步:根据提示重写Filter接口的3个方法;
第三步:在这个类上面通过注解的方式配置这个Filter;
注解@WebFilter:配置Filter的注解,这个注解有两个参数;
filterName:设置过滤器的名称;
urlPatterns:配置这个过滤器要拦截的资源的路径;
第四步:在doFilter()方法中,书写过滤的业务逻辑;
chain.doFilter()方法放行;
3.过滤器的执行流程
1.客户端(浏览器)的HttpRequest到达Servlet之前,被Filter的doFilter()方法拦截;
2.根据需要,我们可以获取或者修改HttpRequest对象中的数据;
3.在这个请求响应给浏览器之前,Filter拦截了HttpResponse对象;
4.根据需要,我们可以获取或者修改HttpReponse对象中的数据;
5.最后,由doFilter中的chain决定是否让这个请求通过;
注意:多个Filter的执行顺序,Filter默认是按照字母顺序执行的,从而形成一个执行链条。
4.Filter的映射路径
1.精确匹配:匹配指定的urlpattern;
1.urlPatterns = "/index.jsp" 拦截对index.jsp页面的请求
2.urlPatterns = "/loginServlet" 拦截对loginServlet的请求
3.urlPatterns = "/a.jpg" 拦截对a.jsp的请求
2.模糊匹配:匹配复合条件的一类路径;
1.urlPatterns = "/*" 对所有的请求都进行拦截
2.urlPatterns = "/xxx/*" 对映射路径中/xxx下的所有资源进行拦截
3.urlPatterns = "*.xxx" 对指定后缀的请求进行拦截
3.多路径匹配:一个filter匹配多个资源;
二:Ajax的使用
1.JS原生的Ajax请求的思路
1.创建Ajax引擎对象--XMLHttpRequest对象;
2.为XMLHttpRequest对象绑定监听(监听服务器,将数据响应给引擎);
3.绑定提交地址;
4.发送请求;
5.接收响应数据;
2.Jquery的Ajax请求思路
1.GET请求
格式:$.get(url,[data],[callback],[type])
参数说明:
url : 请求地址
data : 发送给服务器端的请求参数,格式:方式一:key=value&key=value 方式二:{key:value,key:value...}
callback : 回调函数:当请求成功后触发的函数
type : 返回参数类型:取值可以是xml, html, script, json, text, _defaul等
2.POST请求
格式: $.post(url, [data], [callback], [type])
参数说明:
url : 请求地址
data : 发送给服务器端的请求参数,格式可以是key = value,也可以是JS对象
callback : 回调函数:当请求成功后触发的函数
type : 返回参数类型:取值可以是xml, html, script, json, text, _defaul等
3.AJax请求
格式: $.ajax({settings}) url,async,data,type,dataType,success,error
参数说明:
三:JSON数据格式
注意:
1.JSON数据的key值:字符串类型,必须加双引号;
2.JSON数据的value值:任意类型,如果是字符串则必须加双引号;
总结:
1.java对象 ----->json对象
{"id":1,"studentAge":10,"studentName":"张三"}
2.转换List集合 ----> JSON数组:
[
{ "id": 1,"studentAge": 10, "studentName": "张三"},
{"id": 2, "studentAge": 12,"studentName": "李四"}
]
3.转换复杂对象-----JSON混合数据类型:
{ "course": {
"code": "en",
"courseName": "英语",
"id": 1
},
"id": 2,
"studentAge": 12,
"studentName": "李四"
}
注意:复杂对象也可以用Map<String,Object> 集合来拼接;
结果:{"code":"1001","stu":{"id":2,"studentAge":12,"studentName":"李四"}}
作者: 不二晨 时间: 2018-11-7 09:04
ヾ(◍°∇°◍)ノ゙
作者: 魔都黑马少年梦 时间: 2018-11-8 17:01
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |