SSH复习

什么是spring?

    spring是一个开源的控制反转(LOC)和面向切面(AOP )的轻量级容器框架,可以使用struts和webwork等众多web应用程序结合使用,也可以单独使用。

什么是控制反转?

    组件对象控制权的转移,从程序代码本身转移到了外部容器。

什么是依赖注入?

    运行期间,动态的将依赖对象注入到组件中。
   
使用Spring有什么好处?

    (1)Spring能有效地组织你的中间层对象;
    
    (2)Spring能消除在许多工程中常见的对Singleton的过多使用;
    
    (3)Spring能消除各种各样自定义格式的属性文件的需要,使配置信息一元化;
    
    (4)Spring能够帮助我们真正意义上实现针对接口编程;
    
    (5)在Spring应用中的大多数业务对象没有依赖于Spring;
    
    (6)使用Spring构建的应用程序易于单元测试;
    
    (7)Spring支持JDBC和O/R Mapping产品(Hibernate);
    
    (8)MVC Web框架,提供一种清晰,无侵略性的MVC实现方式;
    
    (9)JNDI抽象层,便于改变实现细节,可以方便地在远程服务和本地服务间切换;
    
    (10)简化访问数据库时的例外处理;
    
    (11)Spring能使用AOP提供声明性事务管理,可以不直接操作JTA也能够对事务进行管理;
    
    (12)提供了JavaMail或其他邮件系统的支持。

什么是依赖注入?

    程序运行过程中,如果需要调用另一个对象协助时,无需再代码中创建调用者,而是依赖于外部的注入,依赖注入让bean与bean之间以配置文件组织在一起,而不是以硬编码的方式耦合在一起.核心容器的主要组件是BeanFactory 工厂模式的实现。

什么是struts2?

    Struts2以WebWork优秀的设计思想为核心,吸收了 Struts框架的部分优点,提供了一个更加整洁的MVC设计模式实现的Web应用程序框架。

什么是hibernate?

    Hibernate是一种ORM(Objet Relation mapping)对象关系映射,是一种java语言下的对象关系映射,是一种开源的、自由的 对JDBC做了轻量级封装 java持久化解决方案。

什么是持久化?

    持久(Persistence),即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘)。持久化的主要应用是将内存中的数据存储在关系型的数据库中,当然也可以存储在磁盘文件中、XML数据文件中等。

什么是持久层?

    持久层(Persistence Layer),即专注于实现数据持久化应用领域的某个特定系统的一个逻辑层面,将数据使用者和数据实体相关联。

为什么要持久化?增加持久层的作用是什么?

    数据库的读写是一个很耗费时间和资源的操作,当大量用户同时直接访问数据库的时候,效率将非常低,如果将数据持久化就不需要每次从数据库读取数据,直接在内存中对数据进行操作,这样就节约了数据库资源,而且加快了系统的反映速度。

    增加持久化层提高了开发的效率,使软件的体系结构更加清晰,在代码编写和系统维护方面变得更容易。特别是在大型的应用里边,会更有利。同时,持久化层作为单独的一层,人们可以为这一层独立的开发一个软件包,让其实现将各种应用数据的持久化,并为上层提供服务。从而使得各个企业里做应用开发的开发人员,不必再来做数据持久化的底层实现工作,而是可以直接调用持久化层提供的API。

hibernate的优缺点?

  (1)优点:

        a.Hibernate 使用 Java 反射机制 而不是字节码增强程序来实现透明性;
        b.Hibernate 的性能非常好,因为它是个轻量级框架。映射的灵活性很出色;
        c. 它支持各种关系数据库,从一对一到多对多的各种复杂关系。

(2)缺点:

        Hibernate限制您所使用的对象模型。例如,一个持久性类不能映射到多个表。

什么是声明式事务?
    
    以方法为单位,进行事务控制;抛出异常,事务回滚。

struts1和2的区别?

    struts要求action类继承一个抽象基类,struts1的一个普遍问题是使用抽象类继承而不是接口;

    struts2action类可以实现一个action接口,也可以实现其他接口,使可选和定制的服务成为可能;

    struts中action接口不是必须的,任何有ecexute标识的pojo对象都可以用作struts2的action对象;

    struts1action是单例模式并且线程是安全的,因为仅有action的一个实例来处理多有的请求;

    struts2action对象为每一个请求产生一个势力,没有线程安全;

    struts1依赖与servlet api struts2不依赖;

    struts1的核心控制器是ActionServlet strits2的核心控制器是StrutsPrepareAndExcuteFilter;

    struts1调用servlet是耦合方式;

    struts1测试时依赖于容器,struts2action通过初始化,设置属性,调用方法来测试,依赖注入也支持测试;

    struts1所有的actionForm必须继承一个基类,struts2直接使用action属性作为输入属性;

    struts1整合了JSTL,struts2可以使用JSTL,但是也支持更强大和灵活的表达式语言OGNL (Object Graph Notation Language);

    struts使用标准的JSP机制把对象绑定到页面中来访问,Struts2使用 ValueStack 栈技术,使用taglib能够访问值而不需要吧你的页面和对象绑定起来。

什么是线程?

    线程是一个单独程序流程,多线程是指一个程序可以同时运行多个任务,每个任务由一个单独的线程来完成。也就是说,多个线程可以同时在一个程序中运行,并且每一个线程完成不同的任务。线程是一个单一的顺序控制流程。

线程的两种实现方式?

    继承Thread类,一种是实现Runnable接口。

线程的生命周期?

    新建 就绪 运行 阻塞 死亡

什么是进程?

    进程是操作系统结构的基础;是一次程序的执行;是一个程序及其数据在处理机上顺序执行时所发生的活动。

特征

    动态性:进程的实质是程序在多道程序系统中的一次执行过程,进程是动态产生,动态消亡的;

    并发性:任何进程都可以同其他进程一起并发执行;

    独立性:进程是一个能独立运行的基本单位,同时也是系统分配资源和调度的独立单位;

    异步性:由于进程间的相互制约,使进程具有执行的间断性,即进程按各自独立的、不可预知的速度向前推进;

    结构特征:进程由程序、数据和进程控制块三部分组成;

    多个不同的进程可以包含相同的程序:一个程序在不同的数据集里就构成不同的进程,能得到不同的结果;但是执行过程中,程序不能发生改变。

AJAX工作原理:

    xmlHttpRequest实现异步舒心,异步请求。

        1.根据浏览器生成XmlHttpRequest对象;
    
        2.通过XmlHttpRequest,向后台发出请求;
    
        3.后台进行处理后,发送结构数据给前台;
    
        4.前台js进行函数毁掉,再页面某个位置显示。

servlet和oracle区别:

    相同点:都可以使用通用的sql语句

        1.语法不一样,t-sql,pl-sql;
        
        2.变量声明不一样,@变量名,一个一般为v_变量名(规范);
    
        3.取得时间方式不一样,getDate()方法,sysdate属性;
    
        4.分页方式:top、rownum;
    
        5.sqlserver一般处理信息量并发没有oracle好;
    
        6.oracle有表空间,去连接数据库文件,sqlserver直接创建数据库;
    
        7.oracle每个数据库单独使用服务,sqlserver所有数据库共用一个服务。

spring为什么要用依赖注入?

    loc(控制反转) di(依赖出入),以前的程序用的对象都是new出来的,这样就会有大亮点额内存被占用,儿如果使用spring容器,管理对象,以及对象中的关系,这样我们可以减少对内存的直接访问,也就减少了jvm垃圾回收机制所带来的垃圾处理问题,可以用最少的内存,解决对象间的关系。

    c++:写一个构造方法,要在写一个析构方法。

    由开发人员自己清空内存。

    jvm:过一段时间去清理不用的对象内存。

做好一个项目重要的是什么?

    对需求的把握。一个项目都是胃药需求来的,能不能满足客户需求为中心;
    
    对项目进度的把握;
    
    合理规划时间,以及项目功能的分配;
    
    简历甘特图,以明确每个人在每个时间段应该完成的项目部分;
    
    组长,在项目经理,应该及时间调整项目安排。

有效防止SQL注入:

    限定用户有效的输入;

    使用参数化查询;

    使用存储过程;

    PreparedStatent;

    加密 MD5;

    用户不同操作受限制;

什么是ajax?

    不用刷新界面就实现与服务器的交互。

为什么使用拦截器

    Struts 2将核心功能放到多个中实现,拦截器可以自由选择组合,增强灵活性,有利于系统的解耦。

什么是拦截器

    拦截器在AOP面向切面编程中用于在某个方法或字段被访问之前进行拦截,然后在之前后加入某些操作,拦截AOP的一种实现策略。
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值