当前位置: 首页 > wzjs >正文

公司建设网站哪家好sem是什么显微镜

公司建设网站哪家好,sem是什么显微镜,做网站用什么ide,想自己做网站需要会什么软件文章目录 ServletContext接口简介获取一个ServletContext对象ServletContext接口中的相关方法获取应用域配置参数关于应用域参数的配置要求getContextPath获取项目路径getRealPath获取真实路径log系列方法添加相关日志增删查应用域属性 ServletContext接口简介 ServletContext…

文章目录

  • ServletContext接口简介
  • 获取一个ServletContext对象
  • ServletContext接口中的相关方法
    • 获取应用域配置参数
    • 关于应用域参数的配置要求
    • getContextPath获取项目路径
    • getRealPath获取真实路径
    • log系列方法添加相关日志
    • 增删查应用域属性

ServletContext接口简介

ServletContext接口和Servlet和ServletConfig接口一样, 都是位于jakarta.servlet这个包下的接口, 其中Servlet接口的实现对象, 代表着提供服务的类的对象, ServletConfig接口对应的相应的Servlet对象的一些配置信息(位于web.xml文件下的servlet标签中的信息)

ServletContext 对象, 代表的是应用域 信息,
每一个webapp项目, 有且仅有一个ServletContext对象

关于上面三个接口之间的关系, 我想我们可以通过下面的视图来简单描述一下

在这里插入图片描述

学校与班级的例子:

对于一个Tomcat服务器(Servlet容器)来说, 相当于一个学校, 其中管理许多不同的webapp我们类比为班级, 每个班级的相关规定所对应的对象, 也就是ServletContext对象, 他对班级中的所有对象都生效, 也就是应用域的概念, 班里有许多的同学, 这些对象我们称之为一个个的Servlet对象, 每一个同学都对应一个独属于自己的信息对象, 也就是ServletConfig对象, 通过这样的类比, 我们对这三个接口所对应的对象的体会应该就更深了…


获取一个ServletContext对象

上一节我们说了, ServletConfig接口中有一个getServletContext方法, 这个方法就是返回一个ServletContext对象, 下面是代码信息

		// 获取一个 ServletContext 对象// 第一种方法是通过 this.ServletConfig 获取 ServletConfig 对象, // 然后再通过这个对象中的 getServletContext 获取到...ServletContext servletContext = this.getServletConfig().getServletContext();// 第二种方法是直接通过 this.getServletContext 直接获得(底层和上面的机制一样)ServletContext servletContext1 = this.getServletContext();

我们输出一下关于实现ServletContext接口的类的信息

在这里插入图片描述

其实查看相关源码就可以发现, 这个类其中存在的许多map的结构(好多保存的就是关于全局的映射信息)

ServletContext接口中的相关方法

我们这个章节只简单介绍其中的部分方法, 大多数方法我们下面的章节会介绍

获取应用域配置参数

以下的方法和ServletConfig中的功能是一样的, 我们不再多说

在这里插入图片描述

下面是我们的全局配置, 全局配置对所有的Servlet对象都可见

在这里插入图片描述

执行下面的代码逻辑, 获得web.xml中的关于全局配置的相关信息

 		response.setContentType("text/html");PrintWriter out = response.getWriter();// 获取全局配置的参数(和ServletConfig中的方法意义是一样的)ServletContext application = this.getServletContext();// 获得全局的配置集合名称(name)Enumeration<String> initParameterNames = application.getInitParameterNames();while (initParameterNames.hasMoreElements()) {// 获得nameString initParameterName = initParameterNames.nextElement();// 获得valueString initParameterValue = application.getInitParameter(initParameterName);out.print("<h1>" + initParameterName + " : " + initParameterValue + "</h1>");out.print("<br/>");}

在浏览器上获得信息如下

在这里插入图片描述

关于应用域参数的配置要求

  • 共享 : 最基本的要求, 只有需要共享的内容才建议放到应用域配置文件中
  • 小 & 少 : 只有数据量小的数据才建议放到应用域中配置, 因为应用域参数相当于一种缓存机制, 如果大量的内容都在应用域会增加系统对相关参数的处理负担
  • 不修改 & 很少修改: 因为是全局的变量配置, 就必然存在并发修改的线程安全问题, 所以我们存放在应用域的参数应该不修改或者很少修改以减少并发造成的线程安全问题

getContextPath获取项目路径

在这里插入图片描述

下面是项目配置的路径

在这里插入图片描述

我们使用getContextPath获取项目配置的路径
执行下面的逻辑

		response.setContentType("text/html");PrintWriter out = response.getWriter();// 在idea中, 我们的项目路径是自己配置在 Tomcat 服务器上面的, 所以我们要是想要获取真实的项目路径根目录// 可以通过 getContextPath 方法获得ServletContext application = this.getServletContext();String contextPath = application.getContextPath();out.print("<h1>" + contextPath + "</h1>");

输出结果

在这里插入图片描述

getRealPath获取真实路径

在这里插入图片描述

通过一个方法getRealPath可以查看文件的真实的路径(根节点是web目录)
我们在web目录下创建一个文件如下

在这里插入图片描述

我们执行下面的代码逻辑

		response.setContentType("text/html");PrintWriter out = response.getWriter();// 使用getRealPath获取文件的真实路径(以web文件为根路径)ServletContext application = this.getServletConfig().getServletContext();// 传递一个字符串, 获取这个字符串所对应的项目的真实的路径(以 / 开头代表 web 这个文件的根路径)String realPath = application.getRealPath("/path.html");out.println(realPath);

在浏览器中输出的内容如下

在这里插入图片描述

这个就是我们path.html文件在该计算机上真实存储的文件的路径


log系列方法添加相关日志

在这里插入图片描述

关于日志的存储位置

在先前的章节中, 我们介绍了在 Tomcat服务器的根节点 有一个logs 目录文件

在这里插入图片描述

这个是正常情况下,
我们不使用 idea 开发工具, 使用最原始的开发方式(之前有介绍), 创建的项目生成的日志就会存放到这个位置

但是使用 idea 创建项目的目录文件不在 Tomcat服务器 这些目录下, 实际上是通过某些方式对项目进行托管…(启动Tomcat的时候会有相关路径信息


启动Tomcat

观察日志信息如下, 我们发现这才是真实的日志等项目信息的托管路径

在这里插入图片描述

打开这个地址查看

在这里插入图片描述

观察日志信息分为三种

在这里插入图片描述

  • catalina日志: 在控制台上输出的日志信息(比如我们启动Tomcat 控制台上加载的相关配置信息
  • localhost日志: 通过ServletContext对象的log方法生成的日志信息
  • localhost_access_log: 浏览器访问服务器的相关日志信息

上面我们了解到, 只有localhost日志才是通过log方法 生成的日志, 所以我们执行下面的代码逻辑生成日志 简单测试一下

		// 测试使用 log 方法生成日志信息ServletContext application = this.getServletConfig().getServletContext();application.log("关于日志的测试信息");application.log("关于日志抛出异常的测试信息", new RuntimeException("抛出一个异常"));

在这里插入图片描述

可以查看在指定目录下已经生成了相关的日志信息…

而且, 我们刚才抛出一个异常, 但是Tomcat服务器并没有因为抛出异常而终止…

在这里插入图片描述


增删查应用域属性

在这里插入图片描述

在这里插入图片描述

执行下面的代码逻辑

		response.setContentType("text/html");PrintWriter out = response.getWriter();// 增删改 相关的应用域属性ServletContext application = this.getServletConfig().getServletContext();// 1. 增加应用域属性application.setAttribute("test_name", "huahua");application.setAttribute("test_age", 18);// 2. 获取应用域属性(两种方法)out.print(application.getAttribute("test_name") + " = " +application.getAttribute("test_age"));out.print("<br/>");Enumeration<String> attributeNames = application.getAttributeNames();while (attributeNames.hasMoreElements()) {String attributeName = attributeNames.nextElement();out.print(attributeName + " = " + application.getAttribute(attributeName));out.print("<br/>");}// 3. 删除应用域属性application.removeAttribute("test_name");// 4. 简单测试一下还有没有 test_name 属性Object name = application.getAttribute("test_name");out.print("test_name = " + name);

即可分析出应用域的成分都是什么, 如果在该webapp 的其他类中访问 应用域参数 也会访问成功, 因为应用域的作用范围是全局的…

http://www.dtcms.com/wzjs/439466.html

相关文章:

  • 联通公司做网站吗seo就是搜索引擎广告
  • 微营销网站建设谷歌浏览器下载手机版安卓
  • 网站建设包括什么科目2023年最新时政热点
  • 盐城网站建设与网页制作百度客服电话24小时人工服务热线
  • 海口建设网站理发培训专业学校
  • 网站上咱们做鱼饵电商运营多少钱一个月
  • 无锡企业网站制作营销推广的主要方法
  • 昆山网站建设价格免费站长工具
  • 网站seo优化心得百度推广多少钱一个月
  • 杭州萧山做网站公司网站推广的技术有哪些
  • 大型购物网站建设费用网络营销的主要方法
  • 做试用的网站网络软文名词解释
  • 一家专门做印刷的网站百度广告联盟怎么赚钱
  • 动画设计专业就业前景石家庄百度seo代理
  • 北京市城乡建设委员会网站整站优化网站
  • 电子商务网站设计岗位主要是2023b站免费推广入口游戏
  • 广州白云区网站建设什么是网络营销与直播电商
  • php 网站cookieseo网站诊断
  • 网站收录很慢2023年度最火关键词
  • 私做政府网站什么罪网站排名优化多少钱
  • 大宗商品交易平台招商公司网络优化方案
  • 网站开发 前端 后端 如何结合媒体发布公司
  • 国内外网站建设2017企业邮箱查询
  • 网站seo优化包括哪些方面成都关键词seo推广电话
  • 正规的大连网站建设中国移动有免费的视频app
  • 免费做电脑网站安全优化大师
  • 动态网站的特点2024年阳性最新症状
  • 亿玫网站建设网站推广营销
  • 宁波市网站制作成都seo排名
  • 淘宝客网站下载营销模式方案