SSM项目加载流程

本文详细介绍了SSM框架(Spring + SpringMVC + MyBatis)的启动过程及web.xml配置顺序。从Spring监听器开始,依次介绍了配置文件加载、字符编码过滤器设置以及SpringMVC核心控制器的配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SSM项目服务启动:

项目进入web.xml

ssm框架 中web.xml执行顺序

1.<!--spring 的监听器-->

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

2<!-- spring 主配置文件的 路径 和名字 -->

<context-param>

<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring.xml</param-value>

</context-param>

. 在启动 Web  容器时,自动装配 Spring  applicationContext.xml  的配置信息。(先执行spring的监听器,

因为它实现了ServletContextListener 这个接口,在web.xml 配置这个监听器,启动容器时,就会默认执行它实现的方法。在ContextLoaderListener 中关联了ContextLoader 这个类,所以整个加载配置过程由ContextLoader 来完成

spring 在 web 下的入口在配置文件 web.xml 的监听器中


3
<!-- 过滤器 编码格式 -->
<filter>
<filter-name>Encoding</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>


4<!-- springMVC的核心控制 -->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- 自定义springMVC。xml 的路径 和 名字 -->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-mvc.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>*.action</url-pattern>
</servlet-mapping>


运行流程:

1.jsp(view)发送请求

2.通过核心控制器DispatcherServlet调用请求解析器:HandlendMapping对请求进行解析,通过映射关系匹配到Controller层

3.在控制层调用业务逻辑层(service),数据持久层(DAO)返回控制层,请求完成获取一个结果,设置一个要跳转的视图,(ModelAndView装载并传输数据,设置视图)

4.核心控制器调用 视图解析器:ViewResolver解析视图,匹配相应的页面实现页面跳转

### 如何优化 SSM 框架项目页面加载性能 #### 减少不必要的开销 为了提高SSM框架下的Web应用响应速度,应当关注于减少服务器端处理请求的时间以及传输到客户端的数据量。这可以通过精简业务逻辑代码、去除冗余查询等方式来达成[^1]。 #### 数据库层面的调优 针对数据库访问部分,应确保SQL语句高效执行。利用MyBatis特性支持的手动编写的高性能SQL可以显著改善读取效率[^3]。另外,合理设计索引能够加速检索过程;批量操作代替循环单条记录处理也能有效降低I/O次数从而加快整体反应时间。 #### 缓存机制的应用 引入缓存策略是提升性能的有效手段之一。可以在应用程序内部集成如Ehcache这样的内存级缓存组件,用来保存频繁使用的对象或计算结果,避免每次都向数据库发起相同请求获取同样的数据。对于静态资源,则可考虑采用CDN分发网络以减轻源站压力并缩短用户下载路径。 #### 前端优化措施 除了服务端调整外,前端同样存在不少值得改进之处。压缩HTML/CSS/JavaScript文件体积有助于减少HTTP请求数目及大小;图片懒加载技术允许网页先显示可见区域内的图像而延迟加载其他不在视窗范围内的图形元素;启用浏览器Gzip压缩功能可在不损失质量的前提下大幅削减文本型资产尺寸。 ```html <!-- 图片懒加载示例 --> <img data-src="image.jpg" class="lazyload"> <script src="https://cdn.jsdelivr.net/npm/lazyload@2.0.7/lazyload.min.js"></script> <script>var lazyLoadInstance = new LazyLoad();</script> ``` #### 配置灵活化 考虑到不同环境可能存在的差异性,在实际部署过程中可根据具体情况进行适当修改配置项。例如调整Tomcat线程池大小适应高并发场景需求或是更改JVM堆空间参数防止OOM错误发生等[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值