• 【无标题】


    前言

    作为一个计算机专业的人,学习,记笔记,领悟是一个必经的过程!
    没有鲜花、掌声,但是我还是要写下自己学习的东西
    同样的知识,不一样精彩……

    九 Ajax

    9.1 概念

    • AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)。
    • AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。
    • Ajax 不是一种新的编程语言,而是一种用于创建更好更快以及交互性更强的Web应用程序的技术。
    • 传统的网页(即不用ajax技术的网页),想要更新内容或者提交一个表单,都需要重新加载整个网页。
    • 使用ajax技术的网页,通过在后台服务器进行少量的数据交换,就可以实现异步局部更新。
    • 使用Ajax,用户可以创建接近本地桌面应用的直接、高可用、更丰富、更动态的Web用户界面。

    9.2 jQuery.ajax

    • Ajax的核心是XMLHttpRequest对象(XHR)。XHR为向服务器发送请求和解析服务器响应提供了接
      口。能够以异步方式从服务器获取新数据。
    • jQuery 不是生产者,而是大自然搬运工。jQuery 提供多个与 AJAX 有关的方法。
    • 通过 jQuery AJAX 方法,您能够使用 HTTP Get 和 HTTP Post 从远程服务器上请求文本、HTML、XML 或 JSON – 同时您能够把这些外部数据直接载入网页的被选元素中。
    • jQuery Ajax本质就是 XMLHttpRequest,对他进行了封装,方便调用!
    jQuery.ajax(...)
    部分参数:
    url:请求地址
    type:请求方式,GET、POST(1.9.0之后用method)
    headers:请求头
    data:要发送的数据
    contentType:即将发送信息至服务器的内容编码类型(默认: "application/x-wwwform-urlencoded;charset=UTF-8")
    async:是否异步
    timeout:设置请求超时时间(毫秒)
    beforeSend:发送请求前执行的函数(全局)
    complete:完成之后执行的回调函数(全局)
    success:成功之后执行的回调函数(全局)
    error:失败之后执行的回调函数(全局)
    accepts:通过请求头发送给服务器,告诉服务器当前客户端课接受的数据类型
    dataType:将服务器端返回的数据转换成指定类型
    "xml": 将服务器端返回的内容转换成xml格式
    "text": 将服务器端返回的内容转换成普通文本格式
    "html": 将服务器端返回的内容转换成普通文本格式,在插入DOM中时,如果包含JavaScript标签,则会尝试去执行。
    "script": 尝试将返回值当作JavaScript去执行,然后再将服务器端返回的内容转换成普通文本格式
    "json": 将服务器端返回的内容转换成相应的JavaScript对象
    "jsonp": JSONP 格式使用 JSONP 形式调用函数时,如 "myurl?callback=?"jQuery 将自动替换 ? 为正确的函数名,以执行回调函数
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    十 拦截器

    10.1 概念

    • SpringMVC的处理器拦截器类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理。开发者可以自己定义一些拦截器来实现特定的功能。
    • 过滤器与拦截器的区别拦截器是AOP思想的具体应用。
    • 过滤器
      • servlet规范中的一部分,任何java web工程都可以使用
      • 在url-pattern中配置了/*之后,可以对所有要访问的资源进行拦截
    • 拦截器
      • 拦截器是SpringMVC框架自己的,只有使用了SpringMVC框架的工程才能使用
      • 拦截器只会拦截访问的控制器方法, 如果访问的是jsp/html/css/image/js是不会进行拦截的

    10.2 自定义拦截器

    • 想要自定义拦截器,必须实现 HandlerInterceptor 接口。
    1. 编写一个拦截器
    public class MyInterceptor implements HandlerInterceptor {
    	//在请求处理的方法之前执行
    	//如果返回true执行下一个拦截器
    	//如果返回false就不执行下一个拦截器
    	public boolean preHandle(HttpServletRequest httpServletRequest,
    	HttpServletResponse httpServletResponse, Object o) throws Exception {
    		System.out.println("处理前");
    		return true;
    	}
    	//在请求处理方法执行之后执行
    	public void postHandle(HttpServletRequest httpServletRequest,
    	HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {
    		System.out.println("处理后");
    	}
    	//在dispatcherServlet处理后执行,做清理工作.
    	public void afterCompletion(HttpServletRequest httpServletRequest,
    	HttpServletResponse httpServletResponse, Object o, Exception e) throwsException {
    		System.out.println("清理");
    	}
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    1. 在springmvc的配置文件中配置拦截器
    
    <mvc:interceptors>
    	<mvc:interceptor>
    	
    	
    	
    	<mvc:mapping path="/**"/>
    	
    	<bean class="com.kuang.interceptor.MyInterceptor"/>
    	mvc:interceptor>
    mvc:interceptors>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    1. 编写一个Controller,接收请求
    @Controller
    public class InterceptorController {
    	@RequestMapping("/interceptor")
    	@ResponseBody
    	public String testFunction() {
    		System.out.println("控制器中的方法执行了");
    		return "hello";
    	}
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    1. . 前端 index.jsp
     <a href="${pageContext.request.contextPath}/interceptor">测试a>
    
    • 1
    1. 测试
  • 相关阅读:
    多项分布模拟及 Seaborn 可视化教程
    【无标题】计算机程序设计艺术习题解答(Excercise 1.2.2-25题)
    程序题:从对象中排除指定的属性并返回新对象
    软件测试/校招推荐丨鼎捷软件股份有限公司岗位开放
    vue循环列表点击选中,默认选中第一个
    什么是微服务?
    Gitlab服务器配置LDAP指导
    LeetCode/LintCode 题解丨一周爆刷字符串:简化路径
    MySQL基础——数据库和表的相关操作
    如何下载并安装jdk13版本
  • 原文地址:https://blog.csdn.net/yang2330648064/article/details/126160207