javaweb学习第九天:servlet

一、servlet的实现方式:

1.通过Servlet接口实现

        servlet接口中的方法大多数不由我们自己调用,而是由服务器(Tomcat)来调用,并且servlet的对象也不由我们来创建, 由Tomcat来帮我们创建。

        创建一个类,继承该接口,并实现当中的方法。

2.通过GenericServlet抽象类来实现

        创建一个类,并继承该类,并实现这个类中的方法(service())。

3.通过继承HttpServlet类实现

        创建一个类,并继承这个类,根据请求方式完成对doPost()或者doGet()方法的覆盖。

二、servlet细节

1.servlet与线程安全问题

        一个servlet只有一个实例,因为该实例是不同步的,所以存在线程安全问题,但是效率高。

2.<url-pattern>

        用来指定同一个servlet的多个不同访问路径。其中*通配符可以实现多种路径匹配。

3.web.xml的继承

        每一个工程的web.xml的父文件为Tomcat的conf文件夹下的web。xml,相当于,每个工程的web.xml文件当中都写有父文件web.xml的所有内容。

三、ServletContext

1.概述:

        一个项目自有一个servletcontext对象,我们可以在多个servlet中来获取这个唯一的对象,使用它可以给多个servlet传递数据(它将所有的servlet串联起来)。这个对象在Tomcat启动时就完成创建,并随着Tomcat的关闭时才会关闭。

2.获取ServletContext的方式:

        a、通过Servlet接口

                通过该实现该接口的类的init方法传递过来的servletconfig参数,调用getServletContext()方法来获取

        b、通过实现了GenericServlet的类的getServletContext()方法;

        c、通过实现了HTTPServlet接口的类的getServletContext()方法;

        d、通过HttpSession接口的实现类的getServletContext()方法;

        e、通过ServletContextEven类的getServletContext()方法。

3.域对象的功能

        一般来说,域对象是用来在多个servlet之间传递数据用的,每个域对象必须要有存取数据的功能,域对象内部有一个Map集合,所以,里面数据的存取格式与Map集合的特点类似。

4.初始化参数

        每个servlet都可以有自己的初始化参数,但是每个servlet的初始化参数只能本servlet访问和使用,其他servlet不能访问和使用其他servlet初始化的参数。

        通过ServletContext方式初始化的参数可以在每个servlet当中使用。

5.获取资源的相关方法

6.获取类路径下的资源


猜你喜欢

转载自blog.csdn.net/qq_41300571/article/details/79593246