• 06-【servletconfig、servletContext 】


    ServletConfig、ServletContext 

    1、ServletConfig获取web.xml中的配置信息:

    java代码:

     1 @Override
     2 public void init(ServletConfig config) throws ServletException {
     3     String encode = config.getInitParameter("encode");
     4     System.out.println("encode:"+ encode);
     5     //获取参数名
     6     Enumeration<String> names = config.getInitParameterNames();
     7     while(names.hasMoreElements()){
     8         String name = names.nextElement();
     9         String paramValue = config.getInitParameter(name);
    10         System.out.println(name +"----"+ paramValue);
    11     }
    12 }

    Tomcat启动是注意观看加载信息:

    2、ServletContext 
     实现跨浏览器取值,servletContext 在服务器启动web项目的时候创建一个唯一的servletcontext对象,服务器关闭的时候销毁 servletContext的对象,在一个web应用域中,范围最广的对象
    首先要获取ServletContext:this.getServletContext()

    1 //获取servletContext
    2 ServletContext servletContext = this.getServletContext();

    1.获取文件的真实路径:getRealpath()

    1 //获取文件的真实路径
    2 String realPath = servletContext.getRealPath("/index.jsp");
    3 System.out.println("url:"+realPath);

    2.获取 web.xml中的参数:getInitparameter("param-name");
    先配置web.xml中参数

    1 <!-- servletcontext获取 web。xml中 上下文参数 -->
    2 <context-param>
    3     <param-name>info</param-name>
    4     <param-value>200  ok </param-value>
    5 </context-param>

    再去获取

    1 // 获取 web.xml中的参数
    2 String info = servletContext.getInitParameter("info");
    3 System.out.println("获取web.xml中的上下文参数:"+info);

    3.获取文件的数据,文件下载
    4.获取某个文件夹下子文件夹和文件名:getResourcePaths

    1 Set<String> resourcePaths = servletContext.getResourcePaths("/WEB-INF");
    2 Iterator<String> iterator = resourcePaths.iterator();
    3 while(iterator.hasNext()){
    4     String childPath = iterator.next();
    5     System.out.println("WEB-INF目录下的子文件夹和文件名:"+childPath);
    6}

    servletConext对象的创建和作用范围:每个 Java 虚拟机的每个“Web 应用程序”都有一个上下文。
    服务器中每个web应用,拥有一个servletContext的实例,所有的servlet和jsp共享servletContext中的数据。在单个web应用中,所有的servlet和jsp共享servletContext中数据。如果跨浏览器获取数据,跨浏览器使用session获取数据无法获取,可以使用 ServletContext(应用域)的实例存取数据
    request、session、servletContext】作用域和作用域对象:
    request作用域对象:一次请求和响应 ,在一次请求和响应内 所有的servlet和jsp共享request对象的数据 
    session作用域对象:一次会话,可以跨请求取值
    servletcontext作用域对象:一个web应用,可以跨会话(跨浏览器)取值
    // 测试跨浏览器访问值
    servletContext.setAttribute("value", "我是web项目的老大,可以跨浏览器访问值的呢!!!!");
    // 重定向到ok.jsp
    response.sendRedirect(request.getContextPath()+"/ok.jsp");

    代码:
    TestServletContext.java

     1 package boom.servletcontext;
     2 
     3 import java.io.IOException;
     4 import java.util.Iterator;
     5 import java.util.Set;
     6 
     7 import javax.servlet.ServletContext;
     8 import javax.servlet.ServletException;
     9 import javax.servlet.http.HttpServlet;
    10 import javax.servlet.http.HttpServletRequest;
    11 import javax.servlet.http.HttpServletResponse;
    12 
    13 public class TestServletContext extends HttpServlet {
    14     @Override
    15     protected void service(HttpServletRequest request, HttpServletResponse response)
    16             throws ServletException, IOException {
    17         // 获取ServletContext
    18         ServletContext servletContext = this.getServletContext();
    19         //获取文件的真实路径
    20         String realPath = servletContext.getRealPath("/index.jsp");
    21         System.out.println("url:"+realPath);
    22         // 获取 web.xml中的参数
    23         String info = servletContext.getInitParameter("info");
    24         System.out.println("获取web.xml中的上下文参数:"+info);
    25         // 获取某个文件夹下子文件夹和文件名
    26         Set<String> resourcePaths = servletContext.getResourcePaths("/WEB-INF");
    27         Iterator<String> iterator = resourcePaths.iterator();
    28         while(iterator.hasNext()){
    29             String childPath = iterator.next();
    30             System.out.println("WEB-INF目录下的子文件夹和文件名:"+childPath);
    31         }
    32         
    33         // 测试跨浏览器访问值
    34         servletContext.setAttribute("value", "我是web项目的老大,可以跨浏览器访问值的呢!!!!");
    35         // 重定向到ok.jsp
    36         response.sendRedirect(request.getContextPath()+"/ok.jsp");
    37         
    38     }
    39 }
    View Code

  • 相关阅读:
    深入理解计算机系统 第六章 存储器层次结构 第二遍
    深入理解计算机系统 第六章 存储器层次结构
    深入理解计算机系统 第八章 异常控制流 Part2 第二遍
    深入理解计算机系统 第八章 异常控制流 part2
    深入理解计算机系统 第八章 异常控制流 Part1 第二遍
    深入理解计算机系统 第八章 异常控制流 part1
    深入理解计算机系统 第三章 程序的机器级表示 Part2 第二遍
    深入理解计算机系统 第三章 程序的机器级表示 part2
    深入理解计算机系统 第三章 程序的机器级表示 Part1 第二遍
    深入理解计算机系统 第三章 程序的机器级表示 part1
  • 原文地址:https://www.cnblogs.com/cao-yin/p/9892526.html
Copyright © 2020-2023  润新知