【J2EE浅析】——表示层:Servlet & JSP



   一、简介

   JSP(Java Server Pages):JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端所请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。

 

   Java Servlet:Servlet是一种小型的Java程序,它扩展了Web服务器的功能。作为一种服务器端的应用,当被请求时开始执行,这和CGIPerl脚本很相似。Servlet提供的功能大多与JSP类似,不过实现的方式不同。JSP通常是大多数HTML代码中嵌入少量的Java代码,而servlets全部由Java写成并且生成HTML


   通俗的说,SERVLET是往JAVA代码中嵌HTML元素,JSP是往HTML里嵌JAVA代码

 

   JAVA经典分层结构中,JSPServletJavaBean三者担任了应用服务器端的表示层,与客户层和业务逻辑层进行交互。

 

 

    二、与MVC的关系

SERVLETSUN早期推出的,其功能比较强劲,体系设计也很先进,只是,它输出HTML语句还是采用了老的CGI方式,是一句一句输出,所以,编写和修改HTML非常不方便。

 

后来SUN推出了类似于ASP的镶嵌型的JSP,把JSPTAG镶嵌到HTML语句中,这样,就大大简化和方便了网页的设计和修改。

 

由于二者的各自的特性,决定了其在MVC中对应的位置:JSP比较适合承担View的角色,而Controller这个角色就非Servlet莫属了。


     技术分享


JavaBean则担任了Model层的角色,与数据打交道。




三、核心内容


1servlet--生命周期


Servlet生命周期:init:初始化-->service:响应客户请求-->destroy:销毁


技术分享



1init():在Servlet的生命周期中,仅执行一次init()方法。它是在服务器装入Servlet时执行的,负责初始化Servlet对象。可以配置服务器,以在启动服务器或客户机首次访问Servlet时装入Servlet。无论有多少客户机访问Servlet,都不会重复执行init()。


2service():它是Servlet的核心,负责响应客户的请求。每当一个客户请求一个HttpServlet对象,该对象的Service()方法就要调用,而且传递给这个方法一个“请求”(ServletRequest)对象和一个“响应”(ServletResponse)对象作为参数。在HttpServlet中已存在Service()方法。默认的服务功能是调用与HTTP请求的方法相应的do功能。


3destroy():仅执行一次,在服务器端停止且卸载Servlet时执行该方法。当Servlet对象退出生命周期时,负责释放占用的资源。一个Servlet在运行service()方法时可能会产生其他的线程,因此需要确认在调用destroy()方法时,这些线程已经终止或完成。


 

2JSP--主要内置对象


1request对象:对客户的请求做出动态的响应,向客户端发送数据。


2session对象:它在第一个JSP页面被装载时自动创建,完成会话期管理。


3application对象:服务器启动后就产生了这个application对象,当客户在所访问的网站的各个页面之间浏览时,这个application对象都是同一个,直到服务器关闭。但是与session不同的是,所有客户的application对象都是同一个,即所有客户共享这个内置的application对象。


4pageContext对象:javax.servlet.jsp.PageContext 的实例,该对象代表该JSP页面上下文,使用该对象可以访问页面中的共享数据。常用的方法有getServletContext()和getServletConfig()等。


5)out对象:一个输出流,用来向客户端输出数据。out对象用于各种数据的输出。


 


四、Servlet PK JSP


   JSP在本质上就是SERVLET,但是两者的创建方式不一样.Servlet完全是JAVA程序代码构成擅长于流程控制和事务处理而通过Servlet来生成动态网页;JSP由HTML代码和JSP标签构成,可以方便地编写动态网页因此在实际应用中采用Servlet来控制业务流程,而采用JSP来生成动态网页.在struts框架中,JSP位于MVC设计模式的视图层,而Servlet位于控制层.





郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。