struts2的运行原理javascript
1)HTTP请求被FilterDispatcher拦截
2)建立ActionProxy代理对象
3)经过代理对象加载xml配置数据,建立配置管理器ConfigurationManager
4)先建立ActionInvocation调用对象
5)调用struts2拦截器,注入所须要的功能
6)调用目标的Action对象,以及目标的方法
7)根据Action对象方法的返回值String,建立Result视图对象
8)调用目标的JSP页面
9)接着回来Struts2的拦截器,原路返回
10)最终响应到客户浏览器java
HttpRequest(用户请求对象)->ActionContextCleanup(过滤器)->FilterDispatecher(过滤器)->ActionMapper(Action映射器)
->ActionProxy(Action代理类)->ConfigurationManager(配置器用来读取struts.xml)-ActionInvocation(Action调用器,
负责知道调用哪一个拦截器或目标的action)->负责调用拦截器->Action(调用目标的action指定的方法)->Result(视图界面JSP)
->拦截器原路返回->HttpResponse(响应给客户端)mysql
当用户发送请求,进入StrutsPrepareAndExecuteFilter(是struts2框架的核心控制器,它负责拦截由<url-pattern>/*</url-pattern>指定的全部用户请求,当用户请求到达时,该过滤器会过滤用户的请求。),
接着进入:Interceptor(Struts2内置的一些拦截器或用户自定义拦截器)
接着进入:Action(用户编写的action类,与struts1不一样,struts2对用户的每一次请求都会建立一个Action,因此线程是安全的。)
接着进入:Result(获取转发页面)
接着进入:转发的页面
最后:解析响应给客户端sql
J2EE服务器启动时会创建必定数量的池链接,并一直维持很多于此数目的池链接。客户端程序须要链接时,池驱动程序会返回一个未使用的池链接并将其标记为忙。若是当前没有空闲链接,池驱动程序就新建必定数量的链接,新建链接的数量有配置参数决定。当使用的池链接调用完成后,池驱动程序将此链接标记为空闲,其余调用就可使用这个链接。数据库
实现方式,返回的Connection是原始Connection的代理,代理Connection的close方法不是真正关链接,而是把它代理的Connection对象还回到链接池中。编程
mysql和oracle的区别:浏览器
一.Oracle是大型数据库而Mysql是中小型数据库,Oracle市场占有率更高,Mysql是开源的,Oracle价格很是高安全
二.Oracle支持大并发,大访问量,是OLTP最好的工具(OLTP[联机事务处理])(OLAP[数据仓库处理 有了基础大数据后 根据数据分析 市场定位])服务器
三.安装后Oracle占用较大的内存空间和其余的机器性能并发
四.操做上的区别:
1.主键
Mysql通常使用自动增加类型,Oracle没有自动增加类型,通常使用的是序列。
2.单引号的处理
Mysql里能够用双引号包起字符串,Oracle只能够用单引号包起字符串
3.翻页的sql语句不一样
mysql用limit开始位置,记录个数;Oracle使用ROWNUM
4.空字符的处理
MYSQL的非空字段也有空的内容,Oracle里定义了非空字段就不允许有空的内容
java和javascript的区别:
1.java是面向对象的,javascript是基于对象的脚本语言;
2.javascript是编辑性编程语言,在发送给客户端以前不须要编译,而java须要在发送给客户端前须要编译
3.变量不同,javascript是弱类型的,java是强类型的,前者不要求使用前声明类型
4.javascript是动态联编,java是静态联编;