1,作用

  主要是用于加载servlet的初始化参数。在一个web应用可以存在多个ServletConfig对象(一个Servlet对应一个ServletConfig对象)

2,创建时机和对象的获取

  创建时机: 在创建完servlet对象之后,在调用init方法之前创建。对象的创建是系统完成的。

  得到对象: 直接从Servlet有参数的init方法中得到。

3,servlet的初始化参数配置

  每个servlet类和url映射都可以配置对应的初始化参数,初始化参数在web.xml文件中配置。

  配置有两种方式,直接操作web.xml文件 或者 在描述中配置。

  a,直接操作web.xml文件

  

<servlet>
<description>Register</description>
<display-name>Register</display-name>
<servlet-name>registerServlet</servlet-name>
<servlet-class>servlets.user.registerServlet</servlet-class>
<init-param>
<param-name>name</param-name>
<param-value>project</param-value>
</init-param>
<init-param>
<param-name>user</param-name>
<param-value>yang</param-value>
</init-param>
</servlet> <servlet-mapping>
<servlet-name>registerServlet</servlet-name>
<url-pattern>/register</url-pattern>
</servlet-mapping>

 其中的<init-param>标签就是配置servlet初始化参数的。

  b,在web.xml的design中配置

  

4,ServletConfig对象的获取

  a,从Servlet带参数的init方法中获取

public class registerServlet extends HttpServlet {

	private static final long serialVersionUID = 1L;
private ServletConfig config = null; public void init(ServletConfig config) throws ServletException{
this.config = config;
super.init();
}

  b,从Servlet对象获取

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.config = this.getServletConfig();
this.config = getServletConfig();
System.out.println(config.getInitParameter("name"));
// doPost(request, response);
}

  注意,两种方式不要一起用,不要既在init方法中获取ServletConfig对象,又通过getServletConfig()方法获取,否则会报错:

java.lang.NullPointerException
servlets.user.registerServlet.doGet(registerServlet.java:30)
javax.servlet.http.HttpServlet.service(HttpServlet.java:622)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

  因为已经通过init方法获取到ServletConfig对象了,这样 getServletConfig() 方法就获取不到对象了。


5,常用接口方法

  a,获取Servlet名称

  getServletConfig().getServletName()

  b,获取初始化参数名列表

  getServletConfig().getInitParameterNames() 这里返回的是枚举对象

  c,获取初始化参数值

  getServletConfig().getInitParameter(initParaName)

  d,返回上下文对象

  getServletConfig().getServletContext()

接口使用代码

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.println(getServletConfig().getServletName());
Enumeration<String> enumeration = getServletConfig().getInitParameterNames();
while (enumeration.hasMoreElements()) {
String initParaName = (String) enumeration.nextElement();
System.out.println(getServletConfig().getInitParameter(initParaName));
}
System.out.println(getServletConfig().getServletContext());
// doPost(request, response);
}

console打印日志

egisterServlet
project
yang
org.apache.catalina.core.ApplicationContextFacade@994c146

(15)ServletConfig对象详解的更多相关文章

  1. ServletConfig对象详解

    在Servlet 的配置文件中,可以用一个或多个<init-param>标签为servlet配置一些初始化参数. 当servlet配置了初始化参数之后,web容器在创建servlet实例对 ...

  2. jvm源码解读--15 oop对象详解

    (gdb) p obj $15 = (oopDesc *) 0xf3885d08 (gdb) p * obj $16 = { _mark = 0x70dea4e01, _metadata = { _k ...

  3. mvc-servlet---ServletConfig与ServletContext对象详解(转载)

    ServletConfig与ServletContext对象详解 一.ServletConfig对象    在Servlet的配置文件中,可以使用一个或多个<init-param>标签为s ...

  4. JavaWeb学习----JSP内置对象详解

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  5. django中request对象详解(转载)

    django中的request对象详解 Request 我们知道当URLconf文件匹配到用户输入的路径后,会调用对应的view函数,并将  HttpRequest对象  作为第一个参数传入该函数. ...

  6. (转)javascript中event对象详解

    原文:http://jiajiale.iteye.com/blog/195906 javascript中event对象详解          博客分类: javaScript JavaScriptCS ...

  7. Servlet、ServletContext与ServletConfig的详解及区别

    Servlet.ServletContext与ServletConfig的详解及区别 一.Servlet详解 Servlet是一个interface,全局限定名:javax.servlet.Servl ...

  8. jQuery的deferred对象详解

    jQuery的deferred对象详解请猛击下面的链接 http://www.ruanyifeng.com/blog/2011/08/a_detailed_explanation_of_jquery_ ...

  9. Window 对象详解 转自 http://blog.csdn.net/jcx5083761/article/details/41243697

    详解HTML中的window对象和document对象 标签: HTMLwindowdocument 2014-11-18 11:03 5884人阅读 评论(0) 收藏 举报 分类: HTML& ...

随机推荐

  1. 【HIHOCODER 1469 】福字(DP)

    描述 新年到了,你收到了一副画.你想找到里面最大的福字. 一副画是一个n × n的矩阵,其中每个位置都是一个非负整数. 一个福字被定义成是大小为 k 的正方形,满足其中的每个位置上的数都恰好比他的左边 ...

  2. Android开发——Accessibility机制实现模拟点击(微信自动抢红包实现)

    1. 何为Accessibility机制 许多Android使用者因为各种情况导致他们要以不同的方式与手机交互.对于那些由于视力.听力或其它身体原因导致不能方便使用Android智能手机的用户,And ...

  3. 比较spring cloud和dubbo,各自的优缺点是什么

    dubbo由于是二进制的传输,占用带宽会更少springCloud是http协议传输,带宽会比较多,同时使用http协议一般会使用JSON报文,消耗会更大 dubbo的开发难度较大,原因是dubbo的 ...

  4. struts2访问或添加几个属性(request/session/application属性)

    https://blog.csdn.net/hebiao100/article/details/7385055 struts2添加request.session.application属性 第一种方法 ...

  5. URAL 2040 Palindromes and Super Abilities 2

    Palindromes and Super Abilities 2Time Limit: 500MS Memory Limit: 102400KB 64bit IO Format: %I64d &am ...

  6. HDU 4405 飞行棋上的数学期望

    突然发现每次出现有关数学期望的题目都不会做,就只能找些虽然水但自己还是做不出的算数学期望的水题练练手了 题目大意: 从起点0点开始到达点n,通过每次掷色子前进,可扔出1,2,3,4,5,6这6种情况, ...

  7. 【模板】prim的heap优化

    简单的代码.. 时间复杂度为O((n + m)logn) 大部分情况下还是跑不过kruskal的,慎用. #include <cstdio> #include <queue> ...

  8. 洛谷P1771 方程的解_NOI导刊2010提高(01)

    题目描述 佳佳碰到了一个难题,请你来帮忙解决. 对于不定方程a1+a2+…+ak-1+ak=g(x),其中k≥2且k∈N,x是正整数,g(x)=x^x mod 1000(即x^x除以1000的余数), ...

  9. Python闭包函数

    闭包 闭包:python中的闭包从表现形式上定义(解释)为: 如果在一个内部函数里,对在外部作用域(但不是在全局作用域)的变量进行引用,那么内部函数就被认为是闭包(closure). 先看一个函数: ...

  10. poj3635 FULL tank(TLE) 有限制的最短路(BFS搜索)。

    用的BFS+优先队列+二进制压缩状态判重+链式前向星, TLE,好像有人这样过了...好像要用A*算法,还不太会,所以暂时放弃.但是也学会了很多,学习了链式前向星,更深理解了BFS求最优的时候,什么时 ...