码迷,mamicode.com
首页 > 其他好文 > 详细

ServletContext对象

时间:2019-09-13 15:28:08      阅读:81      评论:0      收藏:0      [点我收藏+]

标签:html   问题   ring   服务器   int   nbsp   toc   存在   代码   

Servlet三大域对象的应用 request、session、application(ServletContext)

ServletContext是一个全局的储存信息的空间,服务器开始就存在,服务器关闭才释放。

 

request,一个用户可有多个;session,一个用户一个;而servletContext,所有用户共用一个。所以,为了节省空间,提高效率,ServletContext中,要放必须的、重要的、所有用户需要共享的线程又是安全的一些信息。

 

写网页访客数的时候,要求刷新的时候数字不会改变,就用到session了,application为所有用户共享,session单用户;application保存计数值,

当session新建时加1.

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>  
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
<html>  
  <head>     
    <title>My JSP index.jsp starting page</title>  
  </head>  
    
  <body>  
    <%!  
        synchronized void count() {  
            ServletContext application = getServletContext();  
            Integer num = (Integer)application.getAttribute("num");  
            if (null == num) {  
                num = new Integer(1);  
                application.setAttribute("num", num);  
            } else {  
                num = new Integer(1 + num);  
                application.setAttribute("num", num);  
            }  
        }  
     %>  
       
     <%  
         if (session.isNew()) { //为了避免用户的刷新的问题  
             count();  
         }  
         Integer tNum = (Integer)application.getAttribute("num");  
      %>  
       
     欢迎访问,您是第<%=tNum %>个访问的用户!  
  </body>  
</html>  

要把访客数用图片来显示,就把tNum拆分一下,代码如下(图片放在WebContent的visit文件夹内)

    <%
        Integer count = tNum;

        out.print("您是第");
        for (char ch : count.toString().toCharArray()) {
            out.println("<img src=‘visit/" + Character.getNumericValue(ch) + ".png‘ width=‘25px‘ height=‘25px‘/>");
        }
        out.print("位访客");
    %>

 

ServletContext对象

标签:html   问题   ring   服务器   int   nbsp   toc   存在   代码   

原文地址:https://www.cnblogs.com/1starfish/p/11516709.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!