一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

Servlet(二)

 風(fēng)吹亂了流年 2016-10-15

           Servlet只是一種規(guī)范,滿足我們的軟件開發(fā),還需要其它很多相關(guān)聯(lián)的對象,這里介紹一下:1,ServletConfig,ServeltContext  2,HttpServletRequest    3,Cookie,Session

 

   一,關(guān)于Servlet的兩個對象:


         1,ServletConfig:Javax.servlet.ServletConfig:SUN制定的接口。


        ServletConfig對象是Servlet配置信息對象,Servlet類在web.xml文件中配置的信息會自動被封裝到對應(yīng)的ServletConfig對象中,一個Servlet對象對應(yīng)一個ServletConfig對象。ServletConfig對象的創(chuàng)建時刻和Servlet幾乎在同一時間創(chuàng)建。這個好比,我們每個人都有一份檔案,檔案隨著我們的出生而來,隨著我們的死亡而去,記錄著我們的所有相關(guān)信息。

 

          2,ServletContext:javax.servlet.ServletContextSUN制定的接口。


          ServletContext對象在Tomcat服務(wù)器啟動階段解析web.xml文件的時候被創(chuàng)建,一個webapp對應(yīng)一個ServletContext對象。該對象一旦被創(chuàng)建不會被銷毀,除非Tomcat服務(wù)器關(guān)閉。(web.xml文件和ServletContext對象是對應(yīng)關(guān)系。一個web.xml文件對應(yīng)一個ServletContext)。這個其實(shí)就相當(dāng)于JSP中的九大內(nèi)置對象之一——application


          這個看一下它的幾個方法,還是會經(jīng)常用的,例如一個網(wǎng)站的訪問量等,設(shè)計(jì)到整個項(xiàng)目的變量,所有用戶共享的數(shù)據(jù)需要存儲在ServletContext中:


  1. 獲取上下文初始化參數(shù)的所有name
    1. Enumeration<String> names = application.getInitParameterNames();
  1. 通過上下文初始化參數(shù)的name獲取value
    1. String value = application.getInitParameter(String name);
  1. 獲取絕對路徑
    1. String path = application.getRealPath(“/index.html”); / 開始,代表webapp的根
  1. 存儲數(shù)據(jù)
    1. application.setAttribute(String name,Object obj);
    2. 取數(shù)據(jù)
    3. Object o = application.getAttribute(String name);
  1. 刪除數(shù)據(jù)
    1. application.removeAttribute(String name);

 


     分析總結(jié)一下:


          對于Servlet這三個對象,他們之間的關(guān)系可以看做這張圖的:





     二,HttpServletRequest   ,這個是和HttpServlet關(guān)聯(lián)的一個對象,但是在應(yīng)用中,它在數(shù)據(jù)傳輸方面起著非常重要的作用,所以拿出來總結(jié)一下:

            

           1,javax.servlet.http.HttpServletRequestSUN制定的規(guī)范、接口。

 

           2,簡介:HttpServletRequest我們稱作請求,這個請求對象的創(chuàng)建是Tomcat服務(wù)器完成的。代表一次請求,一次請求對應(yīng)一個request對象。“HTTP請求協(xié)議”中所有的數(shù)據(jù)都被封裝到request對象中,所以我們通過request對象可以獲取用戶提交的所有數(shù)據(jù)。


                3,常用方法:

       獲取請求路徑

  • String path = request.getContextPath();

獲取請求URI

  • String uri = request.getRequestURI();

獲取參數(shù)Map

  • Map<String,String[]> parameterMap = request.getParameterMap();

獲取參數(shù)Map集合的所有key,獲取用戶提交數(shù)據(jù)的所有name

  • Enumeration<String> parameterNames = request.getParameterNames();

通過參數(shù)Map集合的key,獲取參數(shù)Map集合的value(適合于復(fù)選框checkbox

  • String[] parameterValues = request.getParameterValues(String name);

通過參數(shù)Map集合的key獲取參數(shù)Map集合value(一維數(shù)組)的首元素

  • String value = request.getParameter(String name);

獲取客戶端IP地址

  • String ip = request.getRemoteAddr();

轉(zhuǎn)發(fā)(轉(zhuǎn)發(fā)的下一個資源可能是ServletJSP、HTML),轉(zhuǎn)發(fā)是一次請求。

  • request.getRequestDispatcher(資源路徑”).forward(request,response);

     

           分析總結(jié):HttpServletRequest在數(shù)據(jù)傳遞方面非常重要,代表著一次請求。在下邊的Session中,會對比一下request,session,application三者。



       三,CookieSeesion對象:


           1,Cookie:


              a,Cookie的原理:Cookie是在服務(wù)器上創(chuàng)建,發(fā)送到瀏覽器客戶端,并保存在瀏覽器上的一個Java對象;


              bCookie和路徑的關(guān)系:默認(rèn)情況下,Cookie綁定其路徑本身,相同根路徑,子路徑,都可以觸發(fā)Cookie的發(fā)送;綁定情況下,只受固定的路徑進(jìn)行觸發(fā)。

 

             c,Cookie和時間的關(guān)系和保存方式的關(guān)系:默認(rèn)情況下,Cookie會存儲到緩存當(dāng)中,關(guān)閉瀏覽器,其當(dāng)自動消失,當(dāng)設(shè)定時間值>0時,會保存到硬盤上,0為無效的Cookie,<0則相當(dāng)于沒有設(shè)置時間相當(dāng)于默認(rèn)的情況。


            分析總結(jié):也就是在我們?yōu)g覽器上保存了訪問服務(wù)器的一些信息,(這個在我們使用的瀏覽器上應(yīng)該經(jīng)常見到的,例如訪問歷史記錄,幾周內(nèi)自動登錄等功能)方便我們對服務(wù)器的訪問。

         

          2,HttpSession


              a,Session的工作原理:javawebsession是一個存儲在WEB服務(wù)器端的java對象,該對象代表用戶和WEB服務(wù)器的一次會話,通過session對象可以完成數(shù)據(jù)的存取,而放在session對象中的數(shù)據(jù)都是用戶相關(guān)的。系統(tǒng)為每個訪問者都設(shè)立一個獨(dú)立的session對象,用以存取數(shù)據(jù),并且各個訪問者的session對象互不干擾。sessioncookie是緊密相關(guān)的??蛻舳送ㄟ^將cookie中數(shù)據(jù)發(fā)送到服務(wù)器端,服務(wù)器從session中讀取數(shù)據(jù),進(jìn)行數(shù)據(jù)展示,加快速度。例如用戶姓名等信息會存放到session中。


              b,Session的常用方法:

     

  • 獲取session對象(1):request.getSession(true); request.getSession();
    • 獲取session對象,如果獲取不到則新建
  • 獲取session對象(2):request.getSession(false);
    • 獲取session對象,如果獲取不到則返回null
  • session中存儲數(shù)據(jù):session.setAttribute("name",ObjectValue);
  • session中獲取數(shù)據(jù):Object value = session.getAttribute("name");
  • 刪除session中某個數(shù)據(jù):session.removeAttribute("name");
  • 使session失效:session.invalidate();

           


               c,Session對象的超時設(shè)置的三種方式:


  • CATALINA_HOME/conf/servler.xml文件中定義:

             <Context path="/test"

docBase="/test"

defaultSessionTimeOut="3600"

isWARExpanded="true"

isWARValidated="false"

isInvokerEnabled="true"

isWorkDirPersistent="false"/>



  • web.xml中定義:

<session-config>

<session-timeout>30</session-timeout>

</session-config>



  • 在程序中定義:

session.setMaxInactiveInterval(30*60);

 


          分析總結(jié):request,session,aplication,都是用來專門存儲數(shù)據(jù)的,那么他們都是存儲什么數(shù)據(jù)呢?有什么選擇原則么?


               1,request是請求范圍的,只針對一次請求有效,范圍最小,用來存儲一次請求中需要的數(shù)據(jù),消耗內(nèi)存較少,最優(yōu)選擇;

               2,session是用戶級別的,一個用戶一個session,范圍中間,用來存儲和用戶級別有關(guān)的數(shù)據(jù),選擇次之;

              3,application是程序級別的,一個應(yīng)用程序,一個application,用來存儲和整個程序有關(guān)的數(shù)據(jù),消耗內(nèi)存較大,能不用則不用,但是向訪問量等全局?jǐn)?shù)據(jù)還是需要使用的。

 



          綜上為Servlet開發(fā)中用到的一次重要對象,相互之間的關(guān)系,相互之間的區(qū)別,每一個對象的功能,使用,都需要我們熟練掌握,非常重要的。


 

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    国产视频在线一区二区| 亚洲欧美日韩在线看片| 不卡一区二区高清视频| 加勒比东京热拍拍一区二区| 欧美一区二区三区十区| 亚洲免费黄色高清在线观看| 激情少妇一区二区三区| 中国少妇精品偷拍视频| 人妻乱近亲奸中文字幕| 人妻内射在线二区一区| 亚洲免费视频中文字幕在线观看 | 五月激情婷婷丁香六月网| 欧美激情视频一区二区三区| 亚洲欧美日韩精品永久| 亚洲免费黄色高清在线观看| 伊人天堂午夜精品草草网| 日本加勒比中文在线观看| 国产又粗又爽又猛又黄的| 蜜桃av人妻精品一区二区三区| 日韩一区欧美二区国产| 国产日韩欧美专区一区| 久久精品国产第一区二区三区| 国产亚洲系列91精品| 在线免费国产一区二区| 国产精品99一区二区三区| 十八禁日本一区二区三区| 国产精品九九九一区二区 | 亚洲欧美日本成人在线| 又大又紧又硬又湿又爽又猛| 国产乱久久亚洲国产精品| 国产av大片一区二区三区| 伊人久久五月天综合网| 日韩免费av一区二区三区| 日韩偷拍精品一区二区三区 | 日韩免费国产91在线| 国产视频福利一区二区| 国产激情一区二区三区不卡| 日本一区不卡在线观看| 伊人久久五月天综合网| 欧美一区二区三区视频区| 日韩人妻少妇一区二区|