java Web:1、jsp与servlet的区别?
jsp与servlet的区别?
1、什么是Servlet?
Servlet的定义? 首先,Servlet是用来生成动态页面的。
Servlet是用java语言编写的服务器端程序,它运行于Web服务器中的Servlet容器中。主要功能是:提供请求/相应的web服务模式,可以生成动态的web内容(这是html所不具备的)。
Servlet是怎么执行的呢?(运行机制) Servlet是在容器的控制下执行的,最常用的容器是Tomcat。当Web服务器获取到一个对Servlet的请求时,服务器会把请求交给对应的容器来处理,容器通过调用Servlet的方法(doGet或者doPost)来响应客户端的请求。
具体而言,有以下几个步骤: (1)用户通过单击一个链接向Servlet发送请求。 (2)Web服务器收到请求后,会把请求交给相应的容器来处理,容器发现是对Servlet的请求后,容器会创建两个对象HttpServletResponse和HttpSercletRequest。 (3)容器根据请求消息中的URL找到对应的Servlet,然后针对请求创建一个新的线程,同时把刚才(2)中创建的两个对象以参数的形式传递到新的线程中去。 (4)容器调用Servlet的service方法来完成对请求的响应,service方法会调用doPost或者doGet方法来完成响应任务,同时把生成的页面返回给容器。 (5)容器把响应消息组装成HTTP格式返回给客户端。线程运行结束,销毁刚才在步骤(2)中创建的两个对象。
Servlet和jsp的区别? CGI也是一种生成动态页面的技术,但是是采用Perl脚本编写的程序。它会对每个请求都产生新的进程,服务完成后就销毁,效率较低。而Servlet是存在于进程中,通过多线程的方式运行其service方法,一个实例可以服务多个请求,且实例一般不会被销毁。
2、什么是JSP?
JSP(Java Server Pages),即java服务器页面,就是嵌入了Java代码的html文件(jsp最好少写java代码)。 JSP之前,所有的html响应以及业务逻辑都是在Servlet中实现的,但是这种方式存在很大的缺陷:需要把给客户响应的视图组装成很长的html格式的字符串写入println方法中,容易出错,且代码可读性差。同时,业务逻辑与视图没有分离,系统的可扩展性、可维护性差。 JSP的引入一定程度上解决了Servlet存在的缺点,让每一个Servlet只负责对业务逻辑的处理,JSP来负责页面的显示,实现了业务与页面的分离,提高了系统的可扩展性。
3、jsp与Servlet的区别?
(1)相同点 JSP实际上是一个特殊的Servlet,是对Servlet的扩展,都是用来生成动态页面的。JSP最终也是要转化成Servlet来运行,因此处理请求实际上是编译后的Servlet。
(2)区别 (1)Servlet是在java中嵌入html,适合做业务控制;JSP是在HTML中嵌入java代码,适合做页面显示。比如说,Struts框架中,Servlet位于MVC模式的控制层,JSP位于视图层;
(2)Servlet中没有内置对象。JSP中有内置对象,并且必须通过HttpServletRequest对象、HttpServletRequest对象以及HttpServlet对象得到。
