zoukankan      html  css  js  c++  java
  • 08ServletContext

    1. 概念

    代表整个web应用,可以和程序的容器(服务器)来通信

    2. 获取

    1. 通过request对象获取
      request.getServletContext();
    2. 通过HttpServlet获取
      this.getServletContext();

    package cn.itcast.web.servletcontext;
    
    import javax.servlet.ServletContext;
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.IOException;
    
    @WebServlet("/servletContextDemo1")
    public class ServletContextDemo1 extends HttpServlet {
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            /*
    
                ServletContext对象获取:
                    1. 通过request对象获取
                        request.getServletContext();
                    2. 通过HttpServlet获取
                        this.getServletContext();
             */
            
            //1. 通过request对象获取
            ServletContext context1 = request.getServletContext();
            //2. 通过HttpServlet获取
            ServletContext context2 = this.getServletContext();
    
            System.out.println(context1);
            System.out.println(context2);
    
            System.out.println(context1 == context2);//true
    
    
        }
    
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            this.doPost(request,response);
        }
    }

    3. 功能

    1. 获取MIME类型:
      MIME类型:在互联网通信过程中定义的一种文件数据类型
      格式: 大类型/小类型   text/html        image/jpeg

      获取:String getMimeType(String file)  

    package cn.itcast.web.servletcontext;
    
    import javax.servlet.ServletContext;
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.IOException;
    
    @WebServlet("/servletContextDemo2")
    public class ServletContextDemo2 extends HttpServlet {
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            /*
    
                ServletContext功能:
                   1. 获取MIME类型:
                    * MIME类型:在互联网通信过程中定义的一种文件数据类型
                        * 格式: 大类型/小类型   text/html        image/jpeg
    
                    * 获取:String getMimeType(String file)
                    2. 域对象:共享数据
                    3. 获取文件的真实(服务器)路径
             */
            
            //2. 通过HttpServlet获取
            ServletContext context = this.getServletContext();
    
            //3. 定义文件名称
            String filename = "a.jpg";//image/jpeg
    
    
            //4.获取MIME类型
            String mimeType = context.getMimeType(filename);
            System.out.println(mimeType);
    
    
        }
    
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            this.doPost(request,response);
        }
    }


    2. 域对象:共享数据
      1. setAttribute(String name,Object value)
      2. getAttribute(String name)
      3. removeAttribute(String name)

      ServletContext对象范围:所有用户所有请求的数据

    package cn.itcast.web.servletcontext;
    
    import javax.servlet.ServletContext;
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.IOException;
    
    @WebServlet("/servletContextDemo3")
    public class ServletContextDemo3 extends HttpServlet {
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            /*
    
                ServletContext功能:
                   1. 获取MIME类型:
    
                    2. 域对象:共享数据
                    3. 获取文件的真实(服务器)路径
             */
            
            //2. 通过HttpServlet获取
            ServletContext context = this.getServletContext();
    
            //设置数据
            context.setAttribute("msg","haha");
    
    
        }
    
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            this.doPost(request,response);
        }
    }
    package cn.itcast.web.servletcontext;
    
    import javax.servlet.ServletContext;
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.IOException;
    
    @WebServlet("/servletContextDemo4")
    public class ServletContextDemo4 extends HttpServlet {
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            /*
    
                ServletContext功能:
                   1. 获取MIME类型:
    
                    2. 域对象:共享数据
                    3. 获取文件的真实(服务器)路径
             */
            
            //2. 通过HttpServlet获取
            ServletContext context = this.getServletContext();
    
            //获取数据
            Object msg = context.getAttribute("msg");
            System.out.println(msg);
    
        }
    
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            this.doPost(request,response);
        }
    }

     3. 获取文件的真实(服务器)路径
                方法:String getRealPath(String path)  

    package cn.itcast.web.servletcontext;
    
    import javax.servlet.ServletContext;
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.File;
    import java.io.IOException;
    
    @WebServlet("/servletContextDemo5")
    public class ServletContextDemo5 extends HttpServlet {
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            /*
    
                ServletContext功能:
                   1. 获取MIME类型:
    
                    2. 域对象:共享数据
                    3. 获取文件的真实(服务器)路径
             */
            
            // 通过HttpServlet获取
            ServletContext context = this.getServletContext();
    
    
            // 获取文件的服务器路径
            String b = context.getRealPath("/b.txt");//web目录下资源访问
            System.out.println(b);
           // File file = new File(realPath);
    
            String c = context.getRealPath("/WEB-INF/c.txt");//WEB-INF目录下的资源访问
            System.out.println(c);
    
            String a = context.getRealPath("/WEB-INF/classes/a.txt");//src目录下的资源访问
            System.out.println(a);
    
    
        }
    
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            this.doPost(request,response);
        }
    }

         

  • 相关阅读:
    Codeforces461E Appleman and a Game 做题心得
    关于贪心问题的处理
    各种容斥 笔记
    博弈论 笔记
    家庭多个路由器组网方案(AP+AC)
    21.06.06 训练赛
    Redirect...
    Web Api实践系列(三)route特性使用
    《Red Tuner》隐私政策
    前缀和-1915. 最美子字符串的数目
  • 原文地址:https://www.cnblogs.com/xinmomoyan/p/11808244.html
Copyright © 2011-2022 走看看