zoukankan      html  css  js  c++  java
  • servlet的开发流程介绍

    servlet的开发部署流程

    1.在%TOMCAT_HOME%/webapps下WEB-INF的文件夹,写一个文件web.xml(该网站的配置信息),建立一个classes的子文件夹,也可以从别的目录ROOT下拷贝。下面是web.xml配置文件:
    <servlet>
    <!—给servlet取名,可以随意取名-->
    <servlet-name>hello</servlet-name>
    <!—指明servlet的路径,就是servlet的包+类名-->
    <servlet-class>com.test.Hello</servlet-class>
    </servlet>
    <servlet-mapping>
    <!—给servlet取名,可以随意取名-->
    <servlet-name>hello</servlet-name>
    <!—浏览器中输入的url,可以随意取名-->
    <url-pattern>/hello<url-pattern>
    </servlet-mapping>
    2.开发servlet(引入Tomcat文件夹下lib文件夹里的servlet-api.jar)
    3.部署你的servlet
    4.启动Tomcat,访问你的servlet,在浏览器的地址栏中输入:http://127.0.0.1:8080/myWebSite/hello回车就可以看到servlet的输出

    servlet的生命周期

    servlet部署在容器里(我们使用的是Tomcat,也可是别的,比如jboss,weblogic。。。),它的生命周期由容器来管理。
    servlet的生命周期分为以下几个阶段:
    1.装载servlet,由相应的容器来完成
    2.创建一个servlet实例
    3.调用servlet的init()方法,该方法只会在第一次访问servlet时被调用一次
    4.服务:调用servlet的service()方法,一般业务逻辑在这里处理,该方法在访问该servlet时,会被调用
    5.销毁:调用servlet的destroy()方法,销毁该servlet实例,该方法在以下情况被调用:
    a)tomcat关闭
    b)reload该webapps
    c)重新启动电脑
     

    开发servlet的方法

    三种方法:
    1.实现servlet接口
    该接口定义了5个方法
    2.继承GenericServlet
    通过GenericServlet去开发servlet,只需要重写service方法,相对来说要简单一些。
    3.继承HttpServlet
    通过HttpServlet去开发servlet,需要重写doGet、doPost方法,这是目前用的最多的一种方法。

    首先明确,Servlet并不是专门用于处理Http请求的。然后再说三种方式的联系和区别。
    1)原生Servlet接口
    package javax.servlet;  
    import java.io.IOException;  
      
    public interface Servlet {  
      
        public void init(ServletConfig config) throws ServletException;  
          
        public ServletConfig getServletConfig();  
          
        public void service(ServletRequest req, ServletResponse res)  
        throws ServletException, IOException;  
          
        public String getServletInfo();  
      
        public void destroy();  
    }
    
    

    可以看到Servlet接口是定义在javax.servlet包中,该接口定义了5个方法。
    init() :在Servlet实例化之后,Servlet容器会调用init()方法,来初始化该对象,主要是为了让Servlet对象在处理客户请求之前可以完成一些初始化工作,比如:建立数据库的连接,获取配置信息。
    service():容器调用service()方法来处理客户端的请求。
    destroy():当容器检测到一个Servlet对象应该从服务器中被移除的时候,容器会调用该对象的destroy方法,以便让Servlet对象可以释放它所使用的资源,保存数据到持久化存储设备中,例如:将内存中的数据保存到数据库中,关闭数据库的连接。

    2)GenericServlet
    为什么会出现GenericServlet?如果我们直接通过实现Servlet接口来编写一个Servlet类,就需要实现Servlet接口中定义的5种方法,为了简化Servlet的编写,在javax.servlet包中,给我们提供了一个抽象的类GenericServlet,它提供了除service()方法外的其他4种方法的简单实现。GenericServlet类定义了一个通用的,不依赖具体协议的Servlet。
     
    3)HttpServlet
    由于大多数网络应用中,都是浏览器通过HTTP协议去访问服务器资源,而我们编写的Servlet也主要是应用于HTTP协议的请求和响应,为了快速开发应用于HTTP协议的Servlet,Sun公司在javax.servlet.http包中给我们提供了一个抽象的类HttpServlet,他继承自GenericServlet类,用于创建适合Web站点的HTTP Servlet。
  • 相关阅读:
    ADF中遍历VO中的行数据(Iterator)
    程序中实现两个DataTable的Left Join效果(修改了,网上第二个DataTable为空,所处的异常)
    ArcGIS api for javascript——鼠标悬停时显示信息窗口
    ArcGIS api for javascript——查询,然后单击显示信息窗口
    ArcGIS api for javascript——查询,立刻打开信息窗口
    ArcGIS api for javascript——显示多个查询结果
    ArcGIS api for javascript——用图表显示查询结果
    ArcGIS api for javascript——查询没有地图的数据
    ArcGIS api for javascript——用第二个服务的范围设置地图范围
    ArcGIS api for javascript——显示地图属性
  • 原文地址:https://www.cnblogs.com/xiangkejin/p/5693143.html
Copyright © 2011-2022 走看看