開始找工作面试的第一家公司,爱思创新 面试题:

1、jsp和serverlet的差别

简单来说:

jsp:是包括java程序片的html文件
servlet:是包括html的java文件

事实上说白了JSP和SERVLET究竟什么差别呢,JSP就象宾馆前台的服务员,要长的不错,让顾客一看就认为比較舒服,他主要就是负责显示这个宾馆的形象的.而SERVLET就象部门经理,要处理各种各样的业务和事情,而bean呢就象是高层领导了,他负责从部门经理处获得信息,报告给董事会,或者把董事会的建议和计划吩咐下去.他们分工合作,各干其职.

详细的看下以下吧.
    JSP和SERVLET究竟在应用上有什么差别,非常多人搞不清楚。我来胡扯几句吧。简单的说,SUN首先发展出SERVLET,其功能比較强劲,体系设计也非常先进,仅仅是,它输出HTML语句还是採用了老的CGI方式,是一句一句输出,所以,编写和改动HTML非常不方便。
    后来SUN推出了相似于ASP的镶嵌型的JSP,把JSP TAG镶嵌到HTML语句中,这样,就大大简化和方便了网页的设计和改动。新型的网络语言如ASP,PHP,JSP都是镶嵌型的SCRIPT语言。
    从网络三层结构的角度看,一个网络项目最少分三层:data layer,business layer, presentation layer。当然也能够更复杂。SERVLET用来写business layer是非常强大的,但是对于写presentation layer就非常不方便。JSP则主要是为了方便写presentation layer而设计的。当然也能够写business layer。写惯了ASP,PHP,CGI的朋友,常常会不自觉的把presentation layer和business layer混在一起。就象前面那个朋友,把数据库处理信息放到JSP中,事实上,它应该放在business layer中。
    依据SUN自己的推荐,JSP中应该仅仅存放与presentation layer有关的东东,也就是说,仅仅放输出HTML网页的部份。而全部的数据计算,数据分析,数据库联结处理,统统是属于business layer,应该放在JAVA BEANS中。通过JSP调用JAVA BEANS,实现两层的整合。
    实际上,微软前不久推出的DNA技术,简单说,就是ASP+COM/DCOM技术。与JSP+BEANS全然相似,全部的presentation layer由ASP完毕,全部的business layer由COM/DCOM完毕。通过调用,实现整合。
为什么要採用这些组件技术呢?由于单纯的ASP/JSP语言是非常低效率运行的,假设出现大量用户点击,纯SCRIPT语言非常快就到达了他的功能上限,而组件技术就能大幅度提高功能上限,加快运行速度。
    另外一方面,纯SCRIPT语言将presentation layer和business layer混在一起,造成改动不方便,而且代码不能反复利用。假设想改动一个地方,常常会牵涉到十几页CODE,採用组件技术就仅仅改组件就能够了。
综上所述,SERVLET是一个早期的不完好的产品,写business layer非常好,写presentation layer就非常臭,而且两层混杂。
    所以,推出JSP+BAEN,用JSP写presentation layer,用BAEN写business layer。SUN自己的意思也是将来用JSP替代SERVLET。
    但是,这不是说,学了SERVLET没用,实际上,你还是应该从SERVLET入门,再上JSP,再上JSP+BEAN。
    强调的是:学了JSP,不会用JAVA BEAN并进行整合,等于没学。大家多花点力气在JSP+BEAN上。
在补充几句:
    我们能够看到,当ASP+COM和JSP+BEAN都採用组件技术后,全部的组件都是先进行编译,并驻留内存,然后高速运行。所以,大家常常吹的SERVLET/JSP先编译驻内存后运行的速度优势就没有了。
反之,ASP+COM+IIS+NT紧密整合,应该会有较大的速度优势呈现。而且,ASP+COM+IIS+NT开发效率非常高,尽管BUG非常多。
    那么,为什么还用JSP+BEAN?由于JAVA实在前途远大。微软分拆后,操作系统将群雄并起,应用软件的开发商必然要找一个通用开发语言进行开发,JAVA一统天下的时机就到了。假设微软分拆顺利,从中分出的应用软件公司将成为JAVA的新领导者。眼下的JAVA大头SUN和IBM都死气沉沉,令人失望。希望新公司能注入新活力。只是,新公司非常有可能和旧SUN展开JAVA标准大战,两方各自制定标准,影响JAVA夸平台。
    另外,如今的机器速度越来越快,JAVA的速度劣势非常快就能够被克服。

jsp和serverlet的差别的更多相关文章

  1. JSP与HTML的差别

    HTML(Hypertext Markup Language)文本标记语言,它是静态页面,和JavaScript一样解释性语言,为什么说是解释性 语言呢?由于.仅仅要你有一个浏览器那么它就能够正常显示 ...

  2. JSP/Servlet-----charset 、pageEncoding差别

    一.JSP/Servlet中的几个编码的作用         在JSP/Servlet中有4个地方可设置编码(例如以下).当中前两个仅仅能用于JSP中,后两个可用于JSP和Servlet 中.    ...

  3. java中的system.out.println()和JSP中out.println()差别

    out.println()输出到client.     在out.println()中,out是response的实例.是以response为对象进行流输出的,即将内容输出到client.假设在JSP ...

  4. J2EE 13规范(4)-JSP

    JSP全称(Java Server Page ),也称javaserver页面.看到jsp是否立马想到原先以前学过的asp呢. 一.jsp和asp的比較: JSP(Java Server Page)与 ...

  5. JSP 知识基本

    from:http://blog.csdn.net/caipeichao2/article/details/38589293 more:http://www.2cto.com/kf/web/jsp/4 ...

  6. EL和JSTL专题

    EL简介 EL全名为Expression Language,它原本是JSTL 1.0为方便存取数据所自定义的语言.当时只能在JSTL标签中使用,如下: <c:out value="${ ...

  7. 两种include方式及filter中的dispatcher解析

    两种include方式 我自己写了一个original.jsp,另外有一个includedPage.jsp,我想在original.jsp中把includedPage.jsp引进来有两种方式: 1.& ...

  8. 尚学堂Java面试题整理

    博客分类: 经典分享   1. super()与this()的差别? - 6 -  2. 作用域public,protected,private,以及不写时的差别? - 6 -  3. 编程输出例如以 ...

  9. jstl--->Core 核心标签库->URL操作

    jstl--->Core 核心标签库->URL操作 -->import.param.URL.redirect <c:import>将静态或动态文件包含至本身jsp页面 而 ...

随机推荐

  1. 【Eclipse】修改项目访问名称

    Properties --> Web Project Settings --> Context root --> 输入想要用的名称(默认是项目名)

  2. [Swust OJ 567]--老虎在不在笼子里(凸包问题)

    题目链接:http://acm.swust.edu.cn/problem/567/ Time limit(ms): 1000 Memory limit(kb): 65535   一只老虎自从看了< ...

  3. Android:OptionMenu

    MainActivity: package com.example.optionmenu; import android.content.Intent; import android.os.Bundl ...

  4. [转]Centos6.5安装配置keepalived

    参考博文: Centos6.5安装配置keepalived CentOS6.5 keepalived详解及实现Nginx服务的高可用性 CentOS6.5 LVS + KeepAlived搭建步骤 我 ...

  5. CRC校验

    小试一下CRC校验的verilog实现,采用最stupid的直接法. /* date : 2014/06/06 designer : pengxiaoen virsion : Altera-Model ...

  6. js中innerHTML与innerText的用法与区别

    用法: <div id="test">    <span style="color:red">test1</span> te ...

  7. VC++共享数据段实现进程之间共享数据

    当我写了一个程序,我希望当这个程序同时运行两遍的时候,两个进程之间能共享一些全局变量,怎么办呢?很简单,使用VC\VC++的共享数据段.; #pragma data_seg()//恢复到正常段继续编程 ...

  8. Ajax 实现无刷新分页

    Ajax 实现无刷新分页

  9. 上海投行需要一大群JAVA,C++,C#,UNIX.走过路过不要错过!过完年想换工作看过来初级资深都有 - V2EX

    上海投行需要一大群JAVA,C++,C#,UNIX.走过路过不要错过!过完年想换工作看过来初级资深都有 - V2EX 上海投行需要一大群JAVA,C++,C#,UNIX.走过路过不要错过!过完年想换工 ...

  10. A_全然背包

    /* copyright: Grant Yuan algorithm: 全然背包 time : 2014.7.18 __________________________________________ ...