WebElement对象代表了一个DOM元素。
Selenium之find_element_by_css_selector()的使用方法
通常情况下,如果我们的API接口需要返回 JSON、XML 等格式化的数据时,只需要在控制器上注解@ResponseBody
且指定produces = "application/json;charset=UTF-8"
数据类型即可,但是每个接口都加上这段代码:produces = "application/json;charset=UTF-8"
,貌似不那么清爽
Spring MVC的拦截器(Interceptor)和Filter不同,但是也可以实现对请求进行预处理,后处理。先介绍它的使用,只需要两步。。。
Filter,它使用户可以改变一个request和修改一个response。Filter 不是一个servlet,它不能产生一个response,但它能够在一个request到达servlet之前预处理request,也可以在离开servlet时处理response。换种说法,filter其实是一个”servlet chaining”(servlet 链)。
拦截器它是链式调用,一个应用中可以同时存在多个拦截器Interceptor
, 一个请求也可以触发多个拦截器 ,而每个拦截器的调用会依据它的声明顺序依次执行。
这个很重要,注意在shiro或者springsecurity配置安全相关的时候,如果异常无法捕获,往往就是web请求顺序导致的,
比如你配置了全局异常,但是异常请求如果没有到达controller层,那么全局异常依然无法捕捉到这类异常,因为请求都没有发到控制层(servlet那一层),
在Filter层已经报权限不足异常那么直接就返回了,所以在前后端分离传递jwt配置的token校验时,如果异常返回的403无法以想要的json3段式或者4段式返回。
同样AOP日志也是无法捕获的,包括各种增强,连环绕增强都无法捕获这个安全框架的403异常
使用 jQuery 的工厂函数$():$(html);
会根据传入的 html 标记字符串创建一个DOM 对象,并把这个DOM 对象包装成一个jQuery 对象返回。
在一次Response写入header和cookie的时候,发现部分信息没有被输出