(1)servlet请求流程
1、根据上下文路径去tomcat根路径找到server.xml文件获取所有的元素,再判断哪一个元素的path属性为上下文路径,然后根据dobase属性去访问项目的根路径
2、根据当前项目的根路径下的WEB-INF读取web.xml文件
3、获取web.xml中所有元素是否存在访问的资源
4、根据资源名称最终获取对应的servlet类的全限定名
5、根据servlet的全限定名,使用反射来调用构造器去创建对象
6、创建servletConfig对象,再使用servlet对象调用init()方法
7、创建req,resp对象,再使用servlet对象调用service方法
8、在service方法中对客户端做响应操作
(2)serveltConfig接口获取初始化参数
servletConfig接口表示servlet的信息配置对象,web.xml文件中当前servlet的配置信息。方法包括:
web.xml中servlet参数配置如下:
<servlet>
<servlet-name>initParam</servlet-name>
<servlet-class>com.suning.servlet.initParam</servlet-class>
<!-- 初始化参数 -->
<init-param>
<param-name>encoding</param-name>
<param-value>GBK</param-value>
</init-param>
<init-param>
<param-name>name</param-name>
<param-value>tuzi</param-value>
</init-param>
</servlet>
获取初始化参数:
//获取初始化参数中名为encoding的值
String encoding = config.getInitParameter("encoding");
//获取初始化参数中名为name的值
String name = config.getInitParameter("name");
System.out.println("encoding: " + encoding + "name: " + name );
//利用Enumeration来获得所有参数名称和值
Enumeration<String> en = config.getInitParameterNames();
while (en.hasMoreElements()) {
String paramName = en.nextElement();
System.out.println(paramName + "," + config.getInitParameter(paramName));
}