Jsp和Servlet的关系

1. Servlet工作原理:

  Servlet程序是由WEB服务器调用,web服务器收到客户端的Servlet访问请求后:

  ①Web服务器首先检查是否已经装载并创建了该Servlet的实例对象。如果是,则直接执行第④步,否则,执行第②步。

  ②装载并创建该Servlet的一个实例对象。 

  ③调用Servlet实例对象的init()方法。

  ④创建一个用于封装HTTP请求消息的HttpServletRequest对象和一个代表HTTP响应消息的HttpServletResponse对象,然后调用Servlet的service()方法并将请求和响应对象作为参数传递进去。

  ⑤WEB应用程序被停止或重新启动之前,Servlet引擎将卸载Servlet,并在卸载之前调用Servlet的destroy()方法。 

2. Jsp工作原理:

  JSP页面在执行的时候都会被服务器端的JSP引擎转换为Servlet(.java),然后又由JSP引擎调用Java编译器,将Servelet(.java)编译为Class文件(.class),并由Java虚拟机(JVM)解释执行。下面验证这一点: 

当第一次访问Jsp页面时,tomcat目录下会出现两个文件:jsp.java和jsp.class,他们分别就是Servlet和Class。

3. 二者特点:

  Servlet能够很好地组织业务逻辑代码,但是在Java源文件中通过字符串拼接的方式生成动态HTML内容会导致代码维护困难、可读性差。

  JSP虽然规避了Servlet在生成HTML内容方面的劣势,但是在HTML中混入大量、复杂的业务逻辑同样也是不可取的。

  所以,在一个标准的MVC架构中,Servlet作为Controller接受用户请求并转发给相应的Action处理(业务逻辑包括数据库存取,Javabeans,算法逻辑方面),JSP作为View主要用来产生动态页面,各取优点。

  

猜你喜欢

转载自www.cnblogs.com/chenloveslife/p/8903592.html