ServletContext及相关案例
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ServletContext及相关案例相关的知识,希望对你有一定的参考价值。
ServletContext对象 (域对象)
定义:WEB容器在启动时,它会为每个WEB运用程序都创建一个对应的ServletContext对象,它代表当前WEB运用。
一个WEB运用对应一个ServletContext对象
一个WEB运用下有多个Servlet程序
所有的Servlet程序都共享同一个ServletContext对象
作用
1、获取WEB运用的全局初始化参数 案例和ServletConfig类似
String getInitParameter(String name)
Enumeration getInitParameters()
配置全局初始化参数 在<Servlet>外面
<Context-param>
<param-name>assasasa</param-name>
<param-value>fdsfdsfsd<param-value>
</Context-param>
2、实现数据共享
void setAttribute(String name,Object object) 存入数据
void removeAttribute(String name) 删除数据
- object getAttribute(String name) 获取数据
3、读取资源文件
InputStream getResourceAsStream(String path) 通过文件地址获取输入流
String getRealPath(String path) 通过文件地址获取文件的绝对磁盘路径
统计网站访问量
package cn.idcast.Servlet; import java.io.IOException; import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class ServletCount extends HttpServlet { /** * 实例被创建,调用init进行初始化 在域对象存入一个变量,初始化为0 */ public void init() throws ServletException { getServletContext().setAttribute("count", 0); } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { /** * 每一次访问,都会执行该方法 获得count的变量,每次访问count都会自增,再存入到域对象中 */ ServletContext sc = getServletContext(); // 因为count 是数字,所以用integer Integer count = (Integer) sc.getAttribute("count"); // ++i是先处理完加法,再做其它运算, i++是处理完相关运算(执行完一条语句后)后自加 sc.setAttribute("count", ++count); // 向页面输出内容 response.setContentType("text/html;charset=UTF-8"); response.getWriter().write("<h3>下次再来</h3>"); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }
package cn.idcast.Servlet; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class ServletShow extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Integer count = (Integer) getServletContext().getAttribute("count"); // 向页面输出内容 response.setContentType("text/html;charset=UTF-8"); response.getWriter().write("<h3>一共访问了" + count + "次</h3>"); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }
以上是关于ServletContext及相关案例的主要内容,如果未能解决你的问题,请参考以下文章