Servlet之ServletContext
来源:互联网 发布:埃迪 琼斯数据 编辑:程序博客网 时间:2024/04/29 02:12
1)setAttribute(String name,Object object):把一个对象和一个属性名绑定,将这个对象存储在ServletContext中;
2)getAttribute(String name):根据指定的属性名返回所绑定的对象;
3)removeAttribute(String name):根据给定的属性名从ServletContext中删除相应的操作;
4)getAttributeNames():返回Enumeration对象,它包含了存储在ServletContext对象中的所有属性名。
下面通过一个例子,说明ServletContext和Web应用的关系。
package mypack;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
public class CounterServlet extends HttpServlet
{
public static final String CONTENT_TYPE="text/html;charset=GB2312";
public void init(ServletConfig config)throws ServletException{
super.init(config);
}
public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{
doPost(request,response);
}
public void doPost(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{
//获得ServletContext的引用
ServletContext context=getServletContext();
//从ServletContext读取count属性
Integer count=(Integer)context.getAttribute("count");
//如果count属性还没有设置,那么创建count属性,初始值为0
//one and add it to the ServletContext
if(count==null){
count=new Integer(0);
context.setAttribute("count",new Integer(0));
}
response.setContentType(CONTENT_TYPE);
PrintWriter out=response.getWriter();
out.println("<HTML>");
out.println("<HEAD><TITLE>点击计数</TITLE></HEAD>");
out.println("<BODY>");
//输出当前的count属性值
out.println("<P>当前计数是:"+count+"</P>");
out.println("</BODY></HTML>");
//创建新的count对象,其值增1
count=new Integer(count.intValue()+1);
//将新的count属性存储到ServletContent中
context.setAttribute("count",count);
}
public void destroy(){
}
}
在web.xml中为CounterServlet类加上<servlet>和<servlet-mapping>元素
<servlet>
<servlet-name>CounterServlet</servlet-name>
<servlet-class>mypack.CounterServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>CounterServlet</servlet-name>
<url-pattern>/counter</url-pattern>
</servlet-mapping>
测试通过。
1)刷新页面,count加1;
2)关闭浏览器,再打开新浏览器还是在原来基础上加1(即便由IE换成Opera);
3)如果重启Tomcat服务器,再访问CounterServlet,则count又初始化为0;
4)复制helloapp应用,改为helloapp1,再发布helloapp1,通过不同的浏览器窗口分别访问helloapp及helloapp1中的CounterServlet,发现这两个Web应用拥有各自独立的count属性。
即ServletContext对象只在Web应用被关闭时才被销毁;不同的Web应用,ServletContext各自独立存在。
- Servlet之ServletContext
- Servlet API 之ServletContext
- Servlet之ServletContext总结
- servlet之ServletContext
- servlet之ServletContext总结
- Servlet之ServletConfig和ServletContext
- Servlet之ServletContext、Session、Cookie
- Servlet学习之八ServletContext
- Servlet之ServletContext请求转发
- 笔记之servlet的ServletContext对象(ServletContext的应用)
- Servlet实现计数器之ServletContext方法
- Servlet技术之ServletContext接口(学习笔记)
- Servlet之ServletConfig和ServletContext的探索
- Java Servlet Specification 3.0 之 ServletContext
- Servlet之request请求、ServletContext、ServletConfig
- Servlet之ServletConfig与ServletContext对象
- Servlet之ServletContext创建对象和作用
- Servlet容器模型之ServletConfig、ServletContext
- 结构体的sizeof
- .NET源程序在IIS下调试的一个问题
- 消除内存泄漏
- SOA必须建立在XML型数据库上
- 在Eclipse中使用Hibernate
- Servlet之ServletContext
- JSP网站开发技术两种模式介绍
- The way to describe bug.
- 从零开始创建基于struts1.2 + Hibernate3.0 Web工程(第一部分)
- 儿子出生了
- 从零开始创建基于struts1.2 + Hibernate3.0 Web工程(第二部分)
- repeater,panel,StrLength(string Str),Calendar,AdRotator
- JDBC驱动器简介及比较
- 超级巡警熊猫烧香之金猪报喜专杀工具v1.8下载