显示用jsp,业务逻辑用servlet

Servlet写业务逻辑比较容易,显示页面起来很麻烦,JSP相反

JSP第一次执行会编译成Servlet 以后每次页面有改动的时候重新编译



sp就是特殊的servlet,之所以要jsp,是因为:

1、jsp可以和html代码直接糅合在一起,方便界面编程。而servlet只能用writer之类的输出html代码,做界面那叫一个痛苦!

2、jsp内置了许多servlet经常涉及的变量,如session、out等,拿来就用,方便。

一般来说以展示为主含有少许逻辑代码的响应用jsp输出渲染,而仅仅是逻辑处理或数据输出的响应就用servlet,servlet更适合于处理具有共性逻辑和复杂业务的响应。


所谓响应,就是一个收到一个web请求时request的返回内容response。


打个不一定最恰当的比喻,用纯文本编辑(servlet)写代码很累,但最灵活,用eclipse(jsp)编码很方便,但隐藏了很多细节,碰到底层问题就傻了。




servlet和jsp的联系:本质上都是servlet

ervlet是运行在服务器端的Java程序   

   jsp是嵌入html中的Java代码,其本质就是servlet,因为jsp运行时是要转化到servlet的service()方法里执行的   

   jsp一般用于前台页面的处理,servlet一般是后台操作。

   有时候在jsp中可以加<% %>里面写servlet语句,而在servlet中也可以通过out.println()中就入jsp。

servlet和jsp的区别:

a).servlet的优势:处理业务逻辑(只要与数据库进行交互)方便简单

servlet的劣势:显示内容给用户繁琐(显示)

b).jsp的优势:显示内容给用户简单方便

jsp的劣势:处理业务逻辑(只要与数据库进行交互)繁琐

所以综上可以说明servlet和jsp虽然说实现的功能一样,但是他们的优缺点是互补的,所以一般情况下做都是利用jsp和servlet一起使用,达到了一个相辅相成的状态。比如:完成注册功能,首先显示注册页面给浏览器,用jsp实现(reg.jsp),填写完注册信息提交,用servlet来实现(RegServlet),注册失败又该显示错误信息和注册页面,用jsp来实现(reg.jsp)。

注册成功  该显示成功信息和登录页面  用jsp来实现(login.jsp)



                   支持的语言种类     热更新               通过注解配置参数   

jsp                       多                 容器一般支持     不可

servlet                少                 一般不支持         可以


从本质上来说,jsp其实还是个servlet,你可以到tomcat的work\Catalina\localhost这个路径下去找到jsp编译之后的.java文件,从MVC的角度上来说,servlet实现了viwe与controller的分离


按照MVC ,JSP只要视图层 只做展示


大型网站一般用 jsp+servlet+javaebean(mvc),

小型一般 jsp+javabean



最后:这货比Spring mvc更靠谱么?