1、在MyEclipse工具中新建Web应用项目和集成Tomcat服务器 1、File---new---Project 点击project后,MyEclipse弹出工程的对话框,我们在所罗列的工程中选中MyEclipse下面的“Web Project”子菜单项目。 2、输入Projecr的一些信息 在Wizard的下一页,必要的输入信息是Project Name----本例为webcrm、Web root folder----本例为WebRoot,Context root URL----本例为“/webcrm”。 其中的Location是指我们的工作目录, 我们可以选择默认的, 也可
2、以指向自己想要的路径;并选择需要JSTL标签库的系统库文件。 最后点击finish后将出现下面的提问,一个空的Web Project就已经建立起来了----MyEclipse会为我们创建Web Application的目录结构以及web.xml等所需的文件。 设置编译环境的JDK为1.6 在该Web Project中添加JSP页面 1、添加index.jsp页面 在下面的对话框中输入页面所在的位置---本例放在站点的根目录下(WebRoot下),名称为index.jsp,同时选择页面的模板 点击“Finish”按钮,将出现下面的页面内容 2、在该页
3、面中添加下面设置中文的标签 <%@ page contentType="text/html;charset=gb2312" isELIgnored="false"%> <%@ page pageEncoding="gb2312"%>
6、pse工具 (2)部署Web站点(将Web站点中的各个程序和页面文件拷贝到Tomcat服务器的webapps目录中) 在Tomcat服务器中出现下面的结果 (3)启动Tomcat服务器 (4)浏览并测试我们的网站 http://127.0.0.1:8080/webcrm/index.jsp 附录资料: Ehcache缓存配置 简介 Cache的配置很灵活,官方提供的Cache配置方式有好几种。你可以通过声明配置、在xml中配置、在程序里配置或者调用构造方法时传入不同的参数。 你可以将Cache的配置从代码中剥离出来,也可以在使用运
7、行时配置,所谓的运行时配置无非也就是在代码中配置。以下是运行时配置的好处: · 在同一个地方配置所有的Cache,这样很容易管理Cache的内存和磁盘消耗。 · 发布时可更改Cache配置。 · 可再安装阶段就检查出配置错误信息,而避免了运行时错误。 本文将会对ehcache.xml配置文件进行详细的阐述。在配置的时可以拷贝一个现有的ehcache.xml,如果没有请点击这里去下载。 ehcache-failsafe.xml 如果你调用了CacheManager默认构造方法去创建CacheManager的实例,此方法会到classpath中找ehcach
8、e.xml文件,否则它会到类路径下找ehcache-failsafe.xml文件。而ehcache-failsafe.xml被包含在jar包中,所有它肯定能找的到。
ehcache-failsafe.xml提供了一个非常简单的默认配置,这样可以使用户在没有创建ehcache.xml的情况下使用Ehcache。
不过这样做Ehcache会提醒用户创建一个正确的Ehcache配置。
ehcache.xml片段:
9、 maxElementsInMemory="10000"
eternal="false"
timeToIdleSeconds="120"
timeToLiveSeconds="120"
overflowToDisk="true"
maxElementsOnDisk="10000000"
diskPersistent="false"
diskExpiryThreadIntervalSeconds 10、"120"
memoryStoreEvictionPolicy="LRU"
/>
11、误。
下面是ehcache.xml具体实例以及配置指南
12、件后缀名是.data和.index。
13、a Cache和removing a Cache
14、erProviderFactory"
properties="peerDiscovery=manual, rmiUrls=//server1:40000/sampleCache1|//server2:40000/sampleCache1| //server1:40000/sampleCache2|//server2:40000/sampleCache2"
propertySeparator="," />
· CacheManagerPeerListener配置
CacheManagerPeerListener配置是用来监听集群中缓存消息的分发的。
15、anagerPeerListenerFactory
class="net.sf.ehcache.distribution.RMICacheManagerPeerListenerFactory"
properties="hostName=fully_qualified_hostname_or_ip,
port=40001,
socketTimeoutMillis=120000"
propertySeparator="," />
· Cache配置
· 16、 name:Cache的唯一标识
· maxElementsInMemory:内存中最大缓存对象数。
· maxElementsOnDisk:磁盘中最大缓存对象数,若是0表示无穷大。
· eternal:Element是否永久有效,一但设置了,timeout将不起作用。
· overflowToDisk:配置此属性,当内存中Element数量达到maxElementsInMemory时,Ehcache将会Element写到磁盘中。
· timeToIdleS 17、econds:设置Element在失效前的允许闲置时间。仅当element不是永久有效时使用,可选属性,默认值是0,也就是可闲置时间无穷大。
· timeToLiveSeconds:设置Element在失效前允许存活时间。最大时间介于创建时间和失效时间之间。仅当element不是永久有效时使用,默认是0.,也就是element存活时间无穷大。
· diskPersistent:是否缓存虚拟机重启期数据。(这个虚拟机是指什么虚拟机一直没看明白是什么,有高人还希望能指点一二)。
· diskExpiryThreadInterv 18、alSeconds:磁盘失效线程运行时间间隔,默认是120秒。
· diskSpoolBufferSizeMB:这个参数设置DiskStore(磁盘缓存)的缓存区大小。默认是30MB。每个Cache都应该有自己的一个缓冲区。
· memoryStoreEvictionPolicy:当达到maxElementsInMemory限制时,Ehcache将会根据指定的策略去清理内存。默认策略是LRU(最近最少使用)。你可以设置为FIFO(先进先出)或是LFU(较少使用)。这里比较遗憾,Ehcache并没有提供一个用户定制策略的接口,仅仅支持三种指定策略, 19、感觉做的不够理想。
· Cache Exception Handling配置
20、 maxElementsInMemory="10000"
eternal="false"
timeToIdleSeconds="120"
timeToLiveSeconds="120"
overflowToDisk="true"
diskSpoolBufferSizeMB="30"
maxElementsOnDisk="10000000"
diskPersistent="false"
diskExpiryThreadIntervalS 21、econds="120"
memoryStoreEvictionPolicy="LRU"
/>
· SampleCache1配置
简单配置,在ehcache.xml文件中有此配置,在使用Ehcache前最好将其删除掉,自己配置。
缓存名sampleCache1,内存中最多可缓存10000个Element,其中的element会在闲置5分钟或是存活10分钟之后失效。
超过10000element时,element将会输出到磁盘中,输出路径是java.io.tmpdir。
22、 maxElementsInMemory="10000"
maxElementsOnDisk="1000"
eternal="false"
overflowToDisk="true"
diskSpoolBufferSizeMB="20"
timeToIdleSeconds="300"
timeToLiveSeconds="600"
memoryStoreEvictionPolicy="LFU"
/>
· SampleCache2配 23、置
Cache名为SampleCache2,内存中最多可以缓存1000个element,超出1000不能输出到磁盘中。缓存是永久有效的。
24、存将会缓存虚拟机重启期的数据。磁盘缓存失效线程运行间隔时间是10分钟。
25、 memoryStoreEvictionPolicy="LFU"
/>
· sampleDistributedCache1配置
Cache名为sampleDistributedCache1。
26、owToDisk="false">
27、 name="sampleDistributedCache2"
maxElementsInMemory="10"
eternal="false"
timeToIdleSeconds="100"
timeToLiveSeconds="100"
overflowToDisk="false">






