<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      JavaWeb篇_12——ServletContext對(duì)象

      ServletContext對(duì)象

      ServletContext對(duì)象介紹

      ServletContext官方叫Servlet上下文。服務(wù)器會(huì)為每一個(gè)Web應(yīng)用創(chuàng)建一個(gè)ServletContext對(duì)象。這個(gè)對(duì)象全局唯一,而且Web應(yīng)用中的所有Servlet都共享這個(gè)對(duì)象。所以叫全局應(yīng)用程序共享對(duì)象。

      ServletContext對(duì)象的作用

      • 相對(duì)路徑轉(zhuǎn)絕對(duì)路徑
      • 獲取容器的附加信息
      • 讀取配置信息
      • 全局容器
      相對(duì)路徑轉(zhuǎn)絕對(duì)路徑

      context.getRealPath("path")

      該方法可以將一個(gè)相對(duì)路徑轉(zhuǎn)換為絕對(duì)路徑,在文件上傳下載時(shí)需要用到該方法做路徑的轉(zhuǎn)換。

         	//獲取ServletContext對(duì)象
             ServletContext servletContext = this.getServletContext();
             //轉(zhuǎn)換路徑
             String realPath = servletContext.getRealPath("image.PNG");
             File file=new File(realPath);
      
      獲取容器的附加信息

      servletContext.getServerInfo()

      返回Servlet容器的名稱和版本號(hào)

      servletContext.getMajorVersion()

      返回Servlet容器所支持Servlet的主版本號(hào)。

      servletContext.getMinorVersion()

      返回Servlet容器所支持Servlet的副版本號(hào)。

      public class GetBaseInfoServlet extends HttpServlet {
         @Override
         protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
             this.doPost(req, resp);
         }
      
         @Override
         protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
             //獲取ServletContext對(duì)象
             ServletContext servletContext = this.getServletContext();
             //獲取容器的基本信息
             String serverInfo = servletContext.getServerInfo();
             //獲取容器所支持的主版本號(hào)
             int majorVersion = servletContext.getMajorVersion();
             //獲取容器所支持的副版本號(hào)
             int minorVersion = servletContext.getMinorVersion();
             //設(shè)置響應(yīng)編碼
             resp.setContentType("text/plain;charset=utf-8");
             PrintWriter pw = resp.getWriter();
             pw.println("容器的基本信息:"+serverInfo);
             pw.println("容器所支持Servlet的版本號(hào)為:"+majorVersion+"."+minorVersion);
         }
      }
      
      
          <servlet>
              <servlet-name>getBaseInfoServlet</servlet-name>
              <servlet-class>com.java.GetBaseInfoServlet</servlet-class>
          </servlet>
          <servlet-mapping>
              <servlet-name>getBaseInfoServlet</servlet-name>
              <url-pattern>/getBaseInfo.do</url-pattern>
          </servlet-mapping>
      
      獲取web.xml文件中的信息
      <context-param>
        <param-name>key</param-name>
        <param-value>value</param-value>
      </context-param>
      
      

      servletContext.getInitParameter("key")

      該方法可以讀取web.xml文件中標(biāo)簽中的配置信息。

      servletContext.getInitParameterNames()

      該方法可以讀取web.xml文件中所有param-name標(biāo)簽中的值。

          <context-param>
              <param-name>key1</param-name>
              <param-value>java1</param-value>
          </context-param>
      
          <context-param>
              <param-name>key2</param-name>
              <param-value>java2</param-value>
          </context-param>
      
      public class ContextReadInfoServlet extends HttpServlet {
         @Override
         protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
             this.doPost(req, resp);
         }
      
         @Override
         protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
             //獲取ServletContext對(duì)象
             ServletContext servletContext = this.getServletContext();
             //獲取所有的<param-name>的值
             Enumeration<String> initParameterNames = servletContext.getInitParameterNames();
             PrintWriter pw = resp.getWriter();
             while (initParameterNames.hasMoreElements()){
                 String name = initParameterNames.nextElement();
                 String value = servletContext.getInitParameter(name);
                 pw.println("name:"+name+" = value:"+value);
             }
             pw.flush();
             pw.close();
         }
      }
      
      
      	<servlet>
              <servlet-name>contextReadInfoServlet</servlet-name>
              <servlet-class>com.java.ContextReadInfoServlet</servlet-class>
          </servlet>
          <servlet-mapping>
              <servlet-name>contextReadInfoServlet</servlet-name>
              <url-pattern>/readInfo.do</url-pattern>
          </servlet-mapping>
          
      
      全局容器

      servletContext.setAttribute("key",ObjectValue)

      向全局容器中存放數(shù)據(jù)。

      servletContext.getAttribute("key")

      從全局容器中獲取數(shù)據(jù)。

      servletContext.removeAttribute("key")

      根據(jù)key刪除全局容器中的value。

      public class GlobalContainerServlet extends HttpServlet {
         @Override
         protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
             this.doPost(req,resp);
         }
      
         @Override
         protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
             //獲取ServletContext對(duì)象
             ServletContext servletContext = this.getServletContext();
             String s1 = (String) servletContext.getAttribute("key1");
             String s2 = (String)servletContext.getAttribute("key2");
             PrintWriter pw=resp.getWriter();
             pw.println(s1);
             pw.println(s2);
             pw.flush();
             pw.close();
         }
      
         @Override
         public void init() throws ServletException {
             //獲取ServletContext對(duì)象
             ServletContext servletContext = this.getServletContext();
             servletContext.setAttribute("key1","java1");
             servletContext.setAttribute("key2","java2");
         }
      }
      
      

      ServletContext對(duì)象生命周期

      ? 當(dāng)容器啟動(dòng)時(shí)會(huì)創(chuàng)建ServletContext對(duì)象并一直緩存該對(duì)象,直到容器關(guān)閉后該對(duì)象生命周期結(jié)束。ServletContext對(duì)象的生命周期非常長,所以在使用全局容器時(shí)不建議存放業(yè)務(wù)數(shù)據(jù)。

      posted @ 2023-11-15 16:14  Gjq-  閱讀(56)  評(píng)論(0)    收藏  舉報(bào)  來源
      主站蜘蛛池模板: 在线播放深夜精品三级| 成人中文在线| 亚洲日本欧美日韩中文字幕| 九九热在线视频免费播放| 人妻偷拍一区二区三区| 国产精品免费中文字幕| 国产大尺度一区二区视频| 国产精品黄色一区二区三区| 亚洲av二区伊人久久| 国产一级av在线播放| 欧美寡妇xxxx黑人猛交| 亚洲色最新高清AV网站| 国产亚洲精品aaaa片app| 国产乱码精品一区二区上| 日韩精品18禁一区二区| 岛国一区二区三区高清视频| 国产av一区二区午夜福利| 亚洲国产精品综合久久20| 久久国产成人午夜av影院| 精品国产一区二区三区2021| 祁连县| 亚洲中文字幕亚洲中文精| 韩国免费a级毛片久久| 五月综合激情婷婷六月色窝| 亚洲AV日韩精品久久久久| 视频一区视频二区卡通动漫| 精品人妻系列无码天堂| 国产精品va在线观看h| 国产四虎永久免费观看| 国产乱xxxxx97国语对白| 国产成人无码| 在线观看亚洲精品国产| 婷婷久久香蕉五月综合加勒比| 一个人免费观看WWW在线视频| 国产成A人片在线观看视频下载| 和艳妇在厨房好爽在线观看| 国产95在线 | 欧美| 精品国产一区二区三区麻豆| 成人av午夜在线观看| 蜜桃AV抽搐高潮一区二区| 午夜福利高清在线观看|