Config:
config是servlet容器中的个人配置项,它在项目启动时会被Tomcat扫描,并自动装配到容器中,属于单个类的配置,一个类可以有多个config
在web.xml文件中书写为
<servlet>
<servlet-name>servlet1</servlet-name>
<servlet-class>com.itbaize.servlet</servlet-class>
<!-- 初始化配置的值,首先会被Tomcat读取,被config自动初始化建立-->
<init-param>
<param-name>keya</param-name>
<param-value>valuea</param-value>
</init-param>
<init-param>
<param-name>keyb</param-name>
<param-value>valueb</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>servlet1</servlet-name>
<url-pattern>/servlet01</url-pattern>
</servlet-mapping>
<init-param></init-param>必须写在<servlet></servlet>中
config在单个类中布置
@WebServlet(urlPatterns = "/servlet02",
initParams = {@WebInitParam(name = "key2a",value = "value2a"),@WebInitParam(name = "key2b",value = "value2b")})
public class Servlet01 extends HttpServlet {}
initParams=@WebInitParam(name = "key2a",value = "value2a") 必须写在@WebServlet中,name和value的值可以替换
访问config:
@Override
public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
System.out.println("config----------------------------------------------");
ServletConfig config = this.getServletConfig();
// 根据参数名获取单个参数
String keya = config.getInitParameter("keya");
System.out.println("keya:"+keya);
//获取全部参数
Enumeration<String> names = config.getInitParameterNames();
//迭代获取参数名
while(names.hasMoreElements()){
String name = names.nextElement();
/*
* name 获取配置的param-name
* config.getInitParameter(name) 获取配置的param-value
* */
System.out.println(name+":"+config.getInitParameter(name));
}
}
Context:
Context是一种全文配置的功能,在Servlet的Container中它包含部署项目中所有的类,即它在Servlet中只有一个,为单项功能。在Servlet中全部类都可访问到它
在web.xml中部署
<context-param>
<param-name>UTF-8</param-name>
<param-value>variable</param-value>
</context-param>
<context-param>
<param-name>GBK</param-name>
<param-value>global</param-value>
</context-param>
<context-param> </context-param>可以直接写在web.xml中,无需嵌套任何模块
访问context:
如果想访问或者验证是否配置Context
@Override
public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
System.out.println("context----------------------------------------------");
// 获取配置的Context 对象
ServletContext context = this.getServletContext();
//获取全部参数
Enumeration<String> names1 = context.getInitParameterNames();
//迭代获取参数名
while(names1.hasMoreElements()){
String name = names1.nextElement();
System.out.println(name+":"+context.getInitParameter(name));
}