Servlet、JSP学习总结
2015-09-27 14:34
387 查看
Servlet和JSP属于J2EE的13个规范。之前仅仅停留在理论上,如今在项目里实践了一下,加深了理解。
我对Servlet和JSP的理解:
Servlet运行在服务器上,用来处理HTTP请求,是前端和后端的一个桥梁。这让我想到了之前在.NET里接触的MVC,这个Servlet不就是Controller吗,Controller接收的请求,然后调用后端的方法。
Servlet可以拼接HTML,然后显示在网页上;而Controller也可以拼接出HTML在前天输出。但是,毕竟拼接HTML的方法对于页面的开发和调整很麻烦。
所以,在MVC里面有View,这就给页面的***带来极大的方便。当然,语言是想通的嘛,Java也有相应的措施,就是JSP。通过观察JSP编译后的类,可以发现,JSP其实就是一个Servlet,只是JSP有一套新的规则,可以直接写Java代码,也可以直接写HTML、JS和CSS代码,让我们可以很方便的开发页面。
Servlet和JSP的区别:
额,我们不禁会问,有JSP不就搞定了,还要Servlet干嘛?
原来这是历史问题,首先sun提出的是Servlet体系,这个体系使得使用J***A的程序员也能开发基于B/S架构的WEB应用程序。
随着大量的B/S架构程序开发出来以后,人们发现Servlet类的编写是非常繁琐的,主要集中在几个问题上:首先有大量冗余代码,这些代码在每个servlet类中都是一模一样或者基本近似的,其次是开发Servlet的程序员很少有精通美工的,导致使用Servlet开发无法方便的做到各种页面效果和丰富多彩的风格。
这个时候sun借鉴了微软的ASP方式,正式提出JSP(也就是Servlet1.1),JSP推出后,J***A程序员也能象ASP的程序员那样将服务端代码添加在已经由美工设计好的静态页面上,经过一个JSP容器对JSP文件进行自动解析并转换成Servlet类来交给WEB服务器运行。这么一来,极大的提高了工作效率。
人的进步是无止境的,随着JSP的广泛应用和各种设计模式的盛行,人们发现JSP也暴露了大量的问题:首先,夹杂服务端代码的JSP文件给后期维护和页面风格再设计带来大量阻碍,美工在修改页面的时候不得不面对大量看不懂的服务端代码,程序员在修改逻辑的时候经常会被复杂的客户端代码搞昏。
交叉的工作流使得JSP面临大量的困境。这直接导致了servlet1.2的出台,sun在这一版中充分倡导了MVC的概念,大量页面标签的使用使得交叉工作流变的稍微的容易了,服务端标签的兼容性使得美工也可以直接随意移动这些标签而得到对应的效果。
但是又暴露了一些问题:设计的差的标签使得程序的错误得不到检测,不成熟的代码导致无法真正的使服务端标签可以和客户端标签那样随意移动而不会导致逻辑错误。这些都有待我们去解决。
总结:
虽然Servlet、JSP表面和MVC相似,但是有很多细节需要我们去学习的。比如Service()方法,内置对象的使用,get、post请求,转发和重定向、cookie和session、单实例多线程……相信随着学习的继续,对这些的理解会越来越深入。
我对Servlet和JSP的理解:
Servlet运行在服务器上,用来处理HTTP请求,是前端和后端的一个桥梁。这让我想到了之前在.NET里接触的MVC,这个Servlet不就是Controller吗,Controller接收的请求,然后调用后端的方法。
Servlet可以拼接HTML,然后显示在网页上;而Controller也可以拼接出HTML在前天输出。但是,毕竟拼接HTML的方法对于页面的开发和调整很麻烦。
所以,在MVC里面有View,这就给页面的***带来极大的方便。当然,语言是想通的嘛,Java也有相应的措施,就是JSP。通过观察JSP编译后的类,可以发现,JSP其实就是一个Servlet,只是JSP有一套新的规则,可以直接写Java代码,也可以直接写HTML、JS和CSS代码,让我们可以很方便的开发页面。
Servlet和JSP的区别:
额,我们不禁会问,有JSP不就搞定了,还要Servlet干嘛?
原来这是历史问题,首先sun提出的是Servlet体系,这个体系使得使用J***A的程序员也能开发基于B/S架构的WEB应用程序。
随着大量的B/S架构程序开发出来以后,人们发现Servlet类的编写是非常繁琐的,主要集中在几个问题上:首先有大量冗余代码,这些代码在每个servlet类中都是一模一样或者基本近似的,其次是开发Servlet的程序员很少有精通美工的,导致使用Servlet开发无法方便的做到各种页面效果和丰富多彩的风格。
这个时候sun借鉴了微软的ASP方式,正式提出JSP(也就是Servlet1.1),JSP推出后,J***A程序员也能象ASP的程序员那样将服务端代码添加在已经由美工设计好的静态页面上,经过一个JSP容器对JSP文件进行自动解析并转换成Servlet类来交给WEB服务器运行。这么一来,极大的提高了工作效率。
人的进步是无止境的,随着JSP的广泛应用和各种设计模式的盛行,人们发现JSP也暴露了大量的问题:首先,夹杂服务端代码的JSP文件给后期维护和页面风格再设计带来大量阻碍,美工在修改页面的时候不得不面对大量看不懂的服务端代码,程序员在修改逻辑的时候经常会被复杂的客户端代码搞昏。
交叉的工作流使得JSP面临大量的困境。这直接导致了servlet1.2的出台,sun在这一版中充分倡导了MVC的概念,大量页面标签的使用使得交叉工作流变的稍微的容易了,服务端标签的兼容性使得美工也可以直接随意移动这些标签而得到对应的效果。
但是又暴露了一些问题:设计的差的标签使得程序的错误得不到检测,不成熟的代码导致无法真正的使服务端标签可以和客户端标签那样随意移动而不会导致逻辑错误。这些都有待我们去解决。
总结:
虽然Servlet、JSP表面和MVC相似,但是有很多细节需要我们去学习的。比如Service()方法,内置对象的使用,get、post请求,转发和重定向、cookie和session、单实例多线程……相信随着学习的继续,对这些的理解会越来越深入。
相关文章推荐
- javascript dom读取xml
- JSON数据转换
- JavaScript高级程序设计之面向对象的程序设计之创建对象之 构造函数模式第6.2.2讲笔记
- JavaScript高级程序设计之面向对象的程序设计之创建对象之工厂模式第6.2.1讲笔记
- javascript中的array对象属性及方法
- javascript中的算数运算
- 标 题: JavaScript真的要一统江湖了
- json学习初体验--第三者jar包实现bean、List、map创json格式
- javascript中的数据类型---数字
- JavaScript高级程序设计之面向对象的程序设计之理解对象第6.1讲笔记
- JavaScript高级程序设计之引用类型之单体内置对象之Math对象第5.7.2讲笔记
- JS实现横向与竖向两个选项卡Tab联动的方法
- JSONKit解析
- JavaScript高级程序设计之引用类型之单体内置对象之Global对象第5.7.1讲笔记
- JavaScript 闭包
- JS实现带鼠标效果的头像及文章列表代码
- 通过超链接传值到jsp页面,用el表达式获取时中文乱码
- 关于voller框架的json image netimage
- html 自动生成数字------document.write(c) js写在 html里面
- javascript 比量str今天的日期是,参数diff