一: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":"李四"}}
|