JAVA中級(十)request(3)域對象,一次請求中的數據共享

request是一個域對象,也就是說是一個能讓servlet共享數據的對象。它的範圍是一次請求及其轉發。也就是一個servlet接收到一個請求並將其轉發到其它servlet.這些servlet可以共享這個request的數據。所以它的範圍是比ServletContext小的。

1,request域對象

範圍如下圖所示
在這裏插入圖片描述
request是域對象是一個存儲數據的對象。所以需要知道如何往裏面增刪改查。
域對象通用的存儲數據方法
setAttribute(String,Objcet);//新增或修改
getAttribute(String)//根據存的key獲取
removeAttribute(String)//根據key刪除

看一下代碼,從servletDemo1存儲一個name=zhangsan,將它放到request域中,在轉發request給servletDemo2讓它來獲取這個name

public class ServletDemo1 extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
       //request設置數據
        request.setAttribute("name","zhangsan");
       request.getRequestDispatcher("/servletDemo2").forward(request,response);
    }
}

public class ServletDemo2 extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //request獲取數據name,如果能輸出對應的name說明共享成功
        String name = (String)request.getAttribute("name");
        System.out.println("servletDemo2:"+name);
        //request刪除數據name
        request.removeAttribute("name");
        String name1 = (String)request.getAttribute("name");
        System.out.println("servletDemo2,:"+name1);
    }
}

啓動tomcat併發送請求執行servletDemo1,我的請求路徑
http://localhost:8080/qjq/servletDemo1
回車執行,結果如下:
在這裏插入圖片描述
輸出了zhangsan說明共享數據成功,後面輸出了null說明刪除完畢

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