JavaWeb開發基礎:Application的知識點簡述

JavaWeb開發基礎:Application的知識點簡述

Application的概念比較簡單,相比cookie(只允許客戶端訪問),session(一個客戶端只能訪問特定的session內存),但是application裏面的內存是可以供所有的客戶端訪問的內容。

比如,我們想要知道某一時段訪問這個服務器的客戶端有多少。

我們常規的做法有:

  • 插入數據庫
  • 寫入文件
  • 寫入application裏面

現在,就簡單說說application這個東西。

context的概念:

context裏面有很多webapplication,每一個application裏面運行很多servlet。

每一個web application運行的環境叫做context,翻譯做中文叫做 上下文。

他的概念上非常抽象。可以稱作web application在內存中運行的表現。

利用application:

application是一塊可以讓所有客戶端訪問的公用的內存,那麼我們可以做一些事情比如記錄訪客數量等不隱私的活動。

代碼示例如下:

import javax.servlet.http.*;
import javax.servlet.*;

import java.io.*;
import java.util.Date;

public class TestServletContext extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest request,
                         HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html;charset=gb2312");
        PrintWriter out = response.getWriter();
        //拿到內存中屬於所有客戶端的內存
        ServletContext application = this.getServletContext();

        Integer accessCount = (Integer) application.getAttribute("accessCount");
        if (accessCount == null) {
            accessCount = new Integer(0);

        } else {
            accessCount = new Integer(accessCount.intValue() + 1);
        }
        // Use setAttribute instead of putValue in version 2.2.
        application.setAttribute("accessCount", accessCount);

        out.println("<html><head><title>Session追蹤</title></head>"
                + "<BODY BGCOLOR=\"#FDF5E6\">\n" + "<H1 ALIGN=\"CENTER\">"
                + accessCount + "\n" + "</TABLE>\n" + "</BODY></HTML>"
                + "</H1>\n");

    }
}
ServletContext application = this.getServletContext();

上面這串代碼,獲取了servlet中的application。這裏直接調用父類httpservlet的方法。

getServletContext()
setServletContext()

這兩個方法和session的使用都差不多。注意鍵值對的名一定是String。

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章