Servlet的开发和使用

  Servlet是一种比JSP更早的动态网页编程技术。在没有JSP之前,Servlet可以同时充当视图层、业务逻辑层和持久层角色。自MVC框架出现以后,Servlet的职责开始明确下来,仅仅作为控制器使用,不再作为视图层角色使用。

  Servlet通常称为服务器小程序,是运行在服务器端的程序。用于处理及响应客户端的请求。Servlet是个特殊的Java类,创建Servlet类的时候必须继承HTTPServlet。Servlet提供不同的方法用于响应客户端请求:

  doGet:用于响应客户端的GET请求;

  doPost:用于响应客户端的POST请求;

  doPut:用于响应客户端的PUT请求;

  doDelete:用于响应客户端的DELETE请求;

响应每种请求的时候都需要重写其对应的方法。也可以只需重新service()方法来响应所有的请求。

  HttpServlet还包括两个方法:

  init(ServletConfig config):创建Servlet实例的时候,调用该方法来初始化Servlet资源;

  destroy():销毁Servlet的时候,自动调用该方法回收资源;

  Servlet需要配置在web应用中才能响应用户请求。配置Servlet的时候需要修改web.xml文件。配置Servlet需要配置两个部分:

  配置Servlet的名字:对应web.xml文件中<servlet/>元素;

  配置Servlet的URL:对应web.xml文件中<servlet-mapping/>元素;

  如下配置实例:

<!--配置Servlet的名字-->
<servlet>
    <!--指定Servlet的名字-->
    <servlet-name>myServlet</servlet-name>
    <!--指定Servlet的实现类-->
    <servlet-class>com.MyServlet</servlet-class>
</servlet> <!--配置Servlet的URL--> <servlet-mapping> <!--指定Servlet的名字--> <servlet-name>myServlet</servlet-name> <!--指定Servlet映射的URL地址--> <servlet-url>/myServlet</servlet-url> </servlet-mapping>

  使用Servlet作为表现层存在以下劣势:

  1、开发效率低,所有的HTML标签都需要使用页面输出流完成;

  2、不利于团队的协作开发,美工人员无法参与Servlet界面的开发;

  3、程序可维护性差,每一处小变动都需要重新编辑Java代码,并重新编译。

  Servlet在MVC中仅仅作为控制器使用。对于遵循MVC模式的WEB应用而言:

  JSP作为表现层(View)技术,用于收集用户请求参数,并将应用的处理结果、状态数据呈现给用户;

  Servlet充当控制器(Controller)角色,它的作用类似于调度员:所有用户请求都发送给Servlet,Servlet根据请求调用对应的Model来处理用户请求,并调用JSP来呈现处理结果;

  Mode通常用javabean来充当,所有的业务逻辑、数据访问逻辑都在model中实现。当然model之下也包含丰富的组件如DAO组件、领域对象等等。

原文地址:https://www.cnblogs.com/runnigwolf/p/5226094.html