spring集成web环境(配置全局参数、web.xml配置监听器)

2023-11-09

配置全局参数

全局参数主要是为了解耦。
位置:web / WEB-INF / web.xml

<!--    全局参数-->
    <context-param>
        <param-name>contextConfigLocation</param-name>(参数标识)
        <param-value> classpath:applicationContext.xml</param-value>(文件映射,映射的是一个spring配置文件,给监听器联系其创建上下文对象)
    </context-param>

配置监听器

监听器listener
配置的目的是为了在业务请求时,监听到后创建ApplicationContext对象。

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

public class ContextLoaderListener implements ServletContextListener {
    @Override
    public void contextInitialized(ServletContextEvent servletContextEvent) {
        ServletContext servletContext=servletContextEvent.getServletContext();//获取域对象
//servletContext对象可以获取全局参数
        String contextConfigLocation = servletContext.getInitParameter("contextConfigLocation");
        
        //根据全局参数映射的spring配置文件(applicationContext.xml)创建到上下文对象
        ApplicationContext app=new ClassPathXmlApplicationContext(contextConfigLocation);
        
        //将上下文对象存储到ServletContext域中
        servletContext.setAttribute("app",app);//存进域对象
        System.out.println("容器创建完毕");
    }

    @Override
    public void contextDestroyed(ServletContextEvent servletContextEvent) {

    }
}

将监听器配置到xml文件中
位置:web / WEB-INF / web.xml

位置:web / WEB-INF / web.xml

   <listener>
       <listener-class>spring.mvc.listener.ContextLoaderListener</listener-class>
   </listener>
   
ps:  <listener-class>映射的地址是手动编写的监听器的全限定名,如果是自动的则应该配置如下:

 <!--自动-->
       <listener>
           <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
       </listener>

web层

public class uServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        ServletContext servletContext=this.getServletContext();//获取监听器创建的servletContext

        //用封装好的工具,传入servletContext根据其获得上下文
        WebApplicationContext app = WebApplicationContextUtils.getWebApplicationContext(servletContext);

省略xxx业务-------------------
    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    }
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

spring集成web环境(配置全局参数、web.xml配置监听器) 的相关文章

  • APP自动化测试-11.webview技术原理

    APP自动化测试 11 webview技术原理 文章目录 APP自动化测试 11 webview技术原理 前言 一 获取webview 二 根据webview启动chromedriver 总结 前言 根据日志 简单记录webview运行的机
  • Caffe 源码阅读笔记 [基本模块] Syncedmem & Blob

    syncedmem syncedmem管理一段大小为size的内存 这段内存可以从GPU或者主机内存分配 syncedmem负责GPU和主机内存之间的同步 如果数据是在GPU里而要从主机内存取出 syncedmem会先把数据从GPU内存me
  • 服务器怎么设置无线网络共享,无线路由器怎么设置usb网络共享管理

    众所周知 路由器长久以来一直是计算机网络的核心设备 其重要性不可低估 那么你知道无线路由器怎么设置usb网络共享管理吗 下面是学习啦小编整理的一些关于无线路由器设置usb网络共享管理的相关资料 供你参考 无线路由器设置usb网络共享管理的方
  • 实现一个简单的二叉树

    实现一个简单的二叉树 语言 Objective C 整体上还是挺简单的 所以就直接上代码了 1 二叉树 由 节点 和 枝干 组成 且每个节点最多只有两个子节点的树形数据结构 2 代码实现 2 1 节点类 创建一个简单的节点类 这个类可以保存

随机推荐

  • Chatopera王海良:大厂螺丝钉还是开源极客?年轻技术人如何选择?

    他因为追求创新毅然放弃了大厂稳定的工作 参与开源并成立了开源商业公司 他相信 开源可以极大地助力开发者成长 那么 对于年轻开发者而言 如何通过参与开源实现跳跃式发展 本期 开源访谈录 邀请到了Chatopera CEO王海良来分享他的见解
  • 手把手教会你用Python爬虫爬取网页数据!!

    其实在当今社会 网络上充斥着大量有用的数据 我们只需要耐心的观察 再加上一些技术手段 就可以获取到大量的有价值数据 这里的 技术手段 就是网络爬虫 今天就给大家分享一篇爬虫基础知识和入门教程 什么是爬虫 爬虫就是自动获取网页内容的程序 例如
  • IAR编译错误

    1 错误提示 Error e104 Failed to fit all segments into specified ranges Problem discovered in segment XDATA N Unable to place
  • Linux命令·cp

    cp命令用来复制文件或者目录 是Linux系统中最常用的命令之一 一般情况下 shell会设置一个别名 在命令行下复制文件时 如果目标文件已经存在 就会询问是否覆盖 不管你是否使用 i参数 但是如果是在shell脚本中执行cp时 没有 i参
  • 机器学习中最基本的概念之一:数据集、样本、特征和标签

    本文重点 数据集 样本 特征和标签是机器学习中的重要概念 这些概念在机器学习算法的设计和实现过程中起着至关重要的作用 在本文中 我们将对这些概念进行详细的讲解 以便更好地理解机器学习算法的基本原理和应用 一 数据集 数据集是机器学习中最基本
  • python3 requests https 请求 报 SSLContext 相关递归错误

    一 错误信息 2019 11 19 15 14 40 Provider before requests post 2019 11 19 15 14 41 error infoTraceback most recent call last F
  • iOS开发捷径学习(一)

    结合 iOS开发捷径学习 这本书 分几章系统梳理Interface Builder相关知识 整体现状 iOS界面的开发 主要是采用纯代码和Interface Builder来进行 苹果开发初期面临很少的可用内存 纯代码进行UI的绘制自己控制
  • wordpress开启子目录多站点模式并给子站绑定独立域名

    wordpress开启子目录多站点模式并 wordpress开启多站点模式 多站点模式即是使用一套wordpress程序就可以搭建多个独立 互不干扰的wordpress站点 各站点之间的用户 文章 附件等都互不干预 wordpress的多站
  • 论文阅读-DFN: Dynamic Filter Networks-动态卷积网络

    一 论文信息 论文名称 Dynamic Filter Networks 作者团队 NIPS2016 二 动机与创新 卷积层是通过将上一层的特征映射与一组过滤器进行卷积计算输出特征映射 滤波器是卷积层的唯一参数 通常用反向传播算法在训练中学习
  • 天地图专题二:在天地图上循环显示标注点以及悬停显示信息窗口

    上一文章讲了如何加载天地图 其实是很简单的 只要看一下天地图官方的代码示例就能搞出来 只是为了保持文章系列的完整性 所以才写了出来 官方api http api tianditu com api new webIndex html 这一文章
  • 我的笔记本电脑键盘左ctrl键和fn键功能互换了

    进入BIOS设置 Device Option中将Swap Fn Ctrl Key的属性设为Disabled
  • 轻量级域名解析服务器之dnsmasq

    1 dnsmasq的简介 dnsmasq提供DNS缓存和DHCP服务功能 作为域名解析服务器 DNS dnsmasq可以通过缓存DNS请求来提高对访问过的网址的连接速度 作为DHCP服务器 dnsmasq可以用于为局域网电脑分配内网ip地址
  • Python基础3.3--for循环

    首先来说下for循环 for循环是python语言的循环控制语句 for循环可以遍历任何序列的项目 包括序列集合或可迭代对象 如列表 字符串 元组 字典等 看下基本语法 for 变量 in 序列 变量为任意值 序列为列表 元组 字符串等 子
  • Go For Web:一篇文章带你用 Go 搭建一个最简单的 Web 服务、了解 Golang 运行 web 的原理

    前言 本文作为解决如何通过 Golang 来编写 Web 应用这个问题的前瞻 对 Golang 中的 Web 基础部分进行一个简单的介绍 目前 Go 拥有成熟的 Http 处理包 所以我们去编写一个做任何事情的动态 Web 程序应该是很轻松
  • Java中的float浮点数的二进制存储及运算

    float在内存中的数据格式及其转byte数组原理及转换过程 float在计算机的存储 四个字节 共有32位 以 符号 移位数 底数 的方式存储 三者的计算 第一位是符号 往后8位是 移位数 再往后23位是 底数 32位的格式排列就是 AB
  • SpringBoot使用 @Async实现优雅的异步调用

    点击关注 Java基基 2022 04 09 11 50 收录于话题 Java基基908个 点击上方 Java基基 选择 设为星标 做积极的人 而不是积极废人 每天 14 00 更新文章 每天掉亿点点头发 源码精品专栏 原创 Java 20
  • SQL2000 函数递归显示路径

    Author htl258 Tony Date 2011 05 19 17 25 59 Version Microsoft SQL Server 2008 RTM 10 0 1600 22 Intel X86 Jul 9 2008 14 4
  • git学习记录4-----更改提交操作

    git学习记录4 更改提交操作 回溯历史版本 回溯到feature A之前 创建fix B 推进至feature A后的状态 合并fix B 查看冲突部分并将其解决 提交解决后的结果 修改提交信息 下次见 回溯历史版本 回溯到feature
  • useEffect默认执行两次解决方法

    转自 https blog csdn net SJJ980724 article details 126144594 代码如下 useEffect gt console log useEffect调用了 刷新页面初始化打印发现 useEff
  • spring集成web环境(配置全局参数、web.xml配置监听器)

    配置全局参数 全局参数主要是为了解耦 位置 web WEB INF web xml