杂记2

struts2的运行原理

 

1)HTTP请求被FilterDispatcher拦截
2)创建ActionProxy代理对象
3)通过代理对象加载xml配置数据,创建配置管理器ConfigurationManager
4)先创建ActionInvocation调用对象
5)调用struts2拦截器,注入所需要的功能
6)调用目标的Action对象,以及目标的方法
7)根据Action对象方法的返回值String,创建Result视图对象
8)调用目标的JSP页面
9)接着回来Struts2的拦截器,原路返回
10)最终响应到客户浏览器

 

HttpRequest(用户请求对象)->ActionContextCleanup(过滤器)->FilterDispatecher(过滤器)->ActionMapper(Action映射器)
->ActionProxy(Action代理类)->ConfigurationManager(配置器用来读取struts.xml)-ActionInvocation(Action调用器,
负责知道调用哪个拦截器或目标的action)->负责调用拦截器->Action(调用目标的action指定的方法)->Result(视图界面JSP)
->拦截器原路返回->HttpResponse(响应给客户端)

当用户发送请求,进入StrutsPrepareAndExecuteFilter(是struts2框架的核心控制器,它负责拦截由<url-pattern>/*</url-pattern>指定的所有用户请求,当用户请求到达时,该过滤器会过滤用户的请求。),
接着进入:Interceptor(Struts2内置的一些拦截器或用户自定义拦截器)
接着进入:Action(用户编写的action类,与struts1不同,struts2对用户的每一次请求都会创建一个Action,所以线程是安全的。)
接着进入:Result(获取转发页面)
接着进入:转发的页面
最后:解析响应给客户端

 

数据连接池的工作机制是什么?

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是静态联编;

posted @ 2017-11-21 11:14  Ling_Renne  阅读(119)  评论(0编辑  收藏  举报