• 06_ServletContext


    ServletContext对象:

    1.概念:代表整个web应用,可以和程序的容器(服务器)来通信。

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

    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)

    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对象范围:所有用户所有请求的数据

    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);
        }
    }
    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. 获取文件的真实(服务器)路径
        1. 方法:String getRealPath(String path)
          String b = context.getRealPath("/b.txt");//web目录下资源访问
          System.out.println(b);

          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);

    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);
        }
    }
  • 相关阅读:
    [C/C++]Fibonacci numbers
    使用VS调试时,被调试进程如何被断下来的。
    Windows下动态加载可执行代码原理简述
    发个JD, 求人被我卖
    使用Windbg知道程序运行时的命令行参数.
    How to debug usermode process using kernelmode windbg in Win7
    This is a test
    多核时代,还在使用任务管理器来看程序的性能吗?
    六种异常处理的陋习
    巧记Java访问控制描述符(Access Control Modifier)public, private, protected
  • 原文地址:https://www.cnblogs.com/newway644617704/p/14770874.html
Copyright © 2020-2023  润新知