1 分别单独给某个Servlet 以及 ServletContext 设置配置信息并获取,截图展示结果
@WebServlet(name = "configServlet", urlPatterns = "/config",
initParams = {@WebInitParam(name = "username", value = "admin"),
@WebInitParam(name = "password", value = "000000")
}
)
public class ConfigServlet implements Servlet {
@Override
public void init(ServletConfig servletConfig) throws ServletException {
//获取所有配置信息集合
Enumeration<String> initParameterNames = servletConfig.getInitParameterNames();
while (initParameterNames.hasMoreElements()) {
String s = initParameterNames.nextElement();
System.out.println(s + "对应的值:" + servletConfig.getInitParameter(s));
}
//获取servletContext对象
ServletContext servletContext = servletConfig.getServletContext();
//获取相对路径
String contextPath = servletContext.getContextPath();
System.out.println("获取相对路径"+contextPath);
//获取绝对路径
String realPath = servletContext.getRealPath("/");
System.out.println("获取绝对路径:"+realPath);
//设置属性信息
servletContext.setAttribute("password","1234");
//根据属性名 获取属性信息
Object password = servletContext.getAttribute("password");
System.out.println(password);//1234
//根据属性名 删除属性
servletContext.removeAttribute("password");
password = servletContext.getAttribute("password");
System.out.println(password);//null
}
@Override
public ServletConfig getServletConfig() {
return null;
}
@Override
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
}
@Override
public String getServletInfo() {
return null;
}
@Override
public void destroy() {
}
}
ServletContext
xml配置文件
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<servlet>
<servlet-name>contextServlet</servlet-name>
<servlet-class>com.ak.web.ContextServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>contextServlet</servlet-name>
<url-pattern>/context</url-pattern>
</servlet-mapping>
<!-- 配置ServletContext 参数-->
<context-param>
<param-name>username</param-name>
<param-value>root</param-value>
</context-param>
<context-param>
<param-name>password</param-name>
<param-value>000000</param-value>
</context-param>
public class ContextServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//获取配置信息
ServletContext context = getServletConfig().getServletContext();
Enumeration<String> initParameterNames = context.getInitParameterNames();
while (initParameterNames.hasMoreElements()){
String s = initParameterNames.nextElement();
System.out.println(s+"对应的值:"+context.getInitParameter(s));
}
//获取 项目路径
String contextPath = context.getContextPath();
System.out.println("通过上下文 获取路径:"+contextPath);
//获取 绝对路径
String realPath = context.getRealPath("/");
System.out.println("获取绝对路径:"+realPath);
//使用ServletContext 设置属性信息
context.setAttribute("param1","value1");
//获取配置信息
Object param1 = context.getAttribute("param1");
System.out.println("根据属性名获取属性值:"+param1);//value1
//根据属性名 删除属性
context.removeAttribute("param1");
param1 = context.getAttribute("param1");
System.out.println("根据属性名获取属性值:"+param1);//null
}
}