Java Web

来源:互联网 发布:音响 知乎 编辑:程序博客网 时间:2024/06/03 12:44

1.MVC

是模型(model)-视图(view)-控制器(controller)的缩写,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。

首先控制器接收用户的请求,并决定应该调用哪个模型来进行处理。然后模型根据用户请求进行相应的业务逻辑处理,并返回数据。最后控制器调用相应的视图格式化模型返回的数据,并通过视图呈现给用户。

主要还是采用封装(分层)的思想,来降低耦合度,从而使我们的系统更加的灵活,扩展性更好。

优点:1)多个视图可以共享一个模型,提高代码的可重用性.

          2)三个模块相互独立,构造良好的松耦合的构件。

          3)控制器提高应用程序的灵活性和可配置性。

缺点

         1)增加了系统结构和实现的复杂性

         2)视图与控制器间的过于紧密的连接

         3)视图对模型数据的低效率访问。


2.Spring 的控制反转

Service ,Dao层作为独立的组件出现,在编程阶段,既没有实例化对象,也没有设置依赖关系,而把它交给Spring,由Spring在运行阶段实例化,组装对象。把自己new的东西改为容器提供。使用new实现具体类,当代码使用大量具体类时,需要修改代码,不满足对扩展开发,对修改关闭的设计原则。将实例化具体类的代码从应用中抽离,封装起来。

A)    初始化具体值

B)    装配

好处:灵活装配,防止内存泄漏

 spring中的依赖注入DI(dependenceinjection)共有三种方式:第一种是接口注入(Interface Injection)第二种是get set注入(set/get Injection)第三种是构造器注入(Constructor Injection)

 三种注入方式的区别:

  1).接口注入:组件需要依赖特定接口的实现,其中的加载接口实现和接口实现的具体对象都是由容器来完成。这样,接口必须依赖容器,这样的组件具有侵入性,降低了重用性。其中如J2EE开发中常用的Context.lookup(ServletContext.getXXX),都是接口注入的表现形式。(这种注入方式不是常用的)。

  2). getter/setter方式注入:对于需要注入的东西比较明确。符合java的设计规则。更适合java开发人员,使用起来更加自然,更加方便。

  3).构造器方式注入:在类加载的时候,就已经注入依赖的组件。但是若是参数多的话,使用起来不方便。

3.JSP的9个内置对象及作用?

Request  请求对象;   response  响应对象     

pageContext   页面上下文对象  通过pageContext获取JSP的资源

Session   会话对象  服务端保存用户信息

application  应用程序对象 application对象实现了用户间数据的共享,可存放全局变量   

out  输出对象:服务器向客户端输出字符类内容

Config  配置对象        page 页面对象      

exception  异常对象,更常用办法:filter捕捉异常,或者exceptionHandler机制捕捉异常。如果一个JSP页面要应用此对象,就必须把isErrorPage设为true,否则无法编译


4.AOP概念:

面向切面编程,是面向对象的思维的有力补充,在执行业务的前后执行另外的代码,把业务流程分为几个部分,例如权限检查,业务处理日志记录,每个部分单独处理,然后组装完成完整的业务流程。Servlet的Filter便是AOP思想。使用拦截器接口interceptor。

好处:可以动态的增加和删除在切面上的逻辑而不受影响。


原创粉丝点击