请描述Servlet和JSP的区别与联系
考点:考察求职者对JSP机制的认识。
出现频率:★★★★
【面试题解析】
这里简单介绍Servlet和JSP的区别。Sun首先发展出Servlet,Servlet功能比较强劲,体系设计也很先进,只是Servlet输出HTML语句还是采用了CGI方式,一句一句输出,编写和修改HTML非常不方便。
Sun随后推出了类似于ASP的JSP技术,把JSP嵌套到HTML语句中,大大简化和方便了网页的设计和修改。图1所示是JSP程序的流程图。
一个网络项目至少分3 层:数据层、业务层和表现层。Servlet用来编写业务层程序是非常强大,但是处理表现层就很方便。
JSP则主要是为了方便处理表现层而设计的。JSP应该存放与表现层有关的内容,也就是说,只放输出HTML网页的部分。所有的数据计算、数据分析、数据库联结的处理,统统是属于业务层的处理范围,应该放在Java Beans中。通过JSP调用Java Beans,可以实现表现层和业务层的整合。这与微软公司的ASP+COM/DCOM技术类似。
图1 JSP程序流程图
纯脚本语言将表现层和业务层混在一起,代码不能重复利用。如果想修改某些业务功能,经常会牵涉到大量的页面代码,而采用组件技术想修改某些业务功能,修改组件就可以了。
综上所述,Servlet适合编写业务层,处理层并不适合。在Java Web程序中使用JSP+Java Beans,由JSP处理表现层,用Java Beans处理业务层。
参考答案:
JSP是Servlet技术的扩展,更强调表现层的处理。Servlet和JSP最主要的不同点在于,服务器端有一个JSP容器,主要处理JSP页面请求,容器首先把JSP转换成一个Servlet,所有的JSP元素都会被转换为Java代码,再编译这个Servlet类。JSP侧重于视图,Servlet主要用于控制逻辑。