Servlet详解

一、什么是Servlet

 
1、 Servlet 是 JavaEE 规范之一。规范就是接口

2、 Servlet 就 lavaWeb 三大组件之一。三大组件分别是: Servet 程序、 Fiter 过滤器、 Listener 监听器。

3、 Servlet 是运行在服务器上的一个 java 小程序,它可以接收客户端发送过来的请求,并响应数据给客户。

很多地方也说Servlet是一个容器,本质上其实大同小异,说白了,Servlet就是从客户端接收到请求,并在Servlet中进行相应的操作,之后响应客户端。

这里我觉得理解为容器会更好一点,Servlet容器里含有接收请求和响应请求的对象,我们可以通过该容器接受到请求,并响应该请求。(像一个黑盒)

二、Servlet配置 

  <servlet>
    <servlet-name>HelloServlet</servlet-name>
    <servlet-class>untitled.servlet.HelloServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>HelloServlet</servlet-name>
    <url-pattern>/hello</url-pattern>
  </servlet-mapping>

1、<servlet>标签表示给服务器配置Servlet程序,也就是告诉服务器我们有一个Srevlet程序可以供服务器响应客户算请求时使用

2、<servlet-name>标签表示该sevlet程序的别名(一般是类名)

3、<servlet-class>就表示该Servlet程序的全类名

4、<servlet-mapping>用来配置程序的访问地址其中<url-pattern>来表示访问某个路径时,做响应的Servlet程序是<servlet-name>中表示的程序

简单来说,就是当我客户端要访问hello时,由HelloServlet来响应客户端的请求。

三、Servlet执行流程

我们以上面配置的Servlet以及下面的访问路径为例

http://localhost:8080/servlet/hello

我们来分解该访问路径

1、http:表示请求协议

2、localhost表示的是服务器的ip地址,即客户端用来锁定是哪个服务器来帮助我们完成请求的响应

3、:8080是端口号,通过端口号,定位到Tomcat

4、/servlet是工程路径,通过工程路径来确定访问那个工程

5、/hello表示资源路径,即我们通过/hello来确定我们用哪个servlet来响应我们的程序

上面呢个例子来说,我们的/hello路径通过一个叫HelloServlet程序来响应请求,HelloServlet又来找到我们的HelloServlet类,找到该类以后,通过该类(实现了servlet接口)中的service方法,我们来通过具体的方法响应请求。

四、Servlet生命周期

1、执行 Servlet 构造器方法

2、执行 init 初始化方法

第一、二步,是在第一次访问的时候创建 Servlet 程序会调用。

3、执行 service 方法

第三步,每次访问都会调用。

4、执行 destroy 销线方法

第四步,在 web 工程停止时候调用。
 

五、Servlet程序编写 

我们如果想自己实现自己的Servlet程序,只需要实现servlet接口即可

servlet中最重要的一个方法就是service方法,service用来在每一次请求访问servlet程序时对请求进行进行响应。 

public class MyFirstServlrt implements Servlet {
 
    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        //提供服务
    }
}      

我们可以通过调用servletRequest方法获取到请求方式(GET,POST等),通过if语句来分别编写不同的方法响应不同的请求。

Servlet接口中其他的两个方法(此处借用大佬讲的)

    getServletInfo( ),这个方法会返回Servlet的一段描述,可以返回一段字符串。

    getServletConfig( ),这个方法会返回由Servlet容器传给init( )方法的ServletConfig对象。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值