来看看init里面的方法---这三个了解一下就行
ServletConfig 该接⼝是⽤来描述 Servlet 的基本信息的。
getServletName() 返回 Servlet 的名称,全类名(带着包名的类名)
getInitParameter(String key) 获取 init 参数的值(web.xml)
getInitParameterNames() 返回所有的 initParamter 的 name 值,⼀般⽤作遍历初始化参数
第一个:getInitParameterNames() 知道干啥的就行了
public class ServletTest01 implements Servlet {
//当Servlet第一次被创建对象时执行该方法,该方法在整个生命周期中只执行一次
@Override
public void init(ServletConfig servletConfig) throws ServletException {
//输出当前类的名字
System.out.println(servletConfig.getServletName());
System.out.println("完成初始化操作");
}
看看效果
第二个:getInitParameter(String key) 获取 init 参数的值(web.xml)
//当Servlet第一次被创建对象时执行该方法,该方法在整个生命周期中只执行一次
@Override
public void init(ServletConfig servletConfig) throws ServletException {
//获取初始化参数,需要读配置文件里的参数--key,value 的形式
System.out.println(servletConfig.getInitParameter("username"));
}
先需要xml的配置来看看
<servlet>
<servlet-name>ServletTest01</servlet-name>
<servlet-class>com.javaweb.study.ServletTest01</servlet-class>
<init-param>
<param-name>username</param-name>
<param-value>zhangshang</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>ServletTest01</servlet-name>
<url-pattern>/test</url-pattern>
</servlet-mapping>
运行截图--
第三个:getInitParameterNames() 返回所有的 initParamter 的 name 值,
先设置参数
<init-param>
<param-name>username</param-name>
<param-value>zhangshang</param-value>
</init-param>
<init-param>
<param-name>password</param-name>
<param-value>123123</param-value>
</init-param>
看看我的代码及效果
输出意思是把element对应的值输出来
getServletContext() 返回 ServletContext 对象,它是 Servlet 的上下⽂,整个 Servlet 的管理者------用的最多
ServletConfig 作⽤于某个 Servlet 实例,每个 Servlet 都有对应的 ServletConfig,ServletContext 作⽤ 于整个 Web 应⽤,⼀个 Web 应⽤对应⼀个 ServletContext,多个 Servlet 实例对应⼀个 ServletContext。 ⼀个是局部对象,⼀个是全局对象
来感受一下区别
现在xml配置一下(context是全局,里面的是init是局部)
<context-param> <param-name>username</param-name> <param-value>context对象</param-value> </context-param> <servlet> <servlet-name>ServletTest01</servlet-name> <servlet-class>com.javaweb.study.ServletTest01</servlet-class> <init-param> <param-name>username</param-name> <param-value>config对象</param-value> </init-param> </servlet>
看看效果
咱们下期再见