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

最新文章

  1. Linux下介绍一款不错的HTML编辑器
  2. wordpres 自定义comment样式
  3. iOS之 Xcode7下 bitcode的工作流程及安全评估
  4. SQL复制一个表的数据到另一个表
  5. Android项目实战(三):实现第一次进入软件的引导页
  6. 防止忘记初始化NSMutableArray的方法
  7. BW增强数据源的两种方法
  8. 部分android手机CCEditBox输入之后键盘输入框不消失得问题
  9. 查询Table name, Column name, 拼接执行sql文本, 游标, 存储过程, 临时表
  10. mac中viso的兼容工具
  11. 基于WCF的RESTFul WebAPI如何对传输内容实现压缩
  12. 环信 之 iOS 客户端集成四:集成UI
  13. 地下产链——创建安装包捆绑软件(Bundled software)
  14. DNS的功能-域名空间、域名注册和域名解析
  15. Unity3D热更新之LuaFramework篇[01]--从零开始
  16. Java网络编程的Java流介绍
  17. windows 10 超级优化,同时解决本地磁盘100%的问题
  18. windows程序设计 加载位图图片
  19. 【QT】QPixmap和QImage在QLabel显示一张图像
  20. Linux使用退格键时出现^H + Tab键命令补全失效/方向键失效 + ls文件夹和文件没有颜色

热门文章

  1. LeetCode(31) Next Permutation
  2. Saving James Bond - Hard Version
  3. 为什么在属性中设置private set
  4. cf839c Journey
  5. Java基础学习总结(92)——Java编码规范之排版、注释及命名
  6. xtu read problem training A - Dividing
  7. CSU1350 To Add which?
  8. [luoguP2577] [ZJOI2005]午餐(DP)
  9. BZOJ1573: [Usaco2009 Open]牛绣花cowemb
  10. Codeforces Round #297 (Div. 2) [ 折半 + 三进制状压 + map ]