<track id="vvvvv"><del id="vvvvv"></del></track><p id="vvvvv"></p><pre id="vvvvv"></pre>
<pre id="vvvvv"></pre>
<pre id="vvvvv"><strike id="vvvvv"><ol id="vvvvv"></ol></strike></pre>
        <ruby id="vvvvv"></ruby>
          <p id="vvvvv"><ruby id="vvvvv"></ruby></p>
              <noframes id="vvvvv"><pre id="vvvvv"></pre>
              <p id="vvvvv"><pre id="vvvvv"></pre></p>
              <pre id="vvvvv"></pre><track id="vvvvv"><strike id="vvvvv"><ol id="vvvvv"></ol></strike></track>

                <p id="vvvvv"></p>
                  <pre id="vvvvv"></pre>

                  <pre id="vvvvv"><del id="vvvvv"></del></pre>
                  <pre id="vvvvv"><pre id="vvvvv"><b id="vvvvv"></b></pre></pre>
                      <pre id="vvvvv"><pre id="vvvvv"><mark id="vvvvv"></mark></pre></pre>
                      <noframes id="vvvvv"><ruby id="vvvvv"></ruby>

                      <pre id="vvvvv"></pre><pre id="vvvvv"></pre>

                      <pre id="vvvvv"></pre>
                      <noframes id="vvvvv">
                      <pre id="vvvvv"><ruby id="vvvvv"></ruby></pre>

                        <pre id="vvvvv"><ruby id="vvvvv"></ruby></pre>
                          <pre id="vvvvv"></pre>

                            <pre id="vvvvv"><strike id="vvvvv"></strike></pre>
                            <p id="vvvvv"></p>
                            <pre id="vvvvv"></pre>

                            <pre id="vvvvv"><ruby id="vvvvv"></ruby></pre>
                            <pre id="vvvvv"><b id="vvvvv"><b id="vvvvv"></b></b></pre><pre id="vvvvv"><strike id="vvvvv"><var id="vvvvv"></var></strike></pre>

                            <p id="vvvvv"></p>
                            <pre id="vvvvv"><ruby id="vvvvv"></ruby></pre>

                                    <noframes id="vvvvv"><pre id="vvvvv"></pre>
                                    <pre id="vvvvv"><ruby id="vvvvv"></ruby></pre>

                                    <pre id="vvvvv"></pre>

                                      <pre id="vvvvv"><strike id="vvvvv"><b id="vvvvv"></b></strike></pre><pre id="vvvvv"><ruby id="vvvvv"><b id="vvvvv"></b></ruby></pre>

                                      <pre id="vvvvv"></pre><track id="vvvvv"><ruby id="vvvvv"><ol id="vvvvv"></ol></ruby></track>
                                      <pre id="vvvvv"><ruby id="vvvvv"><b id="vvvvv"></b></ruby></pre>

                                        <p id="vvvvv"></p>

                                            <p id="vvvvv"></p>

                                            <noframes id="vvvvv"><ruby id="vvvvv"><ruby id="vvvvv"></ruby></ruby>
                                                <track id="vvvvv"><strike id="vvvvv"></strike></track>

                                                <pre id="vvvvv"><ruby id="vvvvv"><b id="vvvvv"></b></ruby></pre>

                                                  <pre id="vvvvv"></pre>
                                                    <track id="vvvvv"><ruby id="vvvvv"><b id="vvvvv"></b></ruby></track>

                                                      <pre id="vvvvv"></pre>
                                                      <p id="vvvvv"></p>

                                                      程序员面试java架构师面试宝典
                                                      • 发表于2020-04-23 16:36
                                                      • |
                                                      • 370次阅读
                                                      • |
                                                      • 来源 豪创

                                                      springmvc和struts2的区别?


                                                        机制:springmvc的入口是servlet,struts2的入口是filter


                                                        性能:springmvc会比struts2快一点。springmvc是基于方法设计,struts2是基于类,每次发一次请求都会实例一个action,每个Action都会被注入属性。


                                                        参数传递:struts2是在接受参数的时候,可以采用属性来接收参数,这家说明可以让多个方法共享


                                                        拦截器机制:struts2有自己的interceptor机制,springmvc用的是独立的AOP方式,strtus2的配置文件还是比springmvc大,springmvc使用简洁,springMVC比struts2开发效率要高.


                                                        struts2工作原理?


                                                        客户端初始化一个执行servlet的请求


                                                        这个请求经过一系列的过滤器,被FilterDispatcher调用,询问ActionMapper来决定是否调用Action


                                                        FilterDispatcher把请求的处理交给ActionProxy


                                                        ActionProxy通过Configuraction Manager询问相关的配置文件,找到需要的Action类


                                                        ActionProxy创建ActionInvocation的实例


                                                        ActionInvocation调用Action前后的拦截器


                                                        Action执行完毕后,根据struts.xml配置文件找到对应的视图页面


                                                        Hibernate工作原理?


                                                        读取并解析配置文件


                                                        创建SessionFactory


                                                        打开Session


                                                        创建事务:transaction


                                                        持久化操作


                                                        提交事务


                                                        关闭Session


                                                        关闭SessionFactory


                                                        为什么要用spring?


                                                        spring能够很好的和各大框架整合


                                                        spring通过IOC容器管理了对象的创建和销毁工厂模式


                                                        在使用hiberna,mybatis的时候,不用每次都编写提交的事务的代码,可以使用spring的AOP来管理事务AOP其实就是一个动态代理的实现


                                                        声明式事务和编程式事务


                                                        mybatis的优缺点?


                                                        优点:SQL写在XML中,便于统一管理和优化


                                                        提供映射标签,支持对象和数据库的orm字段关系映射


                                                        可以对SQL进行优化


                                                        缺点:SQL工作量大


                                                        mybagtis移植姓不好


                                                        不支持级联


                                                        谈谈SSH整合?


                                                        struts(表示层)+spring(业务层)+hibernate(持久层)


                                                        struts是一个表示层的框架,主要用于接收请求,分发请求。struts其实属于MVC中的VC层次的


                                                        hibernate是一个持久层的框架,主要负责与关系数据库的操作


                                                        spring是一个业务层的框架,是一个整合的框架,能够很好的黏合表示层和持久层。


                                                        maven是什么?有什么作用?


                                                        是一个项目管理、构建工具


                                                        作用:帮助下载jar寻找依赖,帮助下载依赖热部署、热编译


                                                        WEB前端优化?


                                                        减少HTTP请求的数量(合并css、js、图片)


                                                        利用浏览器的缓存机制


                                                        利用GZIP压缩机制:只针对文本类资源有效


                                                        把CSS文件放在HTML开头


                                                        把javascript文件放在HTML结尾


                                                        避免CSS表达式(判断浏览器)


                                                        使用javascript压缩


                                                        减少DNS查找


                                                        避免重定向


                                                        使用ajax


                                                        安全性测试


                                                        利用安全性测试技术,找到潜在的漏洞


                                                        事务隔离级别(4种)


                                                        Serializable(串行化):一个事务在执行过程中完全看不到其他事物对数据库所做的更新(事务执行的时候不允许别的事务并发执行,事务只能一个接着一个地执行,而不能并发执行)


                                                        Repeatable Read(可重复读):一个事务在执行过程中可以看到其它事务已经提交的新插入的记录,但是不能看到其它事务对已有记录的更新


                                                        Read Commited(读已提交数据):一个事务在执行过程中可以看到其它事务已经提交的新插入的记录,而且能看到其它事务已经提交的对已有记录的更新。


                                                        Read Uncommitted(读未提交数据):一个事务在执行过程中可以看到其它事务没有提交的新插入的记录的更新,而且能看其它事务没有提交到对已有记录的更新


                                                            以上就是动力节点java培训机构的小编针对“程序员面试java架构师面试宝典”的内容进行的回答,希望对大家有所帮助,如有疑问,请在线咨询,有专业老师随时为你服务。

                                                      本篇文章部分内容及图片均来源于网络,如侵犯到您的权益,请及时通知我们。

                                                      370
                                                      热门教程
                                                      青苹果影院4480福利版iOS最新下载-青苹果影院首播影院高清