Springmvc web项目初始化
- Web容器首先会读取项目中的web.xml配置文件中的两个节点:<context-param>与<listener>
- Web容器创建ServletContext对象即Servlet上下文,ServletContext代表整个应用,是Servlet的共享区。
- Web容器将<context-param>转换为键值对,并交给ServletContext
- 执行listener(这里拿ServletContextListen为例),ServletContextListener实现类具有两个方法:contextInitialized()、contextDestroyed(),用来监听ServletContext对象的创建与销毁,当监测到ServletContext对象的创建时,调用contextInitialized()方法,将ServletContext对象封装到方法的事件对象中:在contextInitialized()方法内部代码如下:
/*通过事件对象获取封装的servletContext对象*/
servletContext=ServletContextEvent.getServletContext();
/*通过键值获得context-param的值*/
Context-param=ServletContext.getInitParameter(“context-param的键”)
- 获得context-param进行相关操作,例如在项目启动的时候创建数据库
- 加载filter
- Web容器读取每个servlet设置信息(注解或传统方式配置),并生成代表对象servletconfig,此时将ServletConfig设置在servletconfig中,可以从servletconfig中获取到servletcontext对象来获取上下文信息,实例化servlet在web容器中,收到请求后,servlet开始服务,传入servletconfig到servlet的init方法中进行servlet初始化(这个过程只进行一次)
综上,web.xml加载顺序为:
context-param->listener->filter->servlet
Springmvc web项目初始化的更多相关文章
- 【Maven】Eclipse 使用Maven创建SpringMVC Web项目
创建环境 系统:win 10 软件:eclipse,maven. 创建步骤 创建一个Maven Web项目,可以参照:[Maven]Eclipse 使用Maven创建Java Web项目 添加spri ...
- Web项目初始化过程
在启动Web项目时,容器(比如Tomcat)会读web.xml配置文件中的两个节点<listener>和<contex-param>. 接着容器会创建一个ServletCont ...
- springMVC web项目 对访问数据库的用户名密码进行加密解密
在使用springMVC开发web项目中,数据库的用户名,密码一般都是配置在.properties文件中 然后在通过.xml配置文件引入.properties的变量,例如 在config.proper ...
- 基于SpringBoot + Mybatis实现SpringMVC Web项目
一.热身 一个现实的场景是:当我们开发一个Web工程时,架构师和开发工程师可能更关心项目技术结构上的设计.而几乎所有结构良好的软件(项目)都使用了分层设计.分层设计是将项目按技术职能分为几个内聚的部分 ...
- java使用maven创建springmvc web项目
创建maven项目,使用maven-archetype-webapp 创建完成后首先是在pom.xml里增加maven的依赖 <dependencies> <dependency&g ...
- SpringMVC Web项目升级为Springboot项目(二)
一.访问原项目地址,报404错误 由于原项目地址启动路径为http://localhost:8080/xxx Spring boot默认启动路径为http://localhost:8080/ 所以需要 ...
- java web项目初始化启动一个java方法
项目中需要一些初始化数据,或者加载中断的任务. 首先在web.xml中配置信息,配置在<web-app>中: <servlet> <servlet-name>Ini ...
- SpringMVC Web项目升级为Springboot项目(一)
一.项目改为Springboot项目 1.将pom中所有spring相关依赖删除,添加spring-boot-starter及spring-boot-starter-web(项目中可能有其他sprin ...
- springMvc web项目中restful风格的api路径中有小数点会被过滤后台拿不到最后一个小数点的问题
有两种解决方案: 1:在api路径中加入:.+ @RequestMapping("/findByIp/{ip:.+}") public Object test(@PathVaria ...
随机推荐
- C语言中字符串数组的遍历和比较
/* The list of known types of default packet. */static char *_default_packet_types[] = { "d ...
- 使用Timer组件制作计时器
实现效果: 知识运用: Timer组件的interval属性 //获取或设置Timer组件Tick事件发生的时间间隔 public int Interval {get;set} NumericUpDo ...
- JavaScript实用的例子
---恢复内容开始--- 1.发送验证码 <input id="send" type="button" value="发送验证码"&g ...
- 类库日期和jsp导包
一.日期类库 1.1. Date Date类创建一个时间,或者是创建一个与你计算机当前的时间:精确到毫秒. //实例化时间类 Date date = new Date(); 1.2.格式转换类 1.2 ...
- Shell脚本调用ftp上传文件
Shell脚本调用ftp上传文件 1.脚本如下 ftp -n<<! open x.x.x.x ###x.x.x.x为ftp地址 user username password ###user ...
- python特殊字符转义符号表示
- numpy中常用的函数
1. power(x1, x2) 对x1中的每个元素求n次方.不会改变x1上午shape. 2. sum(a, axis=None, dtype=None, out=None, keepdims=Fa ...
- 标准C++(2)
一.类 C++是一种面向对象的语言,它在C语言的基础上添加了一种新的数据结构,类 ——class class是一种复合型的数据结构 它能够由不同类型的变量及函数组成 C++中的class与struct ...
- CSS基础(一)
一.CSS概述 CSS 指层叠样式表 (Cascading Style Sheets) 样式定义如何显示 HTML 元素 样式通常存储在样式表中 把样式添加到 HTML 4.0 中,是为了解决内容与表 ...
- 【网络基础】【TCP/IP】IP的分级
节选自 <鸟哥的linux私房菜> http://cn.linux.vbird.org/linux_server/0110network_basic_3.php#ps12 InterNI ...