Servlet讲解

89 阅读2分钟

Servlet讲解

1.servlet的本质

可以将servlet理解为web服务器和web app之间的一个接口,通过servlet规定的一系列规范,服务器根据接受到的请求可以找到正确的服务。

以tomcat为例。服务器接收到浏览器发送的请求,此时tomcat需要找到与请求路径对应的xxxServlet,对应关系存储在配置文件中,因此先解析配置文件,获取到对应的xxxServlet,然后通过反射创建对象,调用service方法。

    main函数在tomcat服务器中,程序是写死的,这就表明我们的web app的存放位置、命名等需要遵循一定的规范,只有这样tomcat才能够顺利的访问到webapp。

2.生命周期

Servlet对象在tomcat服务器启动时并不会默认创建,只有在用户发送请求后才会创建对应的xxxServlet对象。用户发送请求后,首先调用无参构造器生成对象,然后调用init方法和service方法。当用户后续重复发送请求时,只会调用service方法,不会再实例化对象。 tomcat服务器销毁Servlet对象时,会调用destroy方法,调用完成之后便销毁

3.servlet类方法的介绍

xxxServlet作为Servlet接口的实现类,需要重写Servlet接口的方法:

    init方法为初始化方法,在Servlet对象创建后只执行1次,方法体中多为连接资源等操作。

    init方法入参为ServletConfig类的一个对象,servletconfig去获取xml配置文件中servlet标签中的内容。也就是说,tomcat解析web.xml文件,将<servlet></servlet>标签中的配置信息自动包装到servletconfig中。

    service方法是处理用户请求的核心方法。

    destroy作为对象销毁前调用的方法,通常需要负责保存数据、释放资源等操作。

4.HttpServlet

​ 要在继承TttpServlet类的子类中重写后端支持的请求方法。如接口支持post方法,那么需要重写doPost方法,若前端发送请求为get方法,则会走到父类(TttpServlet)中,最终结果会报405错误码(method not allowed)。

5.一个servlet类的开发步骤

​ 1、servlet类继承TttpServlet

    2、重写doGet方法或 doPost 方法

    3、将servlet类配置在web.xml配置文件中

    4、编写前端页面(form表单),form表单中指定请求路径即可