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