JSP(Java Server Pages):JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端所要求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户真个阅读器。
Java Servlet:Servlet是1种小型的Java程序,它扩大了Web服务器的功能。作为1种服务器真个利用,当被要求时开始履行,这和CGIPerl脚本很相似。Servlet提供的功能大多与JSP类似,不过实现的方式不同。JSP通常是大多数HTML代码中嵌入少许的Java代码,而servlets全部由Java写成并且生成HTML。
通俗的说,SERVLET是往JAVA代码中嵌HTML元素,JSP是往HTML里嵌JAVA代码。
JAVA经典分层结构中,JSP、Servlet、JavaBean3者担负了利用服务器真个表示层,与客户层和业务逻辑层进行交互。
SERVLET是SUN初期推出的,其功能比较强劲,体系设计也很先进,只是,它输出HTML语句还是采取了老的CGI方式,是1句1句输出,所以,编写和修改HTML非常不方便。
后来SUN推出了类似于ASP的镶嵌型的JSP,把JSPTAG镶嵌到HTML语句中,这样,就大大简化和方便了网页的设计和修改。
由于2者的各自的特性,决定了其在MVC中对应的位置:JSP比较合适承当View的角色,而Controller这个角色就非Servlet莫属了。
JavaBean则担负了Model层的角色,与数据打交道。
1、servlet--生命周期
Servlet生命周期:init:初始化-->service:响应客户要求-->destroy:烧毁
1)init():在Servlet的生命周期中,仅履行1次init()方法。它是在服务器装入Servlet时履行的,负责初始化Servlet对象。可以配置服务器,以在启动服务器或客户机首次访问Servlet时装入Servlet。不管有多少客户机访问Servlet,都不会重复履行init()。
2)service():它是Servlet的核心,负责响应客户的要求。每当1个客户要求1个HttpServlet对象,该对象的Service()方法就要调用,而且传递给这个方法1个“要求”(ServletRequest)对象和1个“响应”(ServletResponse)对象作为参数。在HttpServlet中已存在Service()方法。默许的服务功能是调用与HTTP要求的方法相应的do功能。
3)destroy():仅履行1次,在服务器端停止且卸载Servlet时履行该方法。当Servlet对象退诞生命周期时,负责释放占用的资源。1个Servlet在运行service()方法时可能会产生其他的线程,因此需要确认在调用destroy()方法时,这些线程已终止或完成。
2、JSP--主要内置对象
1)request对象:对客户的要求做出动态的响应,向客户端发送数据。
2)session对象:它在第1个JSP页面被装载时自动创建,完成会话期管理。
3)application对象:服务器启动后就产生了这个application对象,当客户在所访问的网站的各个页面之间阅读时,这个application对象都是同1个,直到服务器关闭。但是与session不同的是,所有客户的application对象都是同1个,即所有客户同享这个内置的application对象。
4)pageContext对象:javax.servlet.jsp.PageContext 的实例,该对象代表该JSP页面上下文,使用该对象可以访问页面中的同享数据。经常使用的方法有getServletContext()和getServletConfig()等。
5)、out对象:1个输出流,用来向客户端输出数据。out对象用于各种数据的输出。
JSP在本质上就是SERVLET,但是二者的创建方式不1样.Servlet完全是JAVA程序代码构成善于于流程控制和事务处理而通过Servlet来生成动态网页;JSP由HTML代码和JSP标签构成,可以方便地编写动态网页因此在实际利用中采取Servlet来控制业务流程,而采取JSP来生成动态网页.在struts框架中,JSP位于MVC设计模式的视图层,而Servlet位于控制层.