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中
public ServletConfig getServletConfig() {
return config;
}
public ServletContext getServletContext() {
return getServletConfig().getServletContext();
}
1.3 一个计数器实例
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 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>
分享到:
相关推荐
本篇文章是对javax.servlet.Servlet,ServletContext接口进行了纤细的分析介绍,需要的朋友参考下
这是servlet中ServletContext的应用实例,主要就是添加属性和读取属性。
NULL 博文链接:https://onway417.iteye.com/blog/2194540
超全面javaweb教程28天第9天_13_ServletContext概述
javax.servlet.ServletContext.class javax.servlet.RequestDispatcher.class javax.servlet.Servlet.class javax.servlet.ServletException.class javax.servlet.ServletRequest.class javax.servlet.Servlet...
超全面javaweb教程28天第9天_17_ServletContext获取资源相关方法
超全面javaweb教程28天第9天_16_ServletContext获取公共的初始化参数
javax.servlet—api中问,英文 chm
getAttribute(String) - Method in interface javax.servlet.ServletContext Returns the servlet container attribute with the given name, or null if there is no attribute by that name. getAttribute...
超全面javaweb教程28天第9天_14_获取ServletContext对象
主要介绍了servlet之ServletContext简介,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
javax.servlet.ServletContext javax.servlet.ServletRequest javax.servlet.http.HttpUtils javax.servlet.ServletResponse javax.servlet.ServletException javax.servlet.http.HttpServlet javax.servlet....
(3)由于一个WEB应用中的所有Servlet共享同一个ServletContext对象,因此Servlet对象之间可以通过 ServletContext对象来实现通讯。ServletContext对象通常也被称之为context域对象。 (4)context域对象:域在中文...
ServletContext读取web应用中的资源文件
Servlet处理请求、多线程和映射、Servlet的卸载、Servlet映射技术、通过类名调用Servlet、HTTP会话、建立Session、Request Dispatcher接口、Servlet接口、ServletConfig接口、ServletContext接口、SingleThreadModel...
认识Servlet 编写Servlet Servlet生命周期 Servlet与JSP内置对象 设置欢迎页面 在Servlet中读取参数 在Servlet内实现跳转 ServletContext高级功能 使用过滤器 异常处理
3.1 Web应用的结构和部署 3.2 部署描述文件 3.3 ServletConfig接口 3.4 ServletContext接口 3.5 Servlet的多线程问题 3.6 一个综合实例
ServletContext代码,开发工具 Myeclipse
ServletContext与ServletConfig关系