AServlet

Servlet是JavaWeb的组件之一,它属于动态资源。Servlet的作用是处理请求。

服务器会把接收到的数据交给Servlet来处理,所以在Servlet中需要:

  • 接收数据请求
  • 处理请求
  • 完成响应
    Servlet需要我们自己编写,但是在编写时需要实现javax.servlet.Servlet接口,实现Servlet有三种方式:
  • 实现javax.servlet.Servlet接口
  • 继承javax.servlet.GenericServlet类
  • 继承javax.servlet.http.HTTPServlet类

    Servlet接口

    Servlet接口中有五个方法,其中三个方法是生命周期方法。它们的具体信息如下:
  • init
    这个方法的完整写法是init(ServletConfig servletConfig)。这个方法只会被调用一次,是当Servlet被创建时调用。方法的参数ServletConfig对象是服务器servlet配置的对象,对应了web.xml文件中元素。
  • service
    这个方法的完整写法service(ServletRequest request,ServletResponse response),这个方法会在响应请求时被调用,每次处理请求都会调用一次service()方法。
  • destroy
    这个方法时在Servlet对象快被销毁时调用,这个方法也只会被调用一次。
  • getServletConfig
    这个方法是用于获取配置信息、无参,返回一个ServletConfig对象
  • getServletInfo
    这个方法如名所示,具体为String getServletInfo()

    GenericServlet类

    它是Servlet接口的实现类,添加了成员变量ServletConfig config;用于保存init(ServletConfig config)方法中的参数。也就是说在这个方法中完成类config变量的赋值。故为了保证赋值的完成,它提供了一个无参的init方法。
    同时,GenericServlet还实现了ServletConfig接口,,可以直接调用getInitParameter()、getServletContext()、等servletConfig的方法。

    HTTPServlet类

    这个类是GenericeServlet类的子类,它提供了对HTTP请求的特殊支持。
    HTTPServlet类的方法service(HttpServletRequest request,HttpServletResponse response)是自己的方法,该方法的参数是由service方法的参数强转来的。但是我们在使用时也不用去重写这个方法,我们只需要去重写doGet或者doPost方法就可以。如果浏览器使用了你为重写的方法发送请求,则会返回405。

    web.xml配置

    这个文件是指项目目录下的web文件,具体位置是Pname/WEB——INF/web.xml.每个servlet类都需要在web.xml中配置一个servlet和servlet-mapping。格式如下:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <servlet>
    <servlet-name> </servlet-name>
    <servlet-class> </servlet-class>
    </servlet>

    <servlet-mapping>
    <servlet-name> </servlet>
    <url-pattern>/someone</url-pattern>
    </servlet-mapping>