ServletConfig的使用

ServletConfig的使用

作用:

A servlet configuration object used by a servlet container to pass information to a servlet during initialization.

一个给Web容器使用的配置对象,在Servlet初始化期间将信息传递给Servlet

Servlet接口中的方法:init(ServletConfig config)

含义
  • 封装Servlet在启动时候的一些配置信息
  • 读取web.xml中的init-param初始化的参数
为什么要配置初始化参数

降低耦合度,方便后期维护和修改

<init-param>
    <param-name>name</param-name>
    <param-value>Jack</param-value>
</init-param>

常用的方法:

得到servlet中配置的初始参数

  • String getInitParameter(参数名)
    • 得到Servlet中配置的初始参数
  • Enumeration getInitParameterNames()
    • 得到所有的初始参数的名字,返回一个集合,枚举类。Enumeration类似于迭代器
java.util.Enumeration中的方法
  • boolean hasMoreElements()
    • 测试此枚举是否包含更多的元素。
  • E nextElement()
    • 如果此枚举对象至少还有一个可提供的元素,则返回此枚举的下一个元素。
案例演示

需求:在当前的Servlet中创建一个init的参数,name=Jack, age=18,读取配置文件中的多个参数,读取出来,显示到浏览器上

<servlet>
    <servlet-name>ConfigServlet</servlet-name>
    <servlet-class>com.itheima.servlet.ConfigServlet</servlet-class>
    <!-- 指定初始的配置参数 -->
    <init-param>
        <param-name>user</param-name>
        <param-value>Rose</param-value>
    </init-param>
    <init-param>
        <param-name>age</param-name>
        <param-value>18</param-value>
    </init-param>
  </servlet>

Servlet:


/**
 * 得到初始的参数值
 * @author NewBoy
 *
 */
public class ConfigServlet extends HttpServlet {

    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=utf-8");
        PrintWriter out = response.getWriter();
        //得到初始的参数值
        /*
        //1. 得到ServletConfig对象,这个方法是Servlet接口中定义
        ServletConfig config = getServletConfig();
        //2. 调用config中方法
        String user = config.getInitParameter("user");
        String age = config.getInitParameter("age");
        */
        //直接调用方法,因为我们的Servlet也实现了ServletConfig接口,所以可以直接使用这个方法
        String user = getInitParameter("user");
        String age = getInitParameter("age");
        out.print("初始参数user : " + user + "<br/>");
        out.print("初始参数age: " + age + "<br/>");

        //得到所有的初始参数名字
        Enumeration<String> names = getInitParameterNames();
        while(names.hasMoreElements()) {
            String name = names.nextElement();  //得到名字
            String value = getInitParameter(name);  //得到值
            out.print("名字:" + name + ", 值:" + value + "<br/>");
        }
        out.close();
    }

    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        doGet(request, response);
    }

}
上面的输出结果

image

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值