标签:filter ima 反射机制 UNC 基础 from tis 异常 control
Ajax(Asynchronous JavaScript And Xml),字面意思为异步的JavaScript和Xml,可实现动态加载页面及页面局部刷新
主要包含技术:Html、CSS、Dom、XMLHttpRequest、JavaScript
常用参数:
- url:请求地址
- type:请求方式,默认为get,常用的还有post
- async:设置是否异步,默认为true,表示异步
- dataType:设置返回的数据格式,常用的是json,也可以设置为text、html
- data:设置发送给服务器的数据
- success:请求成功后的回调函数
- error:请求失败后的回调函数
- 服务端响应头添加Header允许访问
response.addHeader(‘Access-Control-Allow-Origin:*’);//允许所有来源访问 response.addHeader(‘Access-Control-Allow-Method:POST,GET’);//允许访问的方式
- 前端使用jsonp:只支持get不支持post
用法:动态创建script,利用script不受同源策略限制的特性获取服务端返回信息
1) dataType改为jsonp
2) jsonp:"jsonpCallback"
3) 后端获取get请求中的jsonpCallback
4) 构造回调结构//前端 $.ajax({ type : "GET", async : false, url : "http://a.a.com/a/FromServlet?userName=644064", dataType : "jsonp",//数据类型为jsonp jsonp : "jsonpCallback", success : function(data) { alert(data["userName"]); }, error : function() { alert('fail'); } });
//后端 String jsonpCallback = request.getParameter("jsonpCallback"); //构造回调函数格式jsonpCallback(数据) resp.getWriter().println(jsonpCallback+"("+jsonObject.toJSONString()+")");
- httpClient内部转发
- 使用接口网关nginx、springcloud zuul
相同点:
> 1. 都实现了Map接口
> 2. 实现原理相同,底层都是哈希表,功能相同
不同点:
> 1. HashTable继承自Dictionary类,HashMap继承自AbstractMap类
> 2. HashTable线程安全,HashMap线程不安全
> 3. HashTable不允许有null,HashMap允许至多一个null
> 4. 检查是否存在:Hashtable->contains();HashMap->containsKey()/containsValue()
- jdbc使用sql,Hibernate使用HQL
- jdbc操作数据,Hibernate操作持久化对象
- jdbc操作的数据是临时的,Hibernate是可持久的,即持久化对象的值和数据库保持一致
- Filter依赖于servlet容器,基于函数回调,可以对几乎所有请求进行过滤,如CharacterEncodingFilter
- Interceptor依赖于web框架,基于Java的反射机制,属于面向切面编程(AOP)的一种运用,只能对controller请求进行拦截,对其他的一些比如直接访问静态资源的请求则没办法进行拦截处理
- MyBatis是一个数据持久层(ORM)框架,可以在实体类和SQL语句之间建立映射关系,是一种半自动化的ORM实现。
- 需要开发人员自己来写sql语句,程序更灵活,在一定程度上可以作为ORM的一种补充,但数据库移植性差。
- 便于统一管理与维护,降低了程序的耦合度。
Mybatis对于事务的支持不太好,需要手动开启JDBC事务进行事务管理:
- 在整个请求处理之前,创建事务工厂
- 基于同一个SqlSession对象获得事务对象,期间执行多次数据库更新操作
- 最后捕捉异常,进行事务回滚或关闭
标签:filter ima 反射机制 UNC 基础 from tis 异常 control
原文地址:https://www.cnblogs.com/maxiaobing/p/12048089.html