Servlet(服务器端小程序)是使用Java语言编写的服务器端程序,可以像JSP一样,生成动态WEB页,Servlet主要运行在服务器端,并由服务器执行调用,是一种按照Servlet标准开发的类。
1.servlet是控制层,jsp转换为servlet,用servlet来实现http请求。
2.你可以把applet与servlet对比一下来理解。前者是在客户端浏览器运行的代码片段,而后者是在server端运行的,server一般是一个应用服务器,大的如IBM的WebSphere,小的有Tomcat。根据用户提交的请求,servlet程序在应用服务器端运行后将结果或相关信息返回给客户端浏览器。因为servlet是在服务器端运行的,所以它具有强大的事务处理能力。
3.一方面,虽然说它的大部分功能jsp都可以实现,但为了避免jsp中的scriptlet(可以理解为jsp中的servlet)代码片段与负责表示处理结果的代码片段(这些代码混杂了html标签)搅和在一起,建议不要把过多的servlet代码写在jsp页面中,而只把少量与结果显示密切相关的代码写在页面中。
二、Servlet和JSP之间的联系和区别
【1】JSP第一次运行的时候会编译成Servlet,驻留在内存中以供调用。
【2】JSP是web开发技术,Servlet是服务器端运用的小程序,我们访问一个JSP页面时,服务器会将这个JSP页面转变成Servlet小程序运行得到结果后,反馈给用户端的浏览器。
【3】Servlet相当于一个控制层再去调用相应的JavaBean处理数据,最后把结果返回给JSP。
【4】Servlet主要用于转向,将请求转向到相应的JSP页面。
【5】JSP更多的是进行页面显示,Servlet更多的是处理业务,即JSP是页面,Servlet是实现JSP的方法。
【6】Servlet可以实现JSP的所有功能,但由于美工使用Servlet做界面非常困难,后来开发了JSP。
【7】JSP技术开发网站的两种模式:JSP + JavaBean;JSP + Servlet + JavaBean(一般在多层应用中, JSP主要用作表现层,而Servlet则用作控制层,因为在JSP中放太多的代码不利于维护,而把这留给Servlet来实现,而大量的重复代码写在JavaBean中)。
【8】二者之间的差别就是,开发界面是JSP直接可以编写。
比如在JSP中写Table标记:<table>[数据]</table>;
Servlet需要加入:out.println(“<table>[数据]</table>”)。
JSP文件在被应用服务器(例如:Tomcat、Resin、Weblogic和Websphere),调用过之后,就被编译成为了Servlet文件。也就是说在网页上显示的其实是Servlet文件。Tomcat下面JSP文件编译之后生成的Servlet文件被放在了work文件夹下,JSP中的HTML代码在Servlet都被out出来,而JSP代码按照标签的不同会放在不同的位置。
【9】JSP中嵌入JAVA代码,而Servlet中嵌入HTML代码。
【10】在一个标准的MVC架构中,Servlet作为Controller接受用户请求并转发给相应的Action处理,JSP作为View主要用来产生动态页面,EJB作为Model实现你的业务代码。