jsp与servlet的区别

来源:互联网 发布:淘宝红搜是什么意思 编辑:程序博客网 时间:2024/06/06 14:10

Servlet体系是基于B/S架构开发web应用程序,使用Servlet类将HTTP请求和响应封装在标准JAVA类中来实现各种web应用方案的。

当大量的B/S架构程序开发出来以后出现了很多问题:首先servlet类有大量冗余代码,其次是开发Servlet的没法做到有精美的页面效果。

所以sun提出将服务端代码添加在已经设计好的静态页面上,经过JSP容器对JSP文件进行自动解析并转换成Servlet类来交给web服务器运行。

所以JSP在本质上就是Servlet,但是两者的创建方式不一样。

Servlet都是由JAVA程序代码构成,用于流程控制和事务处理,通过Servlet来生成动态网页很不直观

JSP由HTML代码和JSP标签构成,可以方便地编写动态网页.

另外总结一下,JSP与Servlet主要有两方面的不同:

编译:JSP修改后可以立即看到结果,不需要编译;而Servelt缺需要编译。

转换:JSP是动态网页开发技术,是运行在服务器端的脚本语言,而Servlet是web服务器端编程技术。所以JSP运行时就是转换为Servlet,也就是java程序来执行。

SUN首先发展出SERVLET,其功能比较强劲,体系设计也很先进,只是,它输出HTML语句还是采用了老的CGI方式,是一句一句输出,所以,编写和修改HTML非常不方便。

后来SUN推出了类似于ASP的镶嵌型的JSP,把JSP TAG镶嵌到HTML语句中,这样,就大大简化和方便了网页的设计和修改。

新型的网络语言如ASP,PHP,JSP都是镶嵌型的SCRIPT语言。

从网络三层结构的角度看,一个网络项目最少分三层,即MVC设计模式:模型(model)-视图(view)-控制器(controller)。

Model(模型)是应用程序中用于处理应用程序数据逻辑的部分。
  通常模型对象负责在数据库中存取数据。
View(视图)是应用程序中处理数据显示的部分。
  通常视图是依据模型数据创建的。
Controller(控制器)是应用程序中处理用户交互的部分。
  通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。
MVC 分层有助于管理复杂的应用程序,因为您可以在一个时间内专门关注一个方面。

例如,您可以在不依赖业务逻辑的情况下专注于视图设计。同时也让应用程序的测试更加容易。
MVC 分层同时也简化了分组开发。不同的开发人员可同时开发视图、控制器逻辑和业务逻辑。

如果把数据库的语句放到jsp(视图层)中那是不合适的,而应该放到控制层。所以servlet的优点就显示出来了。



原创粉丝点击