Servlet 开发

xiaoxiao2023-03-27  32

        Servlet 是运行在Web服务器上的一个java类,通过HTTP协议接收客户端的请求,同时向客户端一个响应。Sun公司提供的

动态web资源开发技术(Sun公司在其API中提供了一个servlet接口),本质是上一段java小程序,可以将Servlet加入到Servlet容

器中运行(Tomcat)

                   

【Servlet生命周期】

           由于Servlet 没有main方法,Servlet生命周期方法的调用受控于容器,即容器管理Servlet的生命周期,包括初始化

(init)、服务调用(service)和 销毁(destroy),Tomcat就是一个Servlet容器

               * 通常情况下,服务器会在Servlet第一次被调用时创建该Servlet类的实例对象(servlet出生);一旦被创建出来,该

Servlet实例就会驻留在内存中,为后续请求服务;直至Web容器退出,Servlet实例对象才会被销毁(servlet死亡)。

               *  在Servlet的整个生命周期内,Servlet的init方法只有在servlet被创建时被调用一次。

               *  而对一个Servlet的每次访问请求都导致Servlet引擎调用一次servlet的service方法。对于每次访问请求,Servlet引擎

都会创建一个新的HttpServletRequest请求对象和一个新的HttpServletResponse响应对象,然后将这两个对象作为参数传递给它

调用的Servlet的service()方法,service方法再根据请求方式分别调用doXXX方法。

                * servlet被销毁前,会调用destroy() 方法。

【Servlet接口实现类继承结构】

           Servlet接口:SUN公司定义了两个默认实现类:GenericServlet和HttpServlet(定义了一个servlet应该具有的方法,所

有的Servlet都应该直接或间接实现此接口)

                   |

                   |----GenericServlet:对Servlet接口的默认实现,通用Servlet,这是一个抽象类,其中的大部分方法都做了默认实

现,只有service方法是一个抽象方法需要继承者自己实现

                        |

                        |----HttpServlet:对HTTP协议进行了优化的Servlet(比Servlet接口的功能更为强大),继承自GenericServlet

类,并且实现了其中的service抽象方法 ,默认的实现中判断了用户的请求方式,并根据请求方式的不同分别调用不同的doXX()

方法(如为GET请求,则调用HttpServlet的doGet方法,如为Post请求,则调用doPost方法)(通常我们直接继承HttpServlet即

可,而避免直接去实现Servlet接口

【ServletConfig】(代表当前Servlet在web.xml中的配置信息, 不想在servlet中写死的内容可以配置到此处)

【ServletContext】(WEB容器在启动时,会为每个WEB应用程序创建一个对应的ServletContext对象,代表当前web应用)

【Filter过滤器】(加强版Servlet)

           Filter可认为是Servlet的一种加强版,主要用于对用户的请求进行预处理和对HttpServletResponse进行后处理,是个典型

的处理链(完整流程:Filter对用户请求进行预处理,接着将请求交给Servlet进行处理生成响应,最后Filter再对服务器响应进行

后处理

           *  创建 Filter 两个步骤:

                 (1)创建Filter处理类(实现Filter接口)    

                 (2)web.xml文件中配置 Filter

           *  创建 Filter 两个用途:

                 (1)解决中文乱码  

                 (2)权限控制

【Listener监听器】

          Web容器中的内部事件如Web应用开始,停止,用户session开始,结束,用户请求到达等,对于开发者都是透明的。

Servlet API提供了大量的监听器来监听内部事件,这样当某个事件发生就可以回调监听器内的方法

           *  使用Listener两个步骤:

               (1)定义Listener实现类  

               (2)注解或者在web.xml文件中配置(ServletContextAttributeListener、ServletRequestListener、

ServletRequestAttributeListener、HttpSessionListener、HttpSessionAttributeListener)

 

转载请注明原文地址: https://www.6miu.com/read-4988260.html

最新回复(0)