ServletConfig和ServletContext

1、ServletConfig

           1)获取servlet初始化的参数信息

            2)获取servlet的名字

            3)获取ServletContext对象

            实例代码如下:

            web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <!--配置servlet让tomcat加载-->
    <servlet>
        <servlet-name>ServletDemo01</servlet-name>
        <servlet-class>com.gxa.servlet.ServletDemo01</servlet-class>
<!--    定义初始化参数-->
        <init-param>
            <param-name>name</param-name>
            <param-value>csdn</param-value>
        </init-param>
        <init-param>
            <param-name>age</param-name>
            <param-value>2</param-value>
        </init-param>

    </servlet>
    <servlet-mapping>
        <servlet-name>ServletDemo01</servlet-name>
        <url-pattern>/servletDemo01</url-pattern>
    </servlet-mapping>
</web-app>
            ServletDemo01.java
package com.gxa.servlet;

import javax.servlet.*;
import java.io.IOException;

public class ServletDemo01 implements Servlet {
    @Override
    public void init(ServletConfig servletConfig) throws ServletException {

        System.out.println("我被初始化了");

        //1、获取servlet初始化得参数信息
        String name = servletConfig.getInitParameter("name");
        System.out.println("name="+name);//name=csdn
        String age = servletConfig.getInitParameter("age");
        System.out.println("age="+age);//age=2

        //2、获取servlet得名字
        String servletName = servletConfig.getServletName();
        System.out.println("servlet得名字:"+servletName);//servlet得名字:ServletDemo01

        //3、获取servletContext对象
        ServletContext servletContext = servletConfig.getServletContext();
        System.out.println("servletContext得对象:"+servletContext);//servletContext得对象:org.apache.catalina.core.ApplicationContextFacade@6f1db1f8
    }

    @Override
    public ServletConfig getServletConfig() {
        return null;
    }

    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {

    }

    @Override
    public String getServletInfo() {
        return null;
    }

    @Override
    public void destroy() {

    }
}

2、ServletContext

            1)获取全局的初始化参数

            2)获取任何web资源的绝对路径

            3)域对象

            web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">

<!--    定义全局得初始化参数-->
    <context-param>
        <param-name>name</param-name>
        <param-value>CSDN</param-value>
    </context-param>
    <context-param>
        <param-name>age</param-name>
        <param-value>3</param-value>
    </context-param>
    <!--配置servlet让tomcat加载-->
    <servlet>
        <servlet-name>ServletDemo02</servlet-name>
        <servlet-class>com.gxa.servlet.ServletDemo02</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>ServletDemo02</servlet-name>
        <url-pattern>/servletDemo02</url-pattern>
    </servlet-mapping>

    <servlet>
        <servlet-name>ServletDemo03</servlet-name>
        <servlet-class>com.gxa.servlet.ServletDemo03</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>ServletDemo03</servlet-name>
        <url-pattern>/servletDemo03</url-pattern>
    </servlet-mapping>
</web-app>

            ServletDemo02

package com.gxa.servlet;

import javax.servlet.*;
import java.io.IOException;

public class ServletDemo02 implements Servlet {
    //用成员变量记住ServletConfig、ServletContext
    private ServletConfig servletConfig;
    private ServletContext servletContext;

    @Override
    public void init(ServletConfig servletConfig) throws ServletException {

        //先通过ServletConfig对象得到ServletContext得对象
        ServletContext servletContext = servletConfig.getServletContext();
        //1、获取全局的初始化参数
        String name = servletContext.getInitParameter("name");
        System.out.println("全局初始化参数name="+name);//全局初始化参数name=CSDN
        String age = servletContext.getInitParameter("age");
        System.out.println("全局初始化参数age="+age);//全局初始化参数age=3

        //2、获得任何指定的web资源的绝对路径
        System.out.println(servletContext.getRealPath("index.jsp"));
        //结果:E:\Idea\workspace\javawebExceprise\out\artifacts\javaweb_war_exploded\index.jsp
        System.out.println(servletContext.getRealPath("WEB-INF/web.xml"));
        //结果:E:\Idea\workspace\javawebExceprise\out\artifacts\javaweb_war_exploded\WEB-INF\web.xml

        this.servletConfig = servletConfig;
        this.servletContext = servletConfig.getServletContext();
    }

    @Override
    public ServletConfig getServletConfig() {
        return null;
    }

    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {

        //3、往域中存储一个   name=张三  的值,然后在另一个servlet中可以取出该域中的数据
        servletContext.setAttribute("name","张三");
    }

    @Override
    public String getServletInfo() {
        return null;
    }

    @Override
    public void destroy() {

    }
}

            ServletDemo03

package com.gxa.servlet;

import javax.servlet.*;
import java.io.IOException;

public class ServletDemo03 implements Servlet {
    //用成员变量记住ServletConfig、ServletContext
    private ServletConfig servletConfig;
    private ServletContext servletContext;

    @Override
    public void init(ServletConfig servletConfig) throws ServletException {

        this.servletConfig = servletConfig;
        this.servletContext = servletConfig.getServletContext();
    }

    @Override
    public ServletConfig getServletConfig() {
        return null;
    }

    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {

        System.out.println(servletContext.getAttribute("name"));//张三
    }

    @Override
    public String getServletInfo() {
        return null;
    }

    @Override
    public void destroy() {

    }
}

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值