Servlet(二)使用ServletConfig(获取servlet配置信息)


 

在web.xml中的这种就是配置信息。想获取配置文件里的信息?

使用ServletConfig,这是服务器Tomact创建的。

第一种获取ServletConfig的方式:

创建一个自己的Servlet类,然后继承HttpServlet,重写init方法(带参数的)

@Override
    public void init(ServletConfig config) throws ServletException {
        super.init(config);
        this.myServletConfig=config;
    }

在配置文件里加入<init-param>标签,这里初始化的参数是encoding,让他等于GBK

之后在doPost、doGet方法里就可以是用ServletConfig获取这些配置信息

 

上面使用config对象的getInitParameter来获取配置信息

 

MyServlet类:

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;
import java.io.IOException;

/**
 * Created by Administrator on 2018/7/6.
 */
@WebServlet(name = "MyServlet")
public class MyServlet extends HttpServlet {
    private ServletConfig myServletConfig;//yong yu guoqu peizhiwenjian xinxi
    @Override
    public void init(ServletConfig config) throws ServletException {
        super.init(config);
        this.myServletConfig=config;
    }
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String encoding=myServletConfig.getInitParameter("encoding");
        System.out.println(encoding);
    }
}

 

web.xml配置文件:

  <servlet>
        <servlet-name>MyServlet</servlet-name>
        <servlet-class>MyServlet</servlet-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>GBK</param-value>
        </init-param>
    </servlet>
    <servlet-mapping>
        <servlet-name>MyServlet</servlet-name>
        <url-pattern>/servletConfig</url-pattern>
    </servlet-mapping>

 

输入:

 控制台得到:

第二种获取ServletConfig的方式:

因为父类GenericServlet 中已经有这个方法,所以可以直接使用。

public abstract class GenericServlet implements Servlet, ServletConfig,
        java.io.Serializable {

    private static final long serialVersionUID = 1L;

    private transient ServletConfig config;
...
@Override
public String getInitParameter(String name) {
return getServletConfig().getInitParameter(name);
}
...
}

第三种获取ServletConfig的方式:

父类GenericServlet 中已经有getServletConfig方法。其实也是得到config对象后,调用config的getInitParameter方法。

 

获取servlet配置信息只是ServletConfig的作用之一,还有个重要的作用是获取ServletContext对象。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM