【servlet】servlet和JSP的区别以及如何选择
显示用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更靠谱么?