Servlet常见接口功能介绍

本文详细介绍了Servlet的关键接口和方法,包括init()用于初始化、service()处理请求、doGet()和doPost()根据HTTP请求类型、destroy()负责资源清理,以及getServletConfig()和getServletInfo()获取配置信息。还概述了Servlet处理HTTP请求的完整流程。
摘要由CSDN通过智能技术生成

1.init()接口

在Servlet实例化后,Servlet容器会调用init()方法来初始化该对象,主要是为了是Servelt对象在处理客户请求前可以完成一些初始化工作。如:建立数据库的连接,获取配置信息等。

init()方法在第一次创建的servlet时被调用,在后续每次用户请求时不在被调用。

2.Servlet()接口方法

Service()方法是执行实际任务的主要方法,Servlet容器(如:Tomcat)调用service()方法处理来自service()客户端的请求,并将格式化的响应协会到客户端,每次服务器接收到一个servlet请求时,服务器会生成一个新线程并调用服务。

一般service方法无需重写,其在HttpServlet中已经实现,根据请求方法名GET/POST调用doGet,doPos以及其他方法,也就是说service是用来转向的,故一般写servlet时只需要重写doget或dopost即可。

3.doGet和doPost()接口

根据HTTP的不同请求调用不同方法,如果HTTP得到一个来自URL的get请求,就会调用doGet()方法;如果得到的是一个POST请求,就会调用doPost()方法。

注意:在servlet中默认情况下,无论是get还是post提交都会经过service()方法来处理,然后转向到doGet或doPost方法。

4.destory()接口

当servlet容器检测到一个servlet对象应该从服务器中被移除时,会调用该对象的destroy()方法,以便Servlet对象释放它所使用的资源,保存数据到持久存储设备中,如将内存中的数据保存到数据库中、关闭数据库连接,停止后台线程等类似的清理功能。destory()方法,只会被调用一次。

5.getServletConfig()接口

getServletConfig()方法返回Servlet容器调用init()方法时传递给Servlet对象的ServletConfig对象,ServletConfig对象包含Servlet的初始化参数,研发人员可在Servlet配置文件web.xml中,使用<init-param>标签为servlet配置一些初始化参数。

6、getServletInfo()接口

getServletInfo()方法会返回一个Sring类型字符串,包括关于Servlet的信息。如:作者、版权等。

7、HttpRequestServlet()接口

在servlet API中,定义了一个HttpServletRequest类,它继承自ServletRequest类,HttpServletRequest对象专门用于封装HTTP请求信息,简称request对象。

8、HttpResponseServlet()接口

在Servlet API中,定义了一个HttpServletResponse类,继承SercletResponse类,HttpServletResponse对象专门用来封装HTTP响应信息,简称response对象。

Servlet容器会针对每次请求创建一个response对象,并把它作为参数传递给Servlet的service方法,Servlet处理请求后,会将响应信息封装到response对象中,并由容器解析后返回给客户端。

一个具体的Servlet项目中的实例代码如下:

package com.web.servlet;
​
import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.rmi.server.ServerCloneException;
@WebServlet("/miracle")
public class IndexServlet implements Servlet {
    @Override
    public void init(ServletConfig servletConfig) throws ServletException{ } //当Tomcat容器启动的时候,会自动进行初始化
​
    @Override
    public ServletConfig getServletConfig() {
        return null;
    }
​
    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException { //throws ServletException表示抛出异常
       //这个方法用于处理用户请求
        String userName=servletRequest.getParameter("userName");  //获取浏览器用户输入的参数值
        servletResponse.setContentType("text/html;charset=utf-8"); //设置Servlet的编码类型是html,编码格式为utf-8,避免出现乱码
        PrintWriter writer =servletResponse.getWriter(); //获取io写入的方法
        if ("xt".equals((userName))){
            writer.println("可以访问");
        }else{
            writer.println("不可以访问");
        }
        writer.close();
    }
​
    @Override
    public String getServletInfo() {
        return null;
    }
​
    @Override
    public void destroy() {
​
    }
}

只要当我们看到这其中各种方法对应的功能是什么,即这篇文章的介绍效果达到。

如:看到 public void service()这个方法,我们知道这个方法是执行实际任务的,这个实例代码中service方法获取用户请求输入参数与xt比较,输出对应文字。

补充:Servlet处理HTTP请求流程

1、Servlet容器接收到来自客户端的HTTP请求后,容器会针对该请求分别创建一个HttpServletResquest对象和HttpServletReponse对象。

2、容器将HttpServletRequest对象和HttpServletReponse对象以参数的形式传入service()方法内,并调用方法。

3、在service()方法中Servlet通过HttpServletRequest对象获取客户端信息以及信息请求的相关信息。

4、对HTTP请求处理

5、请求处理完成后,将响应信息封装到HttpServletReponse对象。

6、Servlet容器将响应信息返回给客户端。

7、当Servlet容器将响应信息返回给客户端后,HttpServletRequest对象和HttpServletReponse对象被销毁。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值