在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對象。