Servelet中的config和context

Config:

config是servlet容器中的个人配置项,它在项目启动时会被Tomcat扫描,并自动装配到容器中,属于单个类的配置,一个类可以有多个config

在web.xml文件中书写为

<servlet>
        <servlet-name>servlet1</servlet-name>
        <servlet-class>com.itbaize.servlet</servlet-class>
<!--        初始化配置的值,首先会被Tomcat读取,被config自动初始化建立-->
        <init-param>
            <param-name>keya</param-name>
            <param-value>valuea</param-value>
        </init-param>
        <init-param>
            <param-name>keyb</param-name>
            <param-value>valueb</param-value>
        </init-param>
    </servlet>
    <servlet-mapping>
        <servlet-name>servlet1</servlet-name>
        <url-pattern>/servlet01</url-pattern>
    </servlet-mapping>
<init-param></init-param>必须写在<servlet></servlet>中

config在单个类中布置

@WebServlet(urlPatterns = "/servlet02",
            initParams = {@WebInitParam(name = "key2a",value = "value2a"),@WebInitParam(name = "key2b",value = "value2b")})
public class Servlet01 extends HttpServlet {}

initParams=@WebInitParam(name = "key2a",value = "value2a")  必须写在@WebServlet中,name和value的值可以替换

访问config: 

@Override
    public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
        System.out.println("config----------------------------------------------");
        ServletConfig config = this.getServletConfig();
        // 根据参数名获取单个参数
        String keya = config.getInitParameter("keya");
        System.out.println("keya:"+keya);
        //获取全部参数
        Enumeration<String> names = config.getInitParameterNames();
        //迭代获取参数名
        while(names.hasMoreElements()){
            String name = names.nextElement();
            /*
            * name 获取配置的param-name
            * config.getInitParameter(name) 获取配置的param-value
            * */
            System.out.println(name+":"+config.getInitParameter(name));
        }
       
      }

Context: 

Context是一种全文配置的功能,在Servlet的Container中它包含部署项目中所有的类,即它在Servlet中只有一个,为单项功能。在Servlet中全部类都可访问到它

在web.xml中部署

<context-param>
        <param-name>UTF-8</param-name>
        <param-value>variable</param-value>
    </context-param>
    <context-param>
        <param-name>GBK</param-name>
        <param-value>global</param-value>
    </context-param>

 <context-param> </context-param>可以直接写在web.xml中,无需嵌套任何模块

 访问context:

如果想访问或者验证是否配置Context

@Override
    public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
        System.out.println("context----------------------------------------------");
        // 获取配置的Context 对象
        ServletContext context = this.getServletContext();
        //获取全部参数
        Enumeration<String> names1 = context.getInitParameterNames();
        //迭代获取参数名
        while(names1.hasMoreElements()){
            String name = names1.nextElement();
            System.out.println(name+":"+context.getInitParameter(name));
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值