• javaWeb 理解(一)


    Servlet

    Servlet(Servlet Applet),全称Java Servlet。是用Java编写的服务器端程序。主要功能用于交互式地浏览和修改数据,生成动态web内容。狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现这个这个Servlet接口的类。

    Servlet接口定义了Servlet与servlet容器之间的关系。Servlet容器将Servlet类载入内存,并产生Servlet实例和调用它具体的方法。但是要注意的是,在一个应用程序中,每种Servlet类型只能有一个实例

    Servlet生命周期的三个关键方法int、service、destory。

    1.init()方法,当Servlet第一次被请求时,Servlet容器就会开始调用这个方法类初始化一个Servlet对象出来,但是这个方法在后续请求中不会在被Servlet容器调用。可以利用init()方法来执行相应的初始化工作

    2.service()方法,每当请求Servlet时,Servlet容器就会调用这个方法。第一次请求时,Servlet容器就会先调用init()方法初始化一个Servlet对象出来,然后会调用它的service()方法进行工作,但在后续的请求中,Servlet容器只会调用service方法。

    3.destory()方法。当要销毁Servlet时,Servlet容器就会调用这个方法。在关闭Servlet容器时,就会调用该函数。

    下面是访问Servlet的图解

    上面是对Servlet的理解

    平时在创建项目的时候,最开始就是一个功能对应一个Servlet,并在web.xml中对创建的Serlvet进行相关的配置,开始项目的时候Servlet比较少,但是到后来发现Servlet越来越多的,在web.xml中配置的记录也越来越多(这个问题可以通过注解的方式来进行解决,Servlet3.0添加了注解可以解决Serlvet在xml中的配置问题。)虽然web.xml中配置的问题解决了,但是Servlet的过多个问题还是没有解决。

    BaseServlet

    在进行java培训的时候老师最开始讲的都是最原始的Servlet,要是讲的全的话直接将javaWeb的框架,但是不讲其中的原理,仅仅将使用框架的使用方法。在不适用框架的情况下,如何减少Servlet的数量,可以通过BaseServlet。BaseServlet其实可以不叫这个名字,但是在使用的时候一定要去继承HttpServlet。继承了HttpServlet之后主要就是去实现Service()。一般来说service方法是不需要重写的,因为在HttpServlet中已经有了很好的实现,它会根据请求的方法名(Get,POST),调用doGet,doPost以及其他的doXXX方法,也就是说service是用来转向的。但是如果你在自己的servlet类中覆盖了service方法,实现的方法如下:

        public void service(ServletReuqest req,ServletResponse res) throws ServletException,IOException{
            res.getOutputStream().print("image is <img src="images/downcoin.gif"></img><br>");
        }
    

    那么这时service就不是用来转向的,而是用来处理业务的,现在不论你的客户端调用post还是get来请求此servlet,都会执行service方法也只能执行service方法

    在BaseServlet中就是通过复写service方法来实现对业务的处理。通过BaseServlet可以减少Servlet的数量。通过让BaseServlet继承HttpServlet之后,在让自己的类去继承BaseServlet,通过BaseServlet中的service方法来调用子类中的实现的方法(通过反射来实现对子类中的方法调用的)。

    baseServlet中的实现步骤

    第一步:先获取请求携带的方法参数。

    第二步:获取指定类的字节码对象。

    第三步:根据请求携带的方法参数值,在通过字节码对象获取指定的方法。

    第四步:最后执行指定的方法。

  • 相关阅读:
    EMQ 解决方案之云平台物联网消息队列解决方案
    EMQ X Broker 3.1 Beta.2 发布
    MQTT 与 Kafka
    EMQ X 助力运营商搭建大规模 NBIoT 平台
    MQTT5.0 消息发布流程
    MQTT 5.0 新特性 |(一) 属性与载荷
    MQTT 5.0 正式成为OASIS标准
    Nginx + Docker 手动集群方式运行 EMQ
    WJQ与机房
    P1505 [国家集训队]旅游
  • 原文地址:https://www.cnblogs.com/gxcstyle/p/11442168.html
Copyright © 2020-2023  润新知