b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

Javaweb经典三层架构的演变

电脑杂谈  发布时间:2020-03-18 18:01:45  来源:网络整理

jsp三层架构_jsp 引入jsp_jsp引入jsp页面

①JSP Model1第一代

JSP Model1是JavaWeb早期的模型,它适合大型Web项目,开发成本低!Model1第一代时期,服务器端只有JSP页面,所有的操作都在JSP页面中,连访问的API也在JSP页面中完成。也就是说,所有的东西都耦合在一起,对后期的维护跟扩展极为不利。

JSP Model1第一代

②JSP Model1第二代

JSP Model1第二代有所改进,把业务逻辑的内容放在了JavaBean中,而JSP页面负责显示或者请求调度的工作。虽然第二代比第一代好了些,但还令JSP做了过多的工作,JSP中把视图工作跟请求调度(控制器)的工作耦合在一起了。

这里写图片描述

③JSP Model2

JSP Model2模式尚未可以清晰的提到MVC完整的结构了。

jsp引入jsp页面_jsp 引入jsp_jsp三层架构

·JSP:视图层,用来与客户打交道。负责接收用来的数据,以及显示数据给用户;

·Servlet:控制层,负责找到适合的建模对象来处理业务逻辑,转发至合适的视图;

JavaBean:模型层,完成详细的业务工作,例如:开启、转账等。

这里写图片描述

这就是javaweb经历的三个年代,JSP Model2适合合作研发小型的Web项目,各司其职,互不干涉,有利于开发中的分工,有利于组件的重用。但是,Web项目的研发难度加大,同时对研发人员的科技要求也增加了。

我们常说的三层框架是由JavaWeb提出的,也就是说这是JavaWeb独有的!

所谓三层是描述层(WEB层)、业务逻辑层(Business Logic),以及数据访问层(Data Access)。

·WEB层:包含JSP和Servlet等与WEB相关的内容;

jsp三层架构_jsp引入jsp页面_jsp 引入jsp

·业务层:业务层中不包括JavaWeb API,它只关心业务逻辑;

·数据层:封装了对的访问细节;

注意,在业务层中不能出现JavaWeb APIjsp三层架构,例如request、response等。也就是说,业务层代码是能重用的,甚至可以应用至非Web环境中。业务层的每个步骤可以理解成一个万能,例如转账业务方式。业务层依赖数据层,而Web层依赖业务层!

这里写图片描述

上世纪90年代,随着Internet和浏览器的迅猛发展,基于浏览器的B/S模式随之火爆发展出来。最初,用户使用浏览器向WEB服务器发送的请求都是请求静态的资源,比如html、css等。但是可以想象:根据用户请求的不同动态的处理并返回资源是理所当然必须的要求。

java 为了规避上述需求,就必定推出一种技术来支持动态需求,因此servlet技术诞生

使用Servlet技术,页面中的所有信息必须借助输出语句来生成。下面的代码(部分代码)生成的页面的内容就是“HelloWorld!”。

复制代码

jsp引入jsp页面_jsp 引入jsp_jsp三层架构

public void doGet(HttpServletRequest request,HttpServletResponse)
   throws IOException,ServletException
{
    response.setContentType("text/html;charset=gb2312");
    PrintWriter out = response.getWriter();
    out.println("<html>");
    out.println("<head><title>Hello World!</title></head>");
    out.println("<body>");
    out.println("<p>Hello World!</p>");
    out.println("</body></html>");
}

复制代码

servlet诞生后,sun公司很快看到servlet编程很繁琐,1)servlet代码有大量冗余代码,out输出就得写上百遍;2)开发servlet必须精通网页后端和美工,你得十分不直观的在Servlet中写前端代码,这促使推动诸多页面效果跟风格比较困难。

所以,sun公司借鉴 微软的asp,正式推出了jsp(servlet1.1)。采用HTML语言直接生成界面,在界面中使用<% %>脚本标识嵌入Java代码

一个简单的jsp例子

复制代码

<html>
   <head><title>测试</title></head>
   <body>
      第一阶段<% String str = “test” ; out.println(str); %>
    </body>
</html>

复制代码

jsp引入jsp页面_jsp三层架构_jsp 引入jsp

jsp出现后,也存在弊端,1)前端开发人员必须看大量他看不懂的后端代码;2)同样,servlet开发人员也在复杂的前端代码中找到其可写servlet代码的地方

所以,MVC思想的JSP+JavaBean+Servlet诞生了

JSP(V):JSP完成输入跟输出,主要使用HTML标签和JSP标签

Servlet(C):主要完成控制,接收请求,调用业务处理(JavaBean),根据调用的结果找到一个JSP页面对用户进行响应

JavaBean(M):完成所有的处理过程

倡导了MVC思想的jsp+javabean+servlet出现,也存在问题:1)jsp页面中嵌入了这些java代码,使得结构更乱;2)对于大型项目,servlet过多,转向频繁,流程,配置等不易集中管理,因而出现了struts

2001年6月,struts1.0出现,struts针对jsp推出了一套struts标签,从而使得jsp中没有了Java代码,结构清晰,功能强大。针对servlet,它提供了Action类来替代了servlet,这个Action类带有servlet的用途,并且无法进行一些请求过滤和手动转码的功能。

原本早已开出来最完美了jsp三层架构,但是既有一个问题,就是我们在Action调用DAO、Java bean等对象的之后都必须在自身代码中建立他们的对象来使用,这样降低了程序的耦合性,这与我们:“高内聚、松耦合”的观念不符合,那么如何解决这个难题呢?因而发生了Spring框架。

Spring框架有两大功能:IOC(控制反转)和AOP(面向切面的编程),其中IOC就是说:当一个类中想要调用另外一个类的对象时,不需要再借助new 关键字来建立,而是由Spring框架来负责:创建、分配和管控,从而减少了程序中的耦合性。而AOP可以拿来做一些日志的打印和输出,用于提醒程序执行过程中的一些详细信息等。

最后struts和Spring的整合,由于每一个bean都要在Spring中注册,每一个URL都要在struts配置文件中配置。当bean很多跟URL对应的请求这些的之后,配置文件无疑会是最庞大的,这个都会促使配置出来很麻烦的费劲。那么还有没有更好的方法促使能够结合Spring的功能跟struts的功能,但是既可以让配置文件不会批量的降低?因而SpringMVC出现了

SpringMVC通过“基于注解”的方法取代了struts,并且借助Controller类来取代和推动了Action的功能。由于是基于注解的,所以这些的配置信息放在了Controller类中配置,从而减少了.xml文件的配置复杂度。


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-144608-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...