servletConfig

web服务器在调用servlet时,会向servlet传递多个参数,我们重点了解以下几个:
request
response
servletConfig
servletContext
session
cookie


ServletConfig对象:封装servlet的配置信息
在servlet的配置文件(web.xml)中,可以使用一个或多个<init-param>标签为servlet配置一些初始化参数。当servlet配置了初始化参数后,web容器在创建servlet实例对象时,会自动将这些初始化参数封装到ServletConfig对象中,并在调用servlet的init方法时,将servletConfig对象传递给servlet。进而,通过servletConfig对象就可以得到当前servlet的初始化参数信息。


在实际开发中,有些东西不适合在servlet中写死,这类数据就可以通过配置方式配给servlet,例如:servlet采用哪个码表编码,servlet连接哪个数据库,servlet读取哪个配置文件等。


:web.xml中配置servletDemo5的初始化参数:

<servlet>
    <servlet-name>ServletDemo5</servlet-name>
    <servlet-class>cn.sun.ServletDemo5</servlet-class>

   <init-param>
        <param-name>data1</param-name>
        <param-value>xxxxxx</param-value>
    </init-param>

    <init-param>
        <param-name>data2</param-name>
        <param-value>yyyyy</param-value>
    </init-param>

    <init-param>
        <param-name>data3</param-name>
        <param-value>zzzzzz</param-value>
    </init-param>
  </servlet>
  <servlet-mapping>
    <servlet-name>ServletDemo5</servlet-name>
    <url-pattern>/ServletDemo5</url-pattern>
  </servlet-mapping>

1、servletDemo5读取指定的参数信息:

package cn.sun;

import java.io.IOException;

import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/servlet/ServletDemo5")
public class ServletDemo5 extends HttpServlet {

    private ServletConfig config;

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

//      ServletConfig config=this.getServletConfig(); //这样可以直接得到封装数据在config对象,不需再重写init方法来得到

        String value=config.getInitParameter("data1");  //得到指定的参数
        System.out.println(value);                      
    }

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

    @Override
    public void init(ServletConfig config) throws ServletException {
        this.config=config;  //得到服务器传递的config对象
    }
}

运行http://localhost:8080/day05/ServletDemo5,会在控制台输出参数data1的信息:
这里写图片描述

2、servletDemo5读取所有的参数信息:

package cn.sun;

import java.io.IOException;
import java.util.Enumeration;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/servlet/ServletDemo5")
public class ServletDemo5 extends HttpServlet {

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        //得到所有的参数
        Enumeration e = this.getServletConfig().getInitParameterNames();  //得到所有初始化配置参数的名称
        while (e.hasMoreElements()) {
                String name = (String) e.nextElement(); //得到每一个初始化参数名称
                String value1 = this.getServletConfig().getInitParameter(name);  //得到这个名称对应的值
                System.out.println(name+"="+value1);
                }               
    }


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

运行http://localhost:8080/day05/ServletDemo5,控制台输出:
这里写图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值