简单的说,SUN首先发展出SERVLET,其功能比较强劲,体系设计也很先进,只是,它输出HTML语句还是采用了老的CGI方式,是一句一句输出,所以,编写和修改HTML非常不方便。
后来SUN推出了类似于ASP的镶嵌型的
JSP,把JSP TAG镶嵌到HTML语句中,这样,就大大简化和方便了网页的设计和修改。新型的网络语言如ASP,PHP,JSP都是镶嵌型的SCRIPT语言。
JSP在本质上就是SERVLET,但是两者的创建方式不一样.
Servlet完全是JAVA程序代码构成,擅长于流程控制和事务处理,通过Servlet来生成动态网页很不直观.
JSP由
HTML代码和JSP标签构成,可以方便地编写动态网页.
因此在
实际应用中采用Servlet来控制业务流程,而采用JSP来生成动态网页.
在
struts框架中,JSP位于MVC
设计模式的视图层,而Servlet位于控制层.
JSP是Servlet技术的扩展,本质上就是Servlet的简易方式。
JSP编译后是“类servlet”。
Servlet和JSP最主要的不同点在于,Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离开来。而JSP是Java和HTML组合成一个扩展名为.jsp的文件。
JSP侧重于视图,Servlet主要用于控制逻辑。
jsp是html包含java
servlet是java包含html
jsp请求到tomcat---tomcat封装了jsp到servlet实现。
所以jsp请求时候,会自动创建session
而不用在servlet中request.getSession(true)
servlet是服务器端的程序,动态生成html页面发到客户端,但是这样程序里有许多out.println(),java和html语言混在一起很乱。所以后来推出了jsp。其实jsp就是servlet,每一个jsp在第一次运行时被转换成servlet文件,再编译成.
class来运行。
有了jsp,因此在MVC模式中servlet不再负责生成html页面,转而担任控制程序逻辑的作用,控制jsp和javabean之间的流转。
-----------
Servlet 与Jsp 的区别
* Servlet 中没有内置对象,原来Jsp 中的内置对象都是必须通过HttpServletRequest 对象,或由HttpServletResponse 对象生成。
* 对于静态的HTML标签,Servlet 都必须使用页面输出流诼行输出。
总之,Jsp 是Servlet 的一种简化,使用Jsp只需要完成
程序员需要输出到客户端的内容,至于Jsp 中的
Java
脚本如何镶嵌到一个类中,由Jsp 容器完成。而Servlet 则是个完整的Java 类,这个类的
Service 方法用于生成对客户端的响应。
部分转自:http://blog.163.com/xiaopengyan_109/blog/static/149832173201081774411236/