ServletConfig接口详情
ServletConfig是什么?
javax.servlet.ServletConfig是一个接口。也是Servlet规范中的一员【自从Tomcat9之后javax改成:Jakarta】
谁去实现了这个接口?
我们可以看见:orapachcatalincorStandardWrapperFacade是这个类实现了ServletConfig这个接口。
也就是Tomcat服务器实现了。
一个Servlet对象对应一个ServletConfig对象。100个Servlet对象有100个ServletConfig对象。
ServletConfig对象是谁创建的,什么时候创建的?
是Tomcat服务器创建的,在创建Servlet对象的创建了ServletConfig对象。也就是用户发送第一次请求的时候。
ServletConfig接口到底是干什么用的?
ServletConfig被翻译为:Servlet对象的配置信息对象。一个对象对应一个配置信息。
ServletConfig对象包含了什么信息?
包含了wexml配置文件
ConfigTest
yangzhaoguang.servlet.ConfigTest
ServletContext接口详情
ServletContext也是一个接口,是Servlet规范中的一员
ServletContext接口是谁实现的?
Tomcat实现了ServletContext接口。
ServletContext对象是谁创建的?什么时候创建的?
Tomcat创建的,在Tomcat启动的时候创建的。ServletContext对象只有一个。在服务器关闭的时候销毁。
ServletContext怎么理解?
Servlet的环境对象。ServletContext对象其实对应的就是整个wexml文件。所有Servlet对象都共享一个ServletContext对象
AServlet和BServlet都是同一个Context对象。因为都对应一个wexml文件。
ServletContext中有什么常用的方法?
pageSize
10
startIndex
0
以上俩个方法是获取上下文的配置信息的。这个配置信息可以写在Servlet的外面也可以写到Servlet的里面,怎么区分呢?就相当于全局和局部的意思,如果想让所有的Servlet都起作用,就写到Servlet的外面,如果只想让某个Servlet有作用,就写到某个Servlet标签里面
ServletContext又叫应用域。
如果所有的用户共享一份数据,并且这个数据很少的被修改,并且这个数据量很少,我们可以将这些数据放到ServletContext这个域中。
为什么所有的数据必须是共享的?因为不是共享的没有意义,所有Servlet对象只有一个ServletContext对象,只有共享的数才有意义为什么数据量要小?数据量太大,占用内存,ServletContext对象生命周期较长,从Tomcat开启到固关闭才会销毁。为什么这个共享的数据要很少的修改?这个数据是修改的,如果涉及到修改,可能出现多线程并发安全问题。所以放到ServletContext中的数据一般是只读的。数据量小,共享数据,不会修改,这样的数据放到应用域中才会提升效率。因为应用域中相当与一个缓存,使用时不需要从数据库中再取数据;一些缓存技术?字符串常量池整数型连接池数据库连接池线程池
那么怎么向应用域中存数据,取数据,删除数据?
其实我们以后编写Servlet类的时候,实际上不会直接继承GenericServlet类的,因为我们时B/S结构,这种结构是基于HTTP协议的,在Serlvet规范当中:提供了一个类叫做HttpServlet,他是专门为HTTP协议准备的一个Servlet类,我们编写的Servlet类要继承HttpServlet
他们之间的继承关系:javax.servlet.Servlet接口【爸爸】javax.servlet.GenericServletimplementsServlet抽象类【儿子】javax.servlet.http.HttpServeltextendsGenericServlet抽象类【孙子】以后编写的Servlet类。要继承HttpServlet
文章为作者独立观点,不代表股票交易接口观点