专栏首页嘘、小点声java学习与应用(4.6)--过滤器、监听器、JQuery、AJAX、JSON等

java学习与应用(4.6)--过滤器、监听器、JQuery、AJAX、JSON等

过滤器

Filter过滤器:客户端在请求服务器资源前和返回响应,会通过过滤器,以拦截请求完成特殊功能。登录校验、统一编码校验等一些通用操作放置到过滤器。 定义类实现接口Filter(javax.servlet),复写方法(init(服务器启动调用),doFilter(写入FilterChain.doFilter进入方法放行,之后的代码为返回响应执行的信息),destory(服务器关闭前执行)),配置拦截路径(@WebFilter(/*为所有资源都拦截))。 web.xml配置(WEB_INF下),配置filter标签下的filter-name,filter-class。配置filter-mapping标签下url-pattern,filter-name。也可直接用注解@WebFilter配置即可。 配置详解:拦截路径配置(具体资源路径、目录/xxx/*、后缀*.jsp,所有资源/*等)。 配置符合请求方式访问资源前进行的拦截(REQUEST浏览器直接请求,FORWARD转发访问资源,INCLUDE包含访问资源,ERROR跳转资源,ASYNC异步访问资源),使用注解的dispatcherType(可传入数组)。 也可配置web.xml的dispatcher标签拦截符合条件的资源被访问方式。 过滤器链(多个过滤器),资源进入通过的过滤器和返回的顺序相反。使用注解:过滤器执行的先后使用类名字符串比较(如AFilter,BFilter等)顺序执行。使用web.xml:filter-mapping的先后顺序执行 设置登录校验,可以在Filter中对指定页面校验session值判断放行和跳转等。敏感词汇过滤:使用装饰模式、代理模式等来增强request。在代理模式中使用代理对象代理真实对象达到增强真实对象,代理中增强返回值为。 静态代理使用类文件描述代理模式,动态代理在内存中形成代理类。代理对象和真实对象实现相同接口,使用Proxy的newInstance获取代理对象(传入如:lenovo. getClass(). getClassLoader(), lenovo. getClass(). getInterfaces(), new InvocationHandler( ),然后重写invoke),使用代理对象获取真实。 proxy为代理对象,method为代理对象被调用的方法,args为被调用时传递的参数。invoke中写入Object obj=method.invoke(xxx,args);return obj方式增强真实对象。通过修改代理传入的参数,返回值,和方法体,进行增强和修改。

监听器

Listener监听器:注册监听:将事件、事件源、监听器绑定在一起。当事件源 上发生某个事件后,执行监听器代码。 ServletContextListener对象监听ServletContext对象的创建(contextInitialized方法)和销毁(contextDestoryed方法)。可以用于加载资源文件[全局资源文件](web.xml中context-param标签下的param-name和param-value标签配置资源路径),使用ServletContext.getInitParameter方法获取该文件,最后加载进内存。 定义类实现ServletContextListener接口,复写其方法,配置监听(web.xml中的listener标签下的listener-class标签,或注解)。

JQuery

JQuery(JavaScript的框架),简化js的开发,优化了HTML文档操作。 使用JQuery获取元素JQuery对象(\$("#id"),\$("tag")等选择器),然后可以转换为js对象,两种对象都可以当做数组使用,方法不通用,但是前者更方便,如拥有将内容修改方法html等。 转换方式js->jq(使用:$(js对象))。jq->js(使用:jq对象[索引]或者jq对象.get(索引),获取js对象)。 选择器以选择元素对象:事件绑定(\$("xx").click(function(){})绑定单击事件),入口函数(\$(function(){})文档加载完毕执行的代码,和onload的区别如后者只能定义一次,前者不会被覆盖),样式控制(使用.css方法,传入DOM或css键值对修改)。 选择器见图:

后代选择器包括了所有子代,子选择器只选择其下一代标签。选择器中标签选择器可以使用!=(不等),^=(前缀匹配),$=(后缀匹配),*=(包含匹配)等运算符。 过滤选择器中,根据索引,过滤器等进行过滤。过滤器选中的元素后加的冒号进行过滤,表单转转等。

JQuery的DOM操作

内容操作方法如:html获取标签体内容,text获取存文件内容,val获取属性value值。可以获取并修改其内容。

属性操作:通用操作如:attr获取(传入键)/设置(传入键值)属性,removeAttr删除属性,prop获取/设置属性,removeProp删除属性。元素固有属性(手册中存在的属性)使用prop,操作自定义属性使用attr。 对class操作:addClass(添加class属性值),removeClass(删除class属性值),toggleClass(存在则添加,不存在则删除),css方法获取属性等。 CRUD操作:append父元素将子元素添加到内部,并位于末尾(prepend方法添加到内部并位于开头)。appendTo,prependTo方法将子元素方法放到父元素内部等。 after/insertAfter方法,添加兄弟元素到本元素[注意本元素指代]后,before/insertBefore添加到本元素[注意本元素指代]前。remove方法移除元素,empty清空所有元素的子元素。 其他方法见jquery手册如clone方法。

JQuery的动画

JQuery的动画,遍历方法,事件绑定。动画使用见图片。 JQuery的遍历方式(js可以使用for循环):jq对象.each(function(){this.xxx(this为该对象的内容,不用写for,或使用function中传入索引index和elemet使用替代this,element为js对象[可转jq对象])}),回调函数function中的return false和ture分别替代break和continue。

遍历方式:$.each (jq对象,function(){}),遍历方式:for ... of 方式:for(li of citys){回调体},jq3.0以后支持。

事件绑定:jq对象.事件方法(回调函数[去掉on的一群方法,不传入回调函数则执行自动触发对应事件])(可以使用链式编程),jq对象.on(绑定事件,传入事件名称和回调函数).off(解绑,传入事件,不传入则解绑全部事件) , jq对象.toggle事件切换,传入多个回调函数轮流执行各个回调函数(jq3.0以上版本需要引入插件,该方法位于低版本中)。

插件:可以增强JQuery的功能。

实现方式: \$. fn.extend(object) 增强通过Jquery获取的对象的功能[使用对象调用] \$.extend(object)增强JQeury对象自身的功能[全局]。object格式为{方法名:function(){}}。该方法可以被JQuery对象调用[使用对象调用],或直接用$.方式调用[全局]。

AJAX

AJAX(Asynchronous JavaScript And XML),异步的JavaScript和XML。异步方式下,客户端发出请求后不被服务器响应阻塞,客户端可以进行其它操作。不加载整个网页情况下能对局部信息进行更新。 可以使用原生的js实现方式(使用原始js代码向服务器异步请求,使用xmlhttp的方法,见手册即可)和JQuery的实现方式使用:\$.ajax(),\$.get \$.post。 \$.ajax()中传入{}键值对,如url的请求路径,type的请求方式,date的携带参数字符串或json格式,success的响应成功[返回200]执行的回调函数,error的发送请求出错执行的函数。dateTpye的设置接收的响应数据格式。键值对以逗号隔开。 \$.get发送get请求,分别传入url,date,callback,type进行设置。\$.post发送post请求,类似get方法。type可以发送给客户端json而不被认为是字符串。或在服务器端设置MIME类型response.setContentType设置响应格式为json。

JSON

JSON(JavaScript Object Notation JavaScript对象表示法),用于存储和交换文本信息的语法,比XML更小更快。 JSON基本规则:数据由键值对构成,键值用单引号或双引号也可以不使用引号,值类型为数字/字符串/逻辑值/数组/对象/null等。数据逗号分隔,方括号保存数组(方括号中花括号使用定义数组对象),花括号保存对象定义为json格式。 获取对象:json对象.键名,json.对象["键名"],使用for in 方式进行遍历,可以获取key,再利用对象和key获取值。 Java对象和json对象的转换: Java对象转为JSON对象使用解析器(Jsonlib、Gson、fastjson,jackson)。导入jar包,创建Jackson核心对象ObjectMapper,然后使用其方法进行解析。 方法如:writeValue传入File/Writer/OutputStream和obj,将obj转json并填充到指定的位置。writeValueAsString传入对象输出json字符串。 注解@JsonIgnore忽略该属性,@JsonFormat(pattern)。在函数的成员变量前使用,对值进行处理。List集合转换后为数组的json,Map集合转换后为json,和对象一致。 json转换为java对象,使用readValue方法,传入json数据和Class类型,返回指定类型的对象。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • python网络爬虫(12)去哪网酒店信息爬取

    本次使用简易的方案,模拟浏览器访问,然后输入字段,查找,然后抓取网页中的信息。存储csv中。然后再转换为Excel,并对其中的数据进行二次处理。

    嘘、小点声
  • Thinkphp5.0快速入门笔记(2)

    https://www.kancloud.cn/thinkphp/thinkphp5_quickstart

    嘘、小点声
  • java学习与应用(4.3.1)--XML与解析

    XML(extensible markup language可扩展标记语言),由万维网联盟(W3C)提出,以替代HTML,后来基本用语存储数据(配置文件,网络中...

    嘘、小点声
  • HttpGet设置网络代理的实例代码

    版权声明:本文为博主汪子熙原创文章,未经博主允许不得转载。 https://jerry.blog.csdn.net/article/detai...

    Jerry Wang
  • 拨开迷雾:关于resize datafile理解的错误

    黄廷忠(网名:认真就输) 云和恩墨技术专家 个人博客:http://www.htz.pw/ resize数据文件的时候,常常会报ORA-03297错误,也许很多...

    数据和云
  • 第5次文章:关于IO流的基本操作

    春节假期就要结束啦,很多小伙伴儿明天就开始上班了,祝各位小伙伴儿新的一年工作顺心,万事顺利哟!

    鹏-程-万-里
  • Java IO学习笔记(一):File类

    http://www.cnblogs.com/lich/archive/2011/12/10/2283445.html

    bear_fish
  • IDEA快捷键拆解系列(二):File篇

      以下是关于File导航项及其每一子项的拆解,其中,加粗部分的选项是博主认为比较重要的。

    happyJared
  • 容器镜像中心

    容器总是存在一个镜像中心,而一个镜像中心的存在主要是为了保存所有的镜像image,而在使用的时候,总是要追求高可用,从而会有不同的架构。

    SRE运维实践
  • HYPEREAL发布新一代VR头显,游戏平台推月付会员套餐

    VRPinea

扫码关注云+社区

领取腾讯云代金券