1 Web应用共享数据区ServletContext接口
ServletContext接口表示一个web应用的上下文。可以想象成一个web一个能用的共享数据区域,该区域保存整个web共享数据。
1.1 Servlet容器何时创建ServeltContext接口实现类
当一个web应用启动的时候,就会创建该ServletContext接口的实现类。我们可以在根据需求,读写ServletContext这个web共享区的数据,那么如何获得ServletContext这个实例呢?下面提供了两种方法
1.2 如何获得ServletContext接口实例
方法1:
可以通过ServletConfig接口的getServletContext()方法获得
方法2:
通过GenericServlet抽象类的getServletContext()方法获得,不过这个方法其实也是调用了ServletConfig的getServletContext()方法
在GenericServlet.java中
Java代码
public ServletConfig getServletConfig() {
return config;
}
public ServletContext getServletContext() {
return getServletConfig().getServletContext();
}
public ServletConfig getServletConfig() {
return config;
}
public ServletContext getServletContext() {
return getServletConfig().getServletContext();
}1.3 一个计数器实例
Java代码
package servletcontext;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class CounterServlet extends HttpServlet
{
public void doGet(HttpServletRequest request, HttpServletResponse response){
try
{
response.setCharacterEncoding("gb2312");
//获取ServletContext接口的实现类
ServletContext sc = super.getServletContext();
Integer count = (Integer) sc.getAttribute("count");
if(null == count){
count = new Integer(1);
}else{
count = new Integer(count.intValue()+1);
}
sc.setAttribute("count", count);
PrintWriter out = response.getWriter();
out.print("<body>");
out.print("你登录的次数是:"+count.intValue());
out.print("</body>");
out.close();
} catch (IOException e)
{
e.printStackTrace();
}
}
public void doPost(HttpServletRequest request, HttpServletResponse response){
doGet(request,response);
}
}
package servletcontext;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class CounterServlet extends HttpServlet
{
public void doGet(HttpServletRequest request, HttpServletResponse response){
try
{
response.setCharacterEncoding("gb2312");
//获取ServletContext接口的实现类
ServletContext sc = super.getServletContext();
Integer count = (Integer) sc.getAttribute("count");
if(null == count){
count = new Integer(1);
}else{
count = new Integer(count.intValue()+1);
}
sc.setAttribute("count", count);
PrintWriter out = response.getWriter();
out.print("<body>");
out.print("你登录的次数是:"+count.intValue());
out.print("</body>");
out.close();
} catch (IOException e)
{
e.printStackTrace();
}
}
public void doPost(HttpServletRequest request, HttpServletResponse response){
doGet(request,response);
}
}
Xml代码
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<servlet>
<servlet-name>CountServlet</servlet-name>
<servlet-class>servletcontext.CounterServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>CountServlet</servlet-name>
<url-pattern>/count</url-pattern>
</servlet-mapping>
</web-app>
分享到:
相关推荐
这是servlet中ServletContext的应用实例,主要就是添加属性和读取属性。
ServletContext与ServletConfig关系
ServletContext读取web应用中的资源文件
Ssh获取ServletContext 只需要更改struts-config action中的type就可以了ru :type="com.uo.spring.SpringDelegatingActionProxy" 大家有什么疑问可以直接去我的blog查看...《[正解]Ssh获取ServletContext》
对servletContext的学习,并使用实例进行了实战。完成了一个登录和统计登录人数的功能。
超全面javaweb教程28天第9天_14_获取ServletContext对象
注意:每个servlet有一个ServletConfig,每个Web应用有一个ServletContext.要把初始化参数认为是部署时常量,可用在运行时得到这些初始化参数,但不能设置初始化参数,根本没有setInitParameter().如果修改XML来改变...
quartz servletcontext quartz servletcontext配置资料quartz servletcontext配置资料
NULL 博文链接:https://onway417.iteye.com/blog/2194540
博客地址:...存放数据指的是这三个对象在工程中setAttribute(),removeAttribute()的时候,我们的监听器就会知道,然后在对应的方法中执行相应的操作。
Servlet生命周期,及servlet相关知识点的总结。
ServletContext官方叫servlet上下文。服务器会为每一个工程创建一个对象,这个对象就是ServletContext对象。这个对象全局唯一,而且工程内部的所有servlet都共享这个对象。所以叫全局应用程序共享对象。
Application对象(ServletContext对象).pptx
很清楚的讲解了ServletContext和ServletConfig,不光有理论上的讲解,还有例子。
介绍 ServletContext对象的一些重要方法的示例代码
超全面javaweb教程28天第9天_13_ServletContext概述
超全面javaweb教程28天第9天_15_演示ServletContext
超全面javaweb教程28天第9天_17_ServletContext获取资源相关方法
超全面javaweb教程28天第9天_16_ServletContext获取公共的初始化参数