Filter
Filter 表示过滤器,是 JavaWeb 三大组件(Servlet、Filter、Listener)之一。
过滤器可以把对资源的请求拦截下来,从而实现一些特殊的功能。
Filter快速入门
1.定义一个类实现Filter接口,重写所有方法
2.配置拦截路径
3.在doFilter中实现功能
//@WebFilter("/demo1") 精确
//@WebFilter("/user/*") 目录
//@WebFilter("*.jsp") 后缀
@WebFilter("/*")
public class FilterDemo1 implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
System.out.println("过滤前代码");
//放行
filterChain.doFilter(servletRequest,servletResponse);
System.out.println("过滤后代码");
}
@Override
public void destroy() {
}
}
Filter的执行流程
放行前代码 ->放行->访问资源->放行后代码
过滤器链
过滤器链是指在一个Web应用,可以配置多个过滤器,这多个过滤器称为过滤器链。
我们现在使用的是注解配置Filter,而这种配置方式的优先级是按照过滤器类名(字符串)的自然排序。
比如有如下两个名称的过滤器 : BFilterDemo
和 AFilterDemo
。那一定是 AFilterDemo
过滤器先执行。
Listener
Listener 表示监听器,是 JavaWeb 三大组件(Servlet、Filter、Listener)之一。
监听器可以监听就是在 application
,session
,request
三个对象创建、销毁或者往其中添加修改删除属性时自动执行代码的功能组件。
request 和 session 我们学习过。而 application
是 ServletContext
类型的对象。
ServletContext
代表整个web应用,在服务器启动的时候,tomcat会自动创建该对象。在服务器关闭时会自动销毁该对象。
AJAX
概念:AJAX(Asynchronous JavaScript And XML):异步的 JavaScript 和 XML
AJAX作用:与服务器进行数据交换:通过AJAX可以给服务器发送请求,并获取服务器响应的数据
后台发送:浏览器的请求是后台js发送给服务器的,js会创建单独的线程发送异步请求,这个线程不会影响浏览器的线程运行。
局部刷新:浏览器接收到结果以后进行页面局部刷新
浏览器发送HTTP返回的是一个完整的网页,浏览器会显示这个网页,
浏览器会等待服务器的响应(同步请求)
AJAX返回的是部分数据,浏览器内容不会变化
后台发送,不影响浏览器的操作(异步请求)
所以用html+ajax来替换jsp页面
快速入门
原生ajax
步骤:
1.先创建XMLServletRequest对象
2.建立连接
3.发送请求
4.判断是否正确响应
5.获取响应的数据
let xmlHttpRequest = new XMLHttpRequest();
//请求方式,和访问路径
xmlHttpRequest.open("GET","ajaxServlet");
xmlHttpRequest.send();
xmlHttpRequest.onreadystatechange=function (){
/*4代表访问和响应完成*/
if(xmlHttpRequest.readyState==4&&xmlHttpRequest.status==200){
alert(xmlHttpRequest.responseText);
}
}
使用axios
步骤:
1.引用axios的js文件
2.使用axios
//post请求
axios({
method:"POST",
url:"ajaxServlet",//可以带请求参数? 不可以
data:"username=lisi&password=4444"
}).then(resp=>{
//resp 响应
//resp.data :表示相应数据
alert("post:" +resp.data)
})
//ajax获取的字符类型”true“
//axios会自动将”true“转为boolean类型
最后
如果你对本文有疑问,你可以在文章下方对我留言,敬请指正,对于每个留言我都会认真查看。