自认为就是在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()方法中已经帮你实现。