jsp、servlet一家亲
来源:互联网 发布:阿里域名要备案吗 编辑:程序博客网 时间:2024/04/28 15:39
上个月写了《教你servlet入门》,今天来探究一下关于jsp的那些故事。
§ 回顾
1. 什么是Web应用程序?
2. 什么是Servlet,和一般Java程序有什么区别?
3. 什么是JSP,和Java是什么关系?
4. JSP和Servlet有哪些异同点?
5. JSP和Servlet的主要用途?
JSP:Java server Pages,是由sun 公司倡导、许多公司参与一起建立的一种动态网页技术标准。它在HTML代码中插入JSP标记及Java程序(Scriptlet)构成JSP界面,扩展名为.JSP。当客户端请求JSP文件时,web服务器会执行该JSP文件,然后以HTML的格式返回给客户。而JSP是构建在servlet智商的高层次的动态网页标准。所以从概念上来讲,相对servlet而言,JSP没有什么新东西,可以说概念是完全一样的,只是在实现方式上稍有不同而已。因此,JSP就是servlet的一种变式。
§ JSP的运行方式
.JSP文件会在第一次被调用时进行编译,比如test.jsp文件会在第一次调用时被编译为test_jsp.java文件,之后和servlet文件的编译流程一样,被编译为.class文件。从这以后,如果再有客户需要请求该JSP页面,JSP页面不需要重新编译而是直接执行第一次已经编译好的.class文件。下面我们通过一张时序图来进一步了解JSP文件的调用和编译过程:
§ JSP的优点
1.一次编译,多次、多处运行
JSP的脚本语言是Java语言,它具有Java语言的一切特性,像上图中显示的过程那样,在JSP文件被编译之后,有客户再次请求该页面时,JSP不需要被重新编译,而是直接执行早已经编译好的.class文件,因此执行效率会特别高。
2.组件可重用性,平台无关性
具有可重用性和跨平台性的javaBeans和Ejb组件,为JSP程序的开发提供方便,我们可以将复杂的处理程序放到这些组件中,这样我们通过多次使用这些组件,极大地减少了在JSP页面中重写重复的代码,提高了效率,增强了代码的重用性。
3.降低耦合度,增加源程序代码的安全性
使用JSP技术,web页面开发人员可以使用HTML和xml标识来设计和格式化最终页面,使用JSP脚本或者标识来生成页面上的动态内容,生成动态内容的语句一般被封装在JavaBean、ejb或者JSP脚本段中,这样页面的设计人员和页面的编程人员的工作可以同步进行。并且我们在客户端通过查看源文件,看不到JSP标识的语句,也看不到在组件中封装好的代码,这样就达到了类似三层的解耦作用,有效保护了源代码。
§ JSP和servlet的结合使用
由于我们使用servlet处理大量的HTML文本(如拼接表格的HTML语句)时,不仅仅任务量较大,而且不利于后期的维护和扩展,所以我们处理前端界面效果时采用的JSP技术,而对于程序的逻辑控制则使用servlet技术。
§ JSP和servlet的区别
JSP技术是servlet技术的发展,所以本质上就是servlet的简易方式。而两者最大的不同点在于servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离出来。而JSP的情况是将Java和HTML组合成一个扩展名为.JSP的文件。所以在实际应用中,我们采用JSP来生成动态的网页页面,采用servlet来控制业务流程也就是所谓的业务逻辑。所以JSP侧重于视图,而servlet注重对逻辑的控制。
因此,在web建设中到底使用哪种技术周密详细的事前规划,而网站建设又不光是技术的问题,所以我们在学习和对比JSP和servlet的同事更应该注意从中汲取思想的精华,因为技术会过时,而思想却受用一生。
- jsp、servlet一家亲
- jsp&servlet
- Jsp&servlet
- jsp/servlet
- JSP Servlet
- servlet&JSP
- jsp/Servlet
- jsp-servlet
- servlet & jsp
- jsp---->servlet
- servlet/jsp
- jsp+servlet
- jsp/servlet
- Servlet+JSP
- jsp/servlet
- Jsp&Servlet
- jsp/Servlet
- Servlet+JSP
- 《解忧杂货店》
- [LeetCode] Edit Distance
- 低功耗蓝牙4.0BLE编程-nrf51822开发(10)-描述符
- 分布式算法 2 领导者选择算法
- Spring中常用的hql查询方法(getHibernateTemplate())
- jsp、servlet一家亲
- Java中如何使用Redis做缓存
- 60秒轻松计算出任意一年任意一天星期几?
- 手势控制四轮智能车移动
- Java习惯用法总结
- Java继承与多态总结
- UTF-8编码的字符串拆分成单字、获取UTF-8字符串的字符个数的代码及原理
- CheckBox的妙用
- C#第四周-代码计算