一、JSP
1、JSP来源:SUN首先发展出SERVLET,其功能比较强劲,体系设计也很先进,只是,它输出HTML语句还是采用了老的CGI方式,是一句一句输出,所以,编写和修改HTML非常不方便。 后来SUN推出了类似于ASP的镶嵌型的JSP,把JSP TAG镶嵌到HTML语句中,这样,就大大简化和方便了网页的设计和修改。
2、JSP全名为Java Server Pages,其根本是一个简化的Servlet设计,他实现了Html语法中的Java扩张(以 <%, %>形式)。JSP与Servlet一样,是在服务器端执行的。通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户端。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。
4、jsp 要先翻译,注意是翻译成servlet才能执行:
比如 test.jsp 要变成 test_jsp.java 然后编译成 test_jsp.class
而 test_jsp.java 本身就是一个servlet.
所以 jsp只是servlet的一个变种,方便书写html内容才出现的。
servlet是根本,所有jsp能做的,servlet全能做。
servlet的运行机制和Applet类似,只不过它运行在服务器端。一个servlet是javax.servlet包中HttpServlet类的子类,由支持servlet的服务器完成该子类的对象,即servlet的初始化。
扩展阅读0:jsp转化为servlet的过程:
http://www.w3cschool.cc/jsp/jsp-architecture.html
扩展阅读1:servlet版的Helloworld(需要装tomcat,我通常使用XAMPP集成的tomcat)
http://blog.163.com/adoom_2010/blog/static/1820326362011710102719527/
扩展阅读2:servlet程序中的各部分的作用、调用顺序
http://wenku.baidu.com/link?url=U2B6Gx_C1X702ppIFJdXR23MyY85lZzJeneIDZSFCuA3bZ-ynwDFx9oYm4pNcpa4ZjmlUPnkrtwkHg0skxdo3mqOY-IAvXzzYqaCOc7DVmW
二、JS
1、JS是java Script 的缩写,是一种基于对象的客户端脚本语言。主要目的是为了解决服务器端语言,比如Perl,遗留的速度问题,为客户提供更流畅的浏览效果。JS可以直接嵌入到html代码中进行解析执行,非常简单易学,可以产生很多动态的效果。
扩展阅读:http://www.w3school.com.cn/js/
2、简单地说——JS是在客户端执行的,需要浏览器支持JavaScript。JSP是在服务器端执行的,需要服务器上部署支持Servlet的服务器程序。JS代码是能够直接从服务器上download得到,对外是可见的,jsp(和翻译后的servlet)代码是对外不可见的。
三、比较
1、形象比较:JS是在客户端执行的,需要浏览器支持JavaScript。JSP是在服务器端执行的,
需要服务器上部署支持Servlet的服务器程序。JS代码能够直接从服务器
上download得到,对外是可见的,jsp(和翻译后的Servlet代码)是对外不可见的。2、JS和JSP相比较:虽然JS可以再客户端动态生成HTML,但是很难与服务器交互,因此不能提供复杂
的服务。
如:访问数据库和图像处理等等。
JSP在HTML中用<% %>里面实现。JS在HTML中用<Scrippt></Script>实现。3、执行过程:
JSP:
1、JSP文件在用户第一次请求时,会被编译成Servlet,然后由这个Servlet处理
用户的请求,所以Servlet可以看成是运行时的Servlet。
2、JSP容器也就是Servlet容器管理JSP页面生命周期分为两个阶段,即转换阶段和执行阶段。
3、转换阶段:当有一个对JSP页面的请求到来时,JSP容器检查JSP页面的语法是否正确,将JSP页面
转换为Servlet源文件,然后调用javac命令编译Servlet源文件生成字节码文件。
4、执行阶段:Servlet容器加载转换后的Servlet类。
JS:
JavaScript 通常是运行在前台,即运行于用户浏览器的,通常不需要服务器的后台支持(AJAX交
互例外),混合在HTML中的JavaScript脚本程序直接被浏览器解释执行,以提高页面的美观性和
UI操作响应速度为基本目标。(运行位置的不同)4、运行位置不同:
JSP运行在后台服务器上,混合在HTML中的java程序段用于控制HTML的动态生成,并且通常负责调用后台数据库中的数据,形成能够根据使用情况的变化的,具有丰富数据交互效果的页面。
参考资源:http://blog.csdn.net/a2806005024/article/details/28265503
http://www.cnblogs.com/ForeverLover/archive/2015/03/08/4321372.html