ServletConfig 基本配置信息

自认为就是在web.xml中配置一些信息。然后在servlet当中调用。
需要重学写 下面的方法,来得到 ServletConfit对象

 public void init(ServletConfig config) throws ServletException {}

上代码

 <servlet>
    <description></description>
    <display-name>ServketConfig</display-name>
    <servlet-name>ServketConfig</servlet-name>
    <servlet-class>jeno.servlet.ServketConfig</servlet-class>
    
    <!-- 初始化参数  config信息 -->
    <init-param>
        <param-name>xxx</param-name>
        <param-value>yyy</param-value>
    </init-param>
  </servlet>
  
  <servlet-mapping>
    <servlet-name>ServketConfig</servlet-name>
    <url-pattern>/ServketConfig</url-pattern>
  </servlet-mapping>

在servlet进行如下调用

public class ServketConfig extends HttpServlet {
    private ServletConfig config;
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String value=config.getInitParameter("xxx");
        response.getOutputStream().write(value.getBytes()); 
    }
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }
    /**
     * 初始化 Servlet的config 配置信息  config的信息 种子web.xml中进行的
     */
    @Override
    public void init(ServletConfig config) throws ServletException {
        String value= config.getInitParameter("xxx");
        System.out.println(value);
        //可以把 config 作为全局变量来使用
        this.config=config;
         //得到所有的 config 配置信息
        
        //得到所有的配置 name属性  根据name来的得到value
        Enumeration en=config.getInitParameterNames();
        while(en.hasMoreElements()){
            String configName=(String)en.nextElement();
            //得到 config value  之後就能进行操作了了
            String configValue=config.getInitParameter(configName);
        }
    }
}

接下里说 次config 配置用在什么地方

这个是解耦的,程序的灵活性得到提升。

  • 比如在xml中配置码表
  • 在xml中配置数据库的连接信息
  • 获得配置文件,查看struts案例的web.xml文件(后面会学到)

等等,这些信息一般不会写死,都会灵活的进行配置。所以放在 xml中进行配置

String url="jdbc:mysql://localhost:3306/test";
String name="root";
String password="root";
 //配置编码信息
 <init-param>
        <param-name>charset</param-name>
        <param-value>UTF-8</param-value>
    </init-param>
    
    <init-param>
        <param-name>url</param-name>
        <param-value>jdbc:mysql://localhost:3306/test</param-value>
    </init-param>
    
    <init-param>
        <param-name>username</param-name>
        <param-value>root</param-value>
    </init-param>
    
    <init-param>
        <param-name>password</param-name>
        <param-value>root</param-value>
    </init-param>

尼玛,在不用重写 public void init(ServletConfig config) throws ServletException {}的情况下 直接调用 this.getServletConfig();即可得到想要的ServletConfig对象。因为父类中的 init()方法中已经帮你实现。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,969评论 19 139
  • Servlet学习的大纲 servlet概念及相关接口简介 servet 执行过程 servlet映射路径 缺省s...
    奋斗的老王阅读 1,213评论 1 51
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,372评论 11 349
  • 一. Java基础部分.................................................
    wy_sure阅读 3,837评论 0 11
  • 这部分主要是与Java Web和Web Service相关的面试题。 96、阐述Servlet和CGI的区别? 答...
    杂货铺老板阅读 1,425评论 0 10