zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    leetcode_question_67 Add Binary
    几种常用控件的使用方法
    JavaBean讲解 规范
    [置顶] JDK-CountDownLatch-实例、源码和模拟实现
    恋人分手后需要做的不是挽回而是二次吸引
    leetcode_question_70 Climbing Stairs
    偶然碰到的Win7 64位下CHM 的问题解决
    FTP中各文件目录的说明
    深入理解line-height与vertical-align(1)
    行内元素和块级元素
  • 原文地址:https://www.cnblogs.com/cao-yin/p/9892526.html
Copyright © 2011-2022 走看看