ServletConfig
- Tomcat服务器实现了Servlet规范,专门写了一个ServletConfig接口的实现类。
- Tomcat服务器是实现了Servlet规范和Jsp规范的容器。
- Java Web程序员一直是面向ServletConfig接口完成调用,不需要关系具体的实现类。
- ServletConfig对象中封装了一个Servlet对象的配置信息,配置信息在web.xml文件中(或者注解)。
ServletConfig 接口中的方法:
String getServletName();
ServletContext getServletContext();
String getInitParameter(String var1);
Enumeration getInitParameterNames();
代码:
package test1;
import javax.servlet.*;
import javax.servlet.annotation.WebInitParam;
import javax.servlet.annotation.WebServlet;
import javax.servlet.jsp.tagext.VariableInfo;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Enumeration;
/**
* Created by hasee
* on 2017/4/9.
*/
@WebServlet(name = "cymone",urlPatterns = "/a", initParams=
{@WebInitParam(name="cym1", value="今天星期三"),
@WebInitParam(name="cym2", value="今天")})
public class Servletcym implements Servlet {
private ServletConfig servletConfig;
@Override
public void init(ServletConfig servletConfig) throws ServletException {
//目的:可以在service中使用servletConfig
this.servletConfig = servletConfig;
}
@Override
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
servletResponse.setContentType("text/html; Charset = UTF-8");
PrintWriter writer = servletResponse.getWriter();
//获取ServletConfig
ServletConfig config = getServletConfig();
//通过name获取Value
// String cym1 = config.getInitParameter("cym1");
// String cym2 = config.getInitParameter("cym2");
// writer.print(cym1+" "+cym2);
Enumeration<String> names = config.getInitParameterNames();
while (names.hasMoreElements()) {
String name = names.nextElement();
String value = config.getInitParameter(name);
writer.print(name+"="+value);//cym1=今天星期三 cym2=今天
writer.print("</br>");
}
//获取Servlet的name
String name = config.getServletName();
writer.print("name"+name);
}
@Override
public ServletConfig getServletConfig() {
//让子类可以使用servletConfig,
// 通过getServletConfig方法获取servletConfig对象
return servletConfig;
}
@Override
public String getServletInfo() {
return null;
}
@Override
public void destroy() {
}
}