---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------详细请查看:http://edu.csdn.net
req.getSession().getServletContext();
req.getServletContext();
这是获得的方法。
@Override
public void init(FilterConfig filterConfig) throws ServletException
{
filterConfig.getServletContext();
}
这个也可以获得。
可以通过这种方式传递一些参数。
<filter>
<filter-name>filter1</filter-name>
<filter-class>Fileter.filter1</filter-class>
<init-param>
<param-name>a</param-name>
<param-value>12</param-value>
</init-param>
</filter>
可以通过这种方式获得配置的参数:
@Override
public void init(FilterConfig filterConfig) throws ServletException
{
// TODO Auto-generated method stub
String v = filterConfig.getInitParameter("a");
System.out.println(v);
} 下面是一个简单的ServletContextListener:
public class contextListener implements ServletContextListener
{
@Override
public void contextDestroyed(ServletContextEvent arg0)
{
System.out.println("contextListener");
}
@Override
public void contextInitialized(ServletContextEvent arg0)
{
System.out.println("contextListener");
}
}
<listener>
<listener-class>listener.contextListener</listener-class>
</listener>
下面是服务器启动时的结果:
修改完之后的打印结果如下,首先可以看到先是servlet先销毁,然后才是监听器
销毁,然后监听器先启动然后才是servlet初始化。也就是说如同一个栈一样,先进后出
。
destroy invoked !!!
contextListener
contextListener
invoked init...
下面是一个servletContextAttribute的一个小程序:
public class attribute implements ServletContextAttributeListener
{
@Override
public void attributeAdded(ServletContextAttributeEvent arg0)
{
System.out.println("add");
System.out.println(arg0.getName() + " : " + arg0.getValue());
}
@Override
public void attributeRemoved(ServletContextAttributeEvent arg0)
{
System.out.println("remove");
System.out.println(arg0.getName() + " : " + arg0.getValue());
}
@Override
public void attributeReplaced(ServletContextAttributeEvent arg0)
{
System.out.println("replaced");
System.out.println(arg0.getName() + " : " + arg0.getValue());
}
}
<listener>
<listener-class>listener.attribute</listener-class>
</listener>
<body>
<%
application.setAttribute("aa", "aa");
application.setAttribute("aa", "bb");
application.setAttribute("aa", "cc");
application.setAttribute("aa", "dd");
application.removeAttribute("aa");
%>
</body>
下面是结果:
add
org.apache.jasper.runtime.JspApplicationContextImpl :
org.apache.jasper.runtime.JspApplicationContextImpl@15b2028
add
aa : aa
replaced
aa : aa
replaced
aa : bb
replaced
aa : cc
remove
aa : dd
首先第一个是自动添加的。
然后下面是我们在jsp中添加的,然后替换时返回的值是被替换的值。移除返回是
移除的值。