项目中,有很多数据是基本上不变的,同时用到的频率还比较高,如果每次都从数据库读取,不但浪费资源,还影响了系统执行的速度。
所以对于这种数据,基本上是在WEB容器启动的时候,就去数据库读取,放到内存中,用的时候直接从内存里面拿就OK了。
这里有个例子,省市的级联信息,对应的code,name都保存在数据库中的一个地区代码表中,其他表中保存的省市信息,如果没有冗余名称的话,一般都保存地区信息的对应代码。
那么在页面显示的时候,需要把相关的代码转换成省市的名称。这个时候就需要把省市的code--->name对应信息查询出来。
首先在service层配置初始化的bean:
- <bean id="regionService" class="com.xxx.service.impl.RegionServiceImpl"
-
init-method="initRegion" lazy-init="true"/>
<bean id="regionService" class="com.xxx.service.impl.RegionServiceImpl"
init-method="initRegion" lazy-init="true"/>
再看RegionServiceImpl.java的代码:
- import java.util.HashMap;
-
import java.util.List;
-
import java.util.Map;
-
-
public class RegionServiceImpl implements RegionService {
-
-
public RegionDAO regionDAO;
-
public static Map<String,String> regionMap = new HashMap<String,String>();
-
-
public void initRegion(){
-
if(regionMap.isEmpty()){
- List<Region> regionList = regionDAO.getRegions();
-
for(Region r : regionList){
- regionMap.put(r.getCode(),r.getName());
- }
- }
- }
-
-
public Map<String,String> getAllRegionMap(){
-
return getRegionMap();
- }
-
-
public static Map<String, String> getRegionMap() {
-
return regionMap;
- }
-
-
public static void setRegionMap(Map<String, String> regionMap) {
- RegionServiceImpl.regionMap = regionMap;
- }
-
- }
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class RegionServiceImpl implements RegionService {
public RegionDAO regionDAO;
public static Map<String,String> regionMap = new HashMap<String,String>();
public void initRegion(){
if(regionMap.isEmpty()){
List<Region> regionList = regionDAO.getRegions();
for(Region r : regionList){
regionMap.put(r.getCode(),r.getName());
}
}
}
public Map<String,String> getAllRegionMap(){
return getRegionMap();
}
public static Map<String, String> getRegionMap() {
return regionMap;
}
public static void setRegionMap(Map<String, String> regionMap) {
RegionServiceImpl.regionMap = regionMap;
}
}
Action里面,从service层取到regionMap,在put到前端页面jsp或者vm
- Map<String,String> regionMap = regionService.getAllRegionMap();
-
model.addAttribute("regionMap", regionMap);
Map<String,String> regionMap = regionService.getAllRegionMap();
model.addAttribute("regionMap", regionMap);
前端页面velocity:
分享到:
相关推荐
【标题】:Tomcat与Java.Web(源文件) ...综上所述,Tomcat与Java.Web的结合是开发和部署Java Web应用的常用方式,通过深入理解这些知识点,开发者能够有效地构建、运行和维护高质量的Web应用程序。
Web服务器方面,Tomcat是最常见的选择,它也被称为JSP容器,需要配置启动和发布项目,并设置环境变量。 数据库管理是Web项目中不可或缺的一部分,涉及MySQL、SQL Server和Oracle。安装、卸载和配置这些数据库以及...
- **自动加载Servlet**:通过在`<servlet>`元素中添加`<load-on-startup>`子元素,可以让容器在启动时自动加载指定的Servlet并调用其`init()`方法完成初始化。这有助于提高首次访问Servlet的速度,适用于需要提前...
Chrome Frame 会把最新版的Chrome Webkit 内核和JavaScript 引擎注入到IE中, IE浏览器将获得Chrome的性能和功能 目录 摘要 I ABSTRACT II 专业名词清单 III 第一章 绪论 1 1.1 研究背景与意义 1 1.2国内外相关...
- **Context**:Context 容器代表一个 Web 应用,它负责加载应用的 `web.xml` 配置文件,并管理所有与该应用相关的请求。 - **Wrapper**:Wrapper 容器对应于一个 Servlet,它负责实例化 Servlet 对象并调用其服务...
它通过与后台服务进行交互,每次只请求并显示一部分数据,而不是一次性加载所有数据,降低了页面加载时间和浏览器内存消耗。 #### 1.2 使用步骤 1. 引入 EasyUI 的 CSS 和 JS 文件。 2. 在 HTML 中创建分页容器,并...
- **`flash.net.URLLoader`**:加载URL中的数据到内存中。 - **`flash.net.URLVariables`**:存储与URL相关的变量,通常用于发送表单数据或查询字符串。 - **`flash.net.URLRequestMethod`**:指定请求方法,如GET或...
- **缓存预热**: 提供预加载机制,启动时自动加载预先定义的数据,减少启动时间。 - **分布式缓存**: 支持多节点环境,可以创建分布式缓存,提高系统可扩展性。 ### 3. 核心组件 - **Cache**: 缓存对象,是数据...
Tomcat是Apache软件基金会的Jakarta项目下的一个开源Web服务器和Servlet容器,它以其轻量级、高效和可扩展性而受到广大Java开发者和运维人员的喜爱。本资料详细解析了Tomcat的常用配置信息,对于Java开发面试者和Web...
`dojo/ready`函数确保在DOM加载完成和模块加载后执行代码,是启动应用的常用入口点。 总之,“dojo开发帮助文档”将全面覆盖这些主题,并提供详细的API参考和示例,帮助开发者熟练掌握Dojo 框架,提升Web应用程序的...
当客户机第一次调用一个Stateful Session Bean 时,容器必须立即在服务器中创建一个新的Bean实例,并关联到客户机上,以后此客户机调用Stateful Session Bean 的方法时容器会把调用分派到与此客户机相关联的Bean实例...
- **优化加载**:JAR文件可以被Java虚拟机(JVM)一次性加载,减少启动时间和内存占用。 - **版本控制**:通过版本号管理不同的JAR,避免版本冲突。 - **安全**:JAR文件可以设置签名,确保代码的完整性和来源。 - *...
通过以上知识点的学习,开发者可以构建完整的Web应用程序,从数据库设计到前端展示,再到后端处理,实现数据的存储、检索、更新和删除,以及安全性和性能优化。这些技能对于在互联网领域,尤其是CS(计算机科学)...
9. **JVM参数调优**:掌握常用JVM启动参数,如-Xms、-Xmx、-XX:NewRatio、-XX:SurvivorRatio等,以及如何根据系统需求进行参数调整。 10. **实战演练**:通过实际案例,如Web服务器负载测试、大数据处理场景等,...
**延迟加载**是一种优化技术,用于减少应用程序启动时的内存消耗和提高性能。当Hibernate查询数据时,默认情况下只会加载对象的代理实例,而不会立即加载实际的数据。只有当程序真正访问对象的属性时,才会从数据库...
对象在JVM中创建,首先通过类加载器加载相应的类信息到方法区,然后在Java堆中分配内存,之后进行对象初始化。 #### 内存溢出异常 内存溢出异常指的是程序在申请内存时,没有足够的空间分配给请求的内存区域,导致...
- **Spring** 的核心控制器是 `ContextLoaderListener`,它在Web应用启动时加载Spring的IoC容器,初始化应用上下文。 配置示例: ```xml <!-- Struts2配置 --> <filter-name>struts2 <filter-class>org....
1. **加载与初始化**:当Web容器启动时加载Servlet,此时调用`init()`方法进行初始化。 2. **服务阶段**:客户端发送请求,Web容器根据配置将请求转发给相应的Servlet,调用`service()`方法处理请求。根据HTTP请求的...
4. **数据仓库与ETL过程**:数据清洗、转换、加载的过程以及相关工具的介绍。 5. **数据可视化与分析**:使用Tableau、Power BI等工具进行数据分析与展示的方法。 ### Python3数据科学入门与实战 **知识点概述:**...
在IT行业中,Apache Tomcat是一个广泛应用的开源Web服务器和Java Servlet容器,它实现了Java EE的Web部分,包括Servlet、JSP和WebSocket等规范。Tomcat的安装与配置是Java Web开发者必须掌握的基础技能之一。 一、...