ServletConfig对象

ServletConfig对象
作用
ServletConfig对象: 主要是用于加载servlet的初始化参数。在一个web应用可以存在多个ServletConfig对象(一个Servlet对应一个ServletConfig对象)
对象创建和得到
创建时机: 在创建完servlet对象之后,在调用init方法之前创建。
得到对象: 直接从有参数的init方法中得到!!!

servlet的初始化参数配置
 
  
  
  1. <servlet>
  2. <servlet-name>ServletConfigDemo</servlet-name>
  3. <servlet-class>com.cn.servlet.ServletConfigDemo</servlet-class>
  4. <!-- 初始化参数:这些参数会在加载web应用的时候,封装到ServletConfig对象中 -->
  5. <init-param>
  6. <param-name>path</param-name>
  7. <param-value>f:/b.txt</param-value>
  8. </init-param>
  9. <init-param>
  10. <param-name>param1</param-name>
  11. <param-value>value1</param-value>
  12. </init-param>
  13. <init-param>
  14. <param-name>param2</param-name>
  15. <param-value>value3</param-value>
  16. </init-param>
  17. </servlet>

注意:  servlet的参数只能由当前的这个sevlet获取!!!!

ServletConfig的API:
java.lang.String getInitParameter(java.lang.String name)  根据参数名获取Servlet参数值
java.util.Enumeration getInitParameterNames()    获取Servlet所有初始化参数名
ServletContext getServletContext()     得到servlet上下文对象
java.lang.String getServletName()       得到servlet的名称

Demo:
   
   
  1. package com.cn.servlet;
  2. import java.io.BufferedReader;
  3. import java.io.File;
  4. import java.io.FileReader;
  5. import java.io.IOException;
  6. import java.util.Enumeration;
  7. import javax.servlet.ServletConfig;
  8. import javax.servlet.ServletException;
  9. import javax.servlet.http.HttpServlet;
  10. import javax.servlet.http.HttpServletRequest;
  11. import javax.servlet.http.HttpServletResponse;
  12. public class ServletConfigDemo extends HttpServlet {
  13. /**
  14. * 以下的代码,GenericServlet已经写了,无需自己写。
  15. */
  16. // private ServletConfig config;
  17. /**
  18. * 1)tomcat服务器在加载web应用的时候,会把web.xml中该Servlet的初始化参数封装到ServletConfig对象中
  19. * 2)tomcat服务器调用init方法传入ServletConfig对象中
  20. */
  21. /*@Override
  22. public void init(ServletConfig config) throws ServletException {
  23. this.config = config;
  24. }*/
  25. @Override
  26. protected void doGet(HttpServletRequest req, HttpServletResponse resp)
  27. throws ServletException, IOException {
  28. // File file = new File("f:/a.txt");
  29. // File file = new File("f:/b.txt");
  30. /*
  31. * 读取Servlet初始化参数
  32. */
  33. ServletConfig config = this.getServletConfig();
  34. String path = config.getInitParameter("path");
  35. /*
  36. * 读取内容
  37. */
  38. // BufferedReader buffReader = new BufferedReader(new FileReader(file));
  39. BufferedReader buffReader = new BufferedReader(new FileReader(path));
  40. String str = null;
  41. while((str = buffReader.readLine()) != null){
  42. System.out.println(str);
  43. }
  44. //查询当前servlet的所有初始化参数
  45. Enumeration<String> enums = this.getServletConfig().getInitParameterNames();
  46. while(enums.hasMoreElements()){
  47. String parameterName = enums.nextElement();
  48. String parameterValue = this.getServletConfig().getInitParameter(parameterName);
  49. System.out.println(parameterName + ":" + parameterValue);
  50. }
  51. //获取当前servlet的名称
  52. String servletName = this.getServletName();
  53. System.out.println("当前servlet的名字:" + servletName);
  54. }
  55. }
web.xml
   
   
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app version="3.0"
  3. xmlns="http://java.sun.com/xml/ns/javaee"
  4. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  5. xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
  6. http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
  7. <display-name></display-name>
  8. <servlet>
  9. <servlet-name>InitDemo</servlet-name>
  10. <servlet-class>com.cn.servlet.InitDemo</servlet-class>
  11. <!-- 让servlet对象自动加载 -->
  12. <load-on-startup>1</load-on-startup> <!-- 注意: 整数值越大,创建优先级越低!! -->
  13. </servlet>
  14. <servlet>
  15. <servlet-name>ThreadDemo</servlet-name>
  16. <servlet-class>com.cn.servlet.ThreadDemo</servlet-class>
  17. </servlet>
  18. <servlet>
  19. <servlet-name>ServletConfigDemo</servlet-name>
  20. <servlet-class>com.cn.servlet.ServletConfigDemo</servlet-class>
  21. <!-- 初始化参数:这些参数会在加载web应用的时候,封装到ServletConfig对象中 -->
  22. <init-param>
  23. <param-name>path</param-name>
  24. <param-value>f:/b.txt</param-value>
  25. </init-param>
  26. <init-param>
  27. <param-name>param1</param-name>
  28. <param-value>value1</param-value>
  29. </init-param>
  30. <init-param>
  31. <param-name>param2</param-name>
  32. <param-value>value3</param-value>
  33. </init-param>
  34. </servlet>
  35. <servlet>
  36. <servlet-name>LifeDemo</servlet-name>
  37. <servlet-class>com.cn.servlet.LifeDemo</servlet-class>
  38. </servlet>
  39. <servlet-mapping>
  40. <servlet-name>InitDemo</servlet-name>
  41. <url-pattern>/InitDemo</url-pattern>
  42. </servlet-mapping>
  43. <servlet-mapping>
  44. <servlet-name>ThreadDemo</servlet-name>
  45. <url-pattern>/ThreadDemo</url-pattern>
  46. </servlet-mapping>
  47. <servlet-mapping>
  48. <servlet-name>ServletConfigDemo</servlet-name>
  49. <url-pattern>/ServletConfigDemo</url-pattern>
  50. </servlet-mapping>
  51. <servlet-mapping>
  52. <servlet-name>LifeDemo</servlet-name>
  53. <url-pattern>/LifeDemo</url-pattern>
  54. </servlet-mapping>
  55. </web-app>

效果:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值