Geoserver相关知识(一)

一、Geoserver

Geoserver是 OpenGIS Web 服务器规范的 J2EE 实现,利用 GeoServer 可以方便的发布地图数据,允许用户对特征数据进行更新、删除、插入操作,通过 GeoServer 可以比较容易的在用户之间迅速共享空间地理信息。

Geoserver是一个功能齐全,遵循OGC开放标准的开源WFS和WMS服务器。利用Geoserver可以把数据作为maps/images来发布(利用WMS来实现)也可以直接发布实际的数据(利用WFS来实现),同时也提供了修改,删除和新增的功能(利用WFS)。

GeoServer, 顾名思义,是一个Server. 它是开源的,允许用户查看和编辑地理数据。这是地理信息系统(GIS) 领域。GeoServer 是符合OGC 规范的一个全功能的WFS 和WMS server。

GeoServer能够发布的数据类型:
①地图或影象——WMS;
②实时数据——WFS;
③用户更新、删除和编辑的数据——WFS。

二、Geoserver安装

1、官网下载geoserver安装包,需要下载tomcat作为容器,tomcat中解压即可使用。
下载地址 ,注意:下载的Tomcat的位数要和Java环境位数一致,例如JDK安装的是64位的,那tomcat也应该选择下载部署64位的。
下载后,解压到一个Tomcat 安装目录中的webapps文件夹下,如D:\software\Tomcat\apache-tomcat-8.5.35\webapps
Geoserver相关知识(一)_第1张图片
只需解压,无需安装;可双击执行如下目录bin下的startup.bat文件。
Geoserver相关知识(一)_第2张图片
由于tomcat从7.0.41版本开始就支持跨域了,只需要进行下面的简单配置:
● 找到geoserver的web.xml文件,我的电脑对应的路径为D:\software\Tomcat\apache-tomcat-8.5.35\webapps\geoserver\WEB-INF\web.xml;
Geoserver相关知识(一)_第3张图片
● 打开该文件,将下面的配置添加至该文件:

<filter>
    <filter-name>CorsFilterfilter-name>
    <filter-class>org.apache.catalina.filters.CorsFilterfilter-class>
filter>
<filter-mapping>
    <filter-name>CorsFilterfilter-name>
    <url-pattern>/*url-pattern>
filter-mapping>

注意:geoserver默认的管理员账号为:admin/geoserver
2、启动geoserver。
打开tomcat的bin目录,点击startup.bat文件

三、WMS

Web地图服务(Web map service)利用具有地理空间位置信息的数据制作地图,将地图定义为地理数据可视的表现。

这个规范定义了三个操作:
①GetCapabitities返回服务级元数据,它是对服务信息内容和要求参数的一种描述;
② GetMap返回一个地图影像,其地理空间参考和大小参数是明确定义了的;
③GetFeatureInfo(可选)返回显示在地图上的某些特殊要素的信息。

四、WFS

Web要素服务(WebFeatureService),基础接口是GetCapabilities。

支持对地理要素的插入,更新,删除,检索和发现服务。

该服务根据HTTP客户请求返回GML(Geography Markup Language、地理标识语言)数据。

WFS对应于常见桌面程序中的条件查询功能,WFS通过OGC Filter构造查询条件,支持基于空间几何关系的查询,基于属性域的查询,当然还包括基于空间关系和属性域的共同查询。

五、Geoserver+Openlayers3加载瓦片地图

Geoservser上使用瓦片地图进行加载,第一次加载后会在服务器端指定文件夹自动生成加载过的地图切片,以后每次加载时会从该文件夹直接读取,大大增加了地图加载的速度。

首先进行Geoserver配置:

1.geoserver运行前,在Geoserver安装目录下的web.xml文件中添加如下参数,设置瓦片存储的位置。不预先设定的话默认存储于系统的tmp目录(windows下为C:\Users<用户名>\AppData\Local\Temp,linux下为/tmp)。如下图所示,地图切片将存储于D:\gwc文件夹下:
Geoserver相关知识(一)_第4张图片

2.点击Geoserver主页左侧的Gridsets,然后点击Create a new gridset,填入新建的gridset的名称,坐标系,然后点击Compute from maximum extent of CRS,最下面的Add zoom level用于设定地图的缩放层级,按需要的层级数量加即可,最后点击保存;
Geoserver相关知识(一)_第5张图片
3.点击左侧工具栏的Caching Defaults,在最下面Add default gridset下拉菜单选择刚刚建立好的gridset,点击提交;

4.点击左侧工具栏的Tile Layers,可以看到发布的图层列表,在每个元组的右侧的Select One下拉菜单可以选择坐标系(不进行步骤3则看不到刚刚设定gridset时的那个坐标系),点击后就是按该坐标系生成的瓦片地图,可以发现Geoserver还是使用的Openlsyers2。打开在步骤1中设定的存储路径,一边放大缩小地图可以看到在动态的生成地图缓存文件,点开会发现不同放大级数的地图切片。
Geoserver相关知识(一)_第6张图片
Geoserver相关知识(一)_第7张图片
5.跟普通的加载WMS地图不同的地方就是需要设定TileGrid,TileGrid里面的origin表示瓦片地图开始切片的起始点坐标,resolutions 表示地图的放大层级,这些在上面配置Geoserver的步骤4中打开的瓦片地图页面中查看源代码都能找到。完成这些配置后就是建立一个html页面,把地图添加进去就行了!

<span style="font-family:Microsoft YaHei;">
	function init(){
	  var format = 'image/png';
      var bounds = [73.44695998458512,3.6193745040060596,135.07924998249888,53.557498986448266];
	  var gr = new ol.tilegrid.TileGrid({
	  	origin : [ -180.0,-90.0 ],
	  	resolutions : [ 0.703125, 0.3515625, 0.17578125, 0.087890625, 0.0439453125, 0.02197265625, 0.010986328125, 0.0054931640625, 0.00274658203125, 0.001373291015625, 6.866455078125E-4, 3.4332275390625E-4, 1.71661376953125E-4, 8.58306884765625E-5, 4.291534423828125E-5, 2.1457672119140625E-5, 1.0728836059570312E-5, 5.364418029785156E-6, 2.682209014892578E-6, 1.341104507446289E-6, 6.705522537231445E-7, 3.3527612686157227E-7 ]
  	});
	var layer1 = [new ol.layer.Tile({
		source : new ol.source.TileWMS({
			url : 'http://192.168.1.100:7777/geoserver/gwc/service/wms',
			params : {
				'FORMAT' : format,
				'VERSION' : '1.1.1',
				'SRS' : 'EPSG:4326',
				'tiled' : true,
				'LAYERS' : 'China:China',
				STYLES : ''
			},
			tileGrid : gr,
			serverType: 'geoserver'
		})
	})];
      var projection = new ol.proj.Projection({
          code: 'EPSG:4326',
          units: 'm',
          axisOrientation: 'neu'
      });
      var map = new ol.Map({
        controls: ol.control.defaults({
          attribution: false
        }),
        target: 'map',
        layers: layer1,
        view: new ol.View({
           projection: projection
        })
      });
      map.getView().fitExtent(bounds, map.getSize()); 
 }
 </span>

Geoserver相关知识(一)_第8张图片
(Geoserver上显示瓦片地图的源代码)
Geoserver相关知识(一)_第9张图片

六、GeoServer服务切片编号规则

使用GeoServer发布切片服务之后,在缓存目录查看到文件夹命名以及文件名:
Geoserver相关知识(一)_第10张图片
“EPSG_900913_05\3_2\24_17.png”,其中EPSG_900913表示坐标系编码,05表示地图缩放级别,也就是z值;24表示x值;17表示y值;此外,GeoServer切片编号采用标准的tms编号规则,以地图左下角为(0,0)起点。

七、GeoServer发布切片服务

GeoWebCache本质就是一种切图工具,可以单独下载进行配置使用,但是在geoserver1.7版本之后,geoserver本身集成了GeoWebCache这个模块,这次介绍的GeoServer版本为2.18.0.

1、 配置切片缓存路径

在GeoServer安装目录中找到web.xml文件,
Geoserver相关知识(一)_第11张图片
打开web.xml文件,添加如下内容,配置切片缓存存放的目录:

<context-param>
	<param-name>GEOWEBCACHE_CACHE_DIRparam-name>
	<param-value>D:\software\Tomcat\apache-tomcat-8.5.35\webapps\geoserver\data\gwcparam-value>
context-param>

Geoserver相关知识(一)_第12张图片

2、 新建工作区

GeoServer启动完成后,访问GeoServer主页,建立工作区;(如果已有工作区,则跳过)
Geoserver相关知识(一)_第13张图片

3、 新建数据存储

以shp文件为例
Geoserver相关知识(一)_第14张图片
Geoserver相关知识(一)_第15张图片
Geoserver相关知识(一)_第16张图片

4、 切片方案

默认的GridSet中只包含了4326和900913坐标系,如果是其他坐标系,则需要新建GridSet。
点击Create a new gridset可以创建新的切图方案,也可以点击现成的切图方案右侧的Create a copy复制一个方案,并在此基础上进行修改。
Geoserver相关知识(一)_第17张图片
Geoserver相关知识(一)_第18张图片
点击保存之后,在gwc目录下可以看见新增的一个后缀为.bak的配置文件,就是切图方案的配置文件
Geoserver相关知识(一)_第19张图片

5、 切图

点击Tile Layers选择需要切图的服务,点击Seed/Truncate可以进入切图设置页面,点击Empty可以清除之前存在的切图缓存。
Geoserver相关知识(一)_第20张图片
点击Seed/Truncate,进入如下界面:
Geoserver相关知识(一)_第21张图片
Number of tasks to use:该选项表示可以用多少个任务来切图,类似于多线程的模式,如果电脑性能允许的情况下,可以适当增加这个数量,这样切片的速度会更快些;如果电脑性能不高的话,数值太大的话,反而可能会影响性能。
Type of operation:操作类型,包括:Reseed-regenerate all tiles(重新进行完整的切片操作)、Seed-generate missing tiles(只对缺失的部分进行切片)、Truncate-remove tiles(清空切片数据)。
Grid Set:选择切片的Gridset,和图层配置时候设置的Gridset有关。
Format:切片的数据格式。比如image/png
Zoom start:切片的开始层级。
Zoom stop:切片的结束层级,结合Zoom start的选项,就可以将这2层级数据之间的所有层级数据进行切片。
Modifiable Parameters:修饰参数,给切片选择样式等内容。
Bounding box:切片的边界范围,是个可选项。

点击submit按钮之后计算机便开始进行切图,可以通过Refresh list按钮查看当前切图进度和相关状况
Geoserver相关知识(一)_第22张图片

八、GeoServer图层发布服务

每添加完创建数据存储(见七(3)),会出现如下图所示界面,点击发布,会弹出图层发布界面。或者直接左侧图层 新增图层。
Geoserver相关知识(一)_第23张图片
需要注意的地方有SRS不能为空,默认会从文件中读出当前shp的采用的坐标系,如果读不出需要手动填写一下,填写最小的范围矩阵,可以充点击下方的“compute from native bounds”自动计算。
Geoserver相关知识(一)_第24张图片
另外提示:如果需要在发布layer的同时指定这个layer的默认样式,那么选择tab页到“发布”中重置默认的“default style”
Geoserver相关知识(一)_第25张图片
发布完成后,预览。
Geoserver相关知识(一)_第26张图片
注意事项
文件按照点线面分类,对应的一个shp文件一个sld符号文件。
新建style样式的时候
Geoserver相关知识(一)_第27张图片
Geoserver相关知识(一)_第28张图片
上图中的name不必着急填,先上传sld文件,则name会自动填充,如果name和sld中的标签name不一致的话,会导致符号报错。无法正常显示。

九、sld文件介绍

在 GeoServer 中,样式是使用SLD(Styled Layer Descriptor)的标记语言完成的。SLD 是一种基于 XML 的标记语言。
Geoserver相关知识(一)_第29张图片

1、 SLD概念

SLD 样式文档为GeoServer图层指定单个命名图层和用户样式。样式中可以是一种或多种要素类型样式,每个要素类型样式都包含一个或多个规则,这些规则控制如何根据要素属性和缩放级别应用样式。规则通过使用过滤器来选择适用的特征, 过滤器是包含谓词、表达式 和过滤器函数的逻辑条件。

2、 样式类型

GeoServer可以提供的矢量数据包括三类形状: 点,线和多边形。

线是最简单的,因为它们只有样式的边缘(指定颜色和粗细)。具有二维形状的多边形具有边和内部(也称为“填充”,可以指定颜色),两者的样式可以不同。点具有可以设置样式的边和填充。

可以通过对颜色,不透明度,对比度和其他参数的多种控制来设置样式。

也可以使用更高级的样式。可以使用众所周知的形状(例如圆形,正方形,星形,甚至自定义图形或文本)来指定点。可以使用破折号样式和哈希样式设置线条。可以使用自定义平铺图形填充多边形。样式可以基于数据中的属性,以便某些特征的样式不同。功能上的文本标签也是可以的。样式还可以通过缩放级别来确定,以便以适合其外观大小的方式显示要素。

3、 SLD示例(以地市级点为例)

SLD 的根元素是,包含一个图层和样式元素,这些元素描述了如何组合和设置地图样式。

在SLD文档中,一些标记具有前缀,例如ogc。这是因为它们是在XML名称空间中定义的。

StyledLayerDescriptor标记指定两个XML名称空间,一个称为xmlns,另一个称为xmlns:ogc。第一个名称空间是文档的默认名称空间,因此属于它的标记不需要前缀。属于第二个的标记需要前缀ogc。

SLD文档包含一系列层定义,指示要设置样式的层。每个层都是NamedLayer或UserLayer来定义。
Geoserver相关知识(一)_第30张图片
或者可包含以下元素:
——要设置样式的图层的名称。(必填)
——描述。
——要应用于图层的目录样式的名称。(中为,提供图层数据的一个或多个要素集合,使用GML指定。)
——要应用于图层的样式的定义。

样式元素指定要应用于图层的样式。包含规则和过滤器,以确定要使用特定符号系统设置样式的要素集。规则还可以指定特征样式可见的比例范围。

UserStyle——定义图层的样式,包含以下元素:
——样式的名称,用于在外部引用它。
</code> ——样式的标题。<br> ③<code><Abstract></code>——样式的描述。<br> ④<code><IsDefault></code>——该样式是否为命名图层的默认样式。在SLD库模式下使用,值为1或0(默认值)。<br> ⑤<code><FeatureTypeStyle></code>——定义用于呈现单个要素类型的符号。包含一个规则列表,用于确定要应用于图层每个特征的符号。包含有<code><Name> 、<Title> 、<Abstract> 、<FeatureTypeName>、<Rule></code>元素。<br> 通常一个图层只包含一个要素类型,因此通常省略<code><FeatureTypeName></code>。可以在样式中指定任意数量的<code><FeatureTypeStyle></code>元素。</p> <p>Rules——规则将过滤器与任意数量的符号组合在一起。过滤条件计算为true的要素将使用规则中的符号进行渲染。包含以下元素:<br> ①<code><Name></code>——指定规则的名称。<br> ②<code><Title></code> ——指定规则的标题。<br> ③<code><Abstract></code>——指定描述规则的摘要。<br> ④<code><Filter></code>——指定应用规则时的过滤器。过滤条件是通过使用比较运算符或空间运算符,或者通过逻辑运算符组合的两个或多个运算符来指定的。运算符通常用于将被过滤的特征的属性与其他属性或文字数据进行比较。<br> <code><PropertyIsNotEqualTo></code>——属性值不等于<br> <code><PropertyIsEqualTo></code>——属性值为<br> ⑤<code><MinScaleDenominator></code>——指定适用此规则的比例范围的最小比例分母(含)。如果存在,则该规则适用于给定的比例和所有较小的比例。<br> ⑥<code><MaxScaleDenominator></code>——指定适用此规则的比例范围的最大比例分母(不包括)。如果存在,则规则适用于大于给定比例的比例。<br> ⑦<code><PointSymbolizer></code>——将样式设置为点符号<br> <code><LineSymbolizer></code>——将样式设置为线符号<br> <code><PolygonSymbolizer></code>——将样式设置为面符号<br> <code><TextSymbolizer></code>——指定文本标签的样式<br> <code><RasterSymbolizer></code>——指定栅格数据的样式<br> 如下为一个完整的sld文件</p> <pre><code class="prism language-xml"><span class="token prolog"><?xml version="1.0" encoding="UTF-8"?></span><span class="token tag"><span class="token tag"><span class="token punctuation"><</span><span class="token namespace">sld:</span>StyledLayerDescriptor</span> <span class="token attr-name">xmlns</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>http://www.opengis.net/sld<span class="token punctuation">"</span></span> <span class="token attr-name"><span class="token namespace">xmlns:</span>sld</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>http://www.opengis.net/sld<span class="token punctuation">"</span></span> <span class="token attr-name"><span class="token namespace">xmlns:</span>gml</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>http://www.opengis.net/gml<span class="token punctuation">"</span></span> <span class="token attr-name"><span class="token namespace">xmlns:</span>ogc</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>http://www.opengis.net/ogc<span class="token punctuation">"</span></span> <span class="token attr-name">version</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>1.0.0<span class="token punctuation">"</span></span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span><span class="token namespace">sld:</span>UserLayer</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span><span class="token namespace">sld:</span>LayerFeatureConstraints</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span><span class="token namespace">sld:</span>FeatureTypeConstraint</span><span class="token punctuation">/></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span><span class="token namespace">sld:</span>LayerFeatureConstraints</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span><span class="token namespace">sld:</span>UserStyle</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span><span class="token namespace">sld:</span>Name</span><span class="token punctuation">></span></span>dsj<span class="token tag"><span class="token tag"><span class="token punctuation"></</span><span class="token namespace">sld:</span>Name</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span><span class="token namespace">sld:</span>FeatureTypeStyle</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span><span class="token namespace">sld:</span>Name</span><span class="token punctuation">></span></span>group0<span class="token tag"><span class="token tag"><span class="token punctuation"></</span><span class="token namespace">sld:</span>Name</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span><span class="token namespace">sld:</span>FeatureTypeName</span><span class="token punctuation">></span></span>Feature<span class="token tag"><span class="token tag"><span class="token punctuation"></</span><span class="token namespace">sld:</span>FeatureTypeName</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span><span class="token namespace">sld:</span>SemanticTypeIdentifier</span><span class="token punctuation">></span></span>generic:geometry<span class="token tag"><span class="token tag"><span class="token punctuation"></</span><span class="token namespace">sld:</span>SemanticTypeIdentifier</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span><span class="token namespace">sld:</span>SemanticTypeIdentifier</span><span class="token punctuation">></span></span>simple<span class="token tag"><span class="token tag"><span class="token punctuation"></</span><span class="token namespace">sld:</span>SemanticTypeIdentifier</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span><span class="token namespace">sld:</span>Rule</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span><span class="token namespace">sld:</span>Name</span><span class="token punctuation">></span></span>default rule<span class="token tag"><span class="token tag"><span class="token punctuation"></</span><span class="token namespace">sld:</span>Name</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span><span class="token namespace">sld:</span>MaxScaleDenominator</span><span class="token punctuation">></span></span>260.0<span class="token tag"><span class="token tag"><span class="token punctuation"></</span><span class="token namespace">sld:</span>MaxScaleDenominator</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span><span class="token namespace">sld:</span>PointSymbolizer</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span><span class="token namespace">sld:</span>Graphic</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span><span class="token namespace">sld:</span>Mark</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span><span class="token namespace">sld:</span>WellKnownName</span><span class="token punctuation">></span></span>circle<span class="token tag"><span class="token tag"><span class="token punctuation"></</span><span class="token namespace">sld:</span>WellKnownName</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span><span class="token namespace">sld:</span>Fill</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span><span class="token namespace">sld:</span>CssParameter</span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>fill<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>#FFFFFF<span class="token tag"><span class="token tag"><span class="token punctuation"></</span><span class="token namespace">sld:</span>CssParameter</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span><span class="token namespace">sld:</span>Fill</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span><span class="token namespace">sld:</span>Stroke</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span><span class="token namespace">sld:</span>CssParameter</span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>stroke<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>#FF8080<span class="token tag"><span class="token tag"><span class="token punctuation"></</span><span class="token namespace">sld:</span>CssParameter</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span><span class="token namespace">sld:</span>CssParameter</span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>stroke-opacity<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>0.6<span class="token tag"><span class="token tag"><span class="token punctuation"></</span><span class="token namespace">sld:</span>CssParameter</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span><span class="token namespace">sld:</span>Stroke</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span><span class="token namespace">sld:</span>Mark</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span><span class="token namespace">sld:</span>Size</span><span class="token punctuation">></span></span>3<span class="token tag"><span class="token tag"><span class="token punctuation"></</span><span class="token namespace">sld:</span>Size</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span><span class="token namespace">sld:</span>Graphic</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span><span class="token namespace">sld:</span>PointSymbolizer</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span><span class="token namespace">sld:</span>TextSymbolizer</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span><span class="token namespace">sld:</span>Label</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span><span class="token namespace">ogc:</span>PropertyName</span><span class="token punctuation">></span></span>PINYIN<span class="token tag"><span class="token tag"><span class="token punctuation"></</span><span class="token namespace">ogc:</span>PropertyName</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span><span class="token namespace">sld:</span>Label</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span><span class="token namespace">sld:</span>Font</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span><span class="token namespace">sld:</span>CssParameter</span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>font-family<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>Arial<span class="token tag"><span class="token tag"><span class="token punctuation"></</span><span class="token namespace">sld:</span>CssParameter</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span><span class="token namespace">sld:</span>CssParameter</span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>font-size<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>12.0<span class="token tag"><span class="token tag"><span class="token punctuation"></</span><span class="token namespace">sld:</span>CssParameter</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span><span class="token namespace">sld:</span>CssParameter</span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>font-style<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>normal<span class="token tag"><span class="token tag"><span class="token punctuation"></</span><span class="token namespace">sld:</span>CssParameter</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span><span class="token namespace">sld:</span>CssParameter</span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>font-weight<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>normal<span class="token tag"><span class="token tag"><span class="token punctuation"></</span><span class="token namespace">sld:</span>CssParameter</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span><span class="token namespace">sld:</span>Font</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span><span class="token namespace">sld:</span>LabelPlacement</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span><span class="token namespace">sld:</span>PointPlacement</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span><span class="token namespace">sld:</span>AnchorPoint</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span><span class="token namespace">sld:</span>AnchorPointX</span><span class="token punctuation">></span></span>0.0<span class="token tag"><span class="token tag"><span class="token punctuation"></</span><span class="token namespace">sld:</span>AnchorPointX</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span><span class="token namespace">sld:</span>AnchorPointY</span><span class="token punctuation">></span></span>0.0<span class="token tag"><span class="token tag"><span class="token punctuation"></</span><span class="token namespace">sld:</span>AnchorPointY</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span><span class="token namespace">sld:</span>AnchorPoint</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span><span class="token namespace">sld:</span>Displacement</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span><span class="token namespace">sld:</span>DisplacementX</span><span class="token punctuation">></span></span>0.0<span class="token tag"><span class="token tag"><span class="token punctuation"></</span><span class="token namespace">sld:</span>DisplacementX</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span><span class="token namespace">sld:</span>DisplacementY</span><span class="token punctuation">></span></span>0.0<span class="token tag"><span class="token tag"><span class="token punctuation"></</span><span class="token namespace">sld:</span>DisplacementY</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span><span class="token namespace">sld:</span>Displacement</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span><span class="token namespace">sld:</span>PointPlacement</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span><span class="token namespace">sld:</span>LabelPlacement</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span><span class="token namespace">sld:</span>Halo</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span><span class="token namespace">sld:</span>Radius</span><span class="token punctuation">></span></span>1<span class="token tag"><span class="token tag"><span class="token punctuation"></</span><span class="token namespace">sld:</span>Radius</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span><span class="token namespace">sld:</span>Fill</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span><span class="token namespace">sld:</span>CssParameter</span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>fill<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>#FFFFFF<span class="token tag"><span class="token tag"><span class="token punctuation"></</span><span class="token namespace">sld:</span>CssParameter</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span><span class="token namespace">sld:</span>Fill</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span><span class="token namespace">sld:</span>Halo</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span><span class="token namespace">sld:</span>Fill</span><span class="token punctuation">/></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span><span class="token namespace">sld:</span>TextSymbolizer</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span><span class="token namespace">sld:</span>Rule</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span><span class="token namespace">sld:</span>FeatureTypeStyle</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span><span class="token namespace">sld:</span>UserStyle</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span><span class="token namespace">sld:</span>UserLayer</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span><span class="token namespace">sld:</span>StyledLayerDescriptor</span><span class="token punctuation">></span></span> </code></pre> <p><code><WellKnownName></code>指定符号的形状,<code><CssParameter name="fill"></code>指定填充颜​​色,<code><Size></code>设置图形的大小。<code><Stroke></Stroke></code>用于设置边框。设置边框颜色设置为黑色,设置宽度。<br> geoserver官方链接<br> <mark>注:<br> ①有中文需要将编码方式(encodeing)改为GB2312</mark></p> <h3>十、sld符号制作</h3> <h4>1、QGIS 3.16.15</h4> <h5>(1) QGIS下载地址</h5> <h5>(2) QGIS汉化</h5> <p>点击settings,紧接着点击options,勾选override system locale,选择简体中文确定,重启软件即可。<br> <a href="http://img.e-com-net.com/image/info8/5c7912b3995e4f87a1c77a25ec6dea80.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/5c7912b3995e4f87a1c77a25ec6dea80.jpg" alt="Geoserver相关知识(一)_第31张图片" width="650" height="365" style="border:1px solid black;"></a></p> <h5>(3)QGIS界面介绍</h5> <p><a href="http://img.e-com-net.com/image/info8/02ad7961489e4b81911d3084af1c22ae.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/02ad7961489e4b81911d3084af1c22ae.jpg" alt="Geoserver相关知识(一)_第32张图片" width="650" height="364" style="border:1px solid black;"></a></p> <h5>(4) 铁路线符号制作</h5> <h5>(5)图层标注设置</h5> <p><a href="http://img.e-com-net.com/image/info8/9f9e739d33fd48679df6d8b6ed5270c4.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/9f9e739d33fd48679df6d8b6ed5270c4.jpg" alt="Geoserver相关知识(一)_第33张图片" width="650" height="151" style="border:1px solid black;"></a></p> <h4>2、udig</h4> <h5>(1)uDig在官网上下载安装包直接解压即可使用</h5> <p><a href="http://img.e-com-net.com/image/info8/6dc7d909d1144faa9caf4aae94447eb7.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/6dc7d909d1144faa9caf4aae94447eb7.jpg" alt="Geoserver相关知识(一)_第34张图片" width="650" height="427" style="border:1px solid black;"></a></p> <h5>(2)打开uDig,进入操作界面。下图是面板功能介绍</h5> <p><a href="http://img.e-com-net.com/image/info8/3a037e8f0b844afd890653cc79235425.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/3a037e8f0b844afd890653cc79235425.jpg" alt="Geoserver相关知识(一)_第35张图片" width="650" height="354" style="border:1px solid black;"></a></p> <h5>(3)符号编辑</h5> <p>选择图层,进行符号编辑,本文档旨在介绍各个功能的用法及作用。选择对应需要编辑style的图层,右键点击显示菜单,选择change style<br> <a href="http://img.e-com-net.com/image/info8/c33001bc539d4b369c8f8e12ca6e326d.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/c33001bc539d4b369c8f8e12ca6e326d.jpg" alt="Geoserver相关知识(一)_第36张图片" width="472" height="390" style="border:1px solid black;"></a></p> <h5>(4)change style菜单</h5> <p><a href="http://img.e-com-net.com/image/info8/09bfbee7e83e471bb0bd56cf396dd8b5.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/09bfbee7e83e471bb0bd56cf396dd8b5.jpg" alt="Geoserver相关知识(一)_第37张图片" width="650" height="452" style="border:1px solid black;"></a><br> <a href="http://img.e-com-net.com/image/info8/c9beb9e7c20941cbb2c2d7cc3efffa55.png" target="_blank"><img src="http://img.e-com-net.com/image/info8/c9beb9e7c20941cbb2c2d7cc3efffa55.png" alt="Geoserver相关知识(一)_第38张图片" width="446" height="473" style="border:1px solid black;"></a><br> (其他的下拉选择框根据实际符号样式需要进行调节,选择即可在左侧看到直观效果);<br> <a href="http://img.e-com-net.com/image/info8/b80bdfd9ab0d4390b9302b86f2c7f8b0.png" target="_blank"><img src="http://img.e-com-net.com/image/info8/b80bdfd9ab0d4390b9302b86f2c7f8b0.png" alt="Geoserver相关知识(一)_第39张图片" width="420" height="358" style="border:1px solid black;"></a><br> <a href="http://img.e-com-net.com/image/info8/28f65fb9e35f4ee38d6a33306d41edc7.png" target="_blank"><img src="http://img.e-com-net.com/image/info8/28f65fb9e35f4ee38d6a33306d41edc7.png" alt="Geoserver相关知识(一)_第40张图片" width="444" height="395" style="border:1px solid black;"></a><br> <a href="http://img.e-com-net.com/image/info8/abd1ed5fa442455aa5c29ae475f0ff9c.png" target="_blank"><img src="http://img.e-com-net.com/image/info8/abd1ed5fa442455aa5c29ae475f0ff9c.png" alt="Geoserver相关知识(一)_第41张图片" width="437" height="414" style="border:1px solid black;"></a><br> 比如根据国标码过滤则书写格式为:<br> gbcode=’31010’ 只有当数据的gbcodo码是31010的时候样式才会显示;<br> gbcode IN (‘31010’,’31020’) gbcode码为这两个值的时候都显示该符号样式<br> name like ‘%中%’ 模糊匹配,名称<br> <a href="http://img.e-com-net.com/image/info8/c7411fc349a24c2890537ef2745fa3ce.png" target="_blank"><img src="http://img.e-com-net.com/image/info8/c7411fc349a24c2890537ef2745fa3ce.png" alt="Geoserver相关知识(一)_第42张图片" width="850" height="625" style="border:1px solid black;"></a></p> </div> </div> </div> </div> </div> <!--PC和WAP自适应版--> <div id="SOHUCS" sid="1712292612305661952"></div> <script type="text/javascript" src="/views/front/js/chanyan.js"></script> <!-- 文章页-底部 动态广告位 --> <div class="youdao-fixed-ad" id="detail_ad_bottom"></div> </div> <div class="col-md-3"> <div class="row" id="ad"> <!-- 文章页-右侧1 动态广告位 --> <div id="right-1" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_1"> </div> </div> <!-- 文章页-右侧2 动态广告位 --> <div id="right-2" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_2"></div> </div> <!-- 文章页-右侧3 动态广告位 --> <div id="right-3" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_3"></div> </div> </div> </div> </div> </div> </div> <div class="container"> <h4 class="pt20 mb15 mt0 border-top">你可能感兴趣的:(GIS,tomcat,java,缓存,经验分享)</h4> <div id="paradigm-article-related"> <div class="recommend-post mb30"> <ul class="widget-links"> <li><a href="/article/1892410529520087040.htm" title="JavaScript的魔法世界:巧妙之处与实战技巧" target="_blank">JavaScript的魔法世界:巧妙之处与实战技巧</a> <span class="text-muted">skyksksksksks</span> <a class="tag" taget="_blank" href="/search/%E7%BB%BC%E5%90%88%E4%B8%AA%E4%BA%BA%E6%9D%82%E8%AE%B0/1.htm">综合个人杂记</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/html5/1.htm">html5</a><a class="tag" taget="_blank" href="/search/css/1.htm">css</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a> <div>一、从浏览器玩具到全栈利器的蜕变之路JavaScript诞生于1995年,原本只是网景公司为浏览器设计的"小脚本"。谁能想到这个曾被戏称为"玩具语言"的家伙,如今已蜕变成支撑现代Web开发的擎天柱?就像一只破茧成蝶的幼虫,JavaScript经历了ECMAScript标准的持续进化,在Node.js的加持下突破了浏览器的桎梏,实现了从客户端到服务端的华丽转身。V8引擎的涡轮增压让它跑得比猎豹还快,</div> </li> <li><a href="/article/1892408764976394240.htm" title="Redis 全方位解析:从入门到实战" target="_blank">Redis 全方位解析:从入门到实战</a> <span class="text-muted">kiss strong</span> <a class="tag" taget="_blank" href="/search/redis/1.htm">redis</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a><a class="tag" taget="_blank" href="/search/%E7%BC%93%E5%AD%98/1.htm">缓存</a> <div>引言在当今互联网快速发展的时代,高并发、低延迟的应用场景越来越普遍。Redis,作为一款高性能的开源数据库,以其卓越的性能和灵活的功能,成为了许多开发者的首选工具。无论是在缓存、消息队列,还是在实时数据分析等领域,Redis都展现出了强大的能力。本文将从Redis的基本介绍、官网、安装、特性,到具体的存储类型、Java代码实例、SpringBoot整合,以及Redis的主要作用和应用场景,进行全面</div> </li> <li><a href="/article/1892407376435277824.htm" title="前端开发入门指南:HTML、CSS和JavaScript基础知识" target="_blank">前端开发入门指南:HTML、CSS和JavaScript基础知识</a> <span class="text-muted">方向感超强的</span> <a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/css/1.htm">css</a><a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a> <div>引言:大家好,我是一名简单的前端开发爱好者,对于网页设计和用户体验的追求让我深深着迷。在本篇文章中,我将带领大家探索前端开发的基础知识,涵盖HTML、CSS和JavaScript。如果你对这个领域感兴趣,或者想要了解如何开始学习前端开发,那么这篇文章将为你提供一个良好的起点。1.前端开发概述在我们深入了解前端开发的细节之前,让我们先了解一下前端开发的定义和作用。简而言之,前端开发涉及构建用户直接与</div> </li> <li><a href="/article/1892407248836161536.htm" title="uniapp 使用web-view 来套地址实现分离式打包" target="_blank">uniapp 使用web-view 来套地址实现分离式打包</a> <span class="text-muted">luckycoke</span> <a class="tag" taget="_blank" href="/search/uni-app/1.htm">uni-app</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a> <div>exportdefault{data(){return{title:'http://www.baidu.cn/'//你可以根据需要替换成你的URL};},mounted(){//在应用启动时清除本地缓存this.clearAppCache();},methods:{clearAppCache(){if(uni.getSystemInfoSync().platform==='android'){//</div> </li> <li><a href="/article/1892406744987004928.htm" title="《Java高级-Xml:利用DOM4j解析XML》" target="_blank">《Java高级-Xml:利用DOM4j解析XML》</a> <span class="text-muted">大大大钢琴</span> <a class="tag" taget="_blank" href="/search/%23/1.htm">#</a><a class="tag" taget="_blank" href="/search/Java%EF%BC%9A%E7%BB%8F%E9%AA%8C%E6%80%BB%E7%BB%93/1.htm">Java:经验总结</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/xml/1.htm">xml</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>利用DOM4j解析XMLdom4j是一个简单的开源库,用于处理XML、XPath和XSLT,它基于Java平台,使用Java的集合框架,全面集成了DOM,SAX和JAXP。dom4j是目前在xml解析方面是最优秀的(Hibernate、Sun的JAXM也都使用dom4j来解析XML),它合并了许多超出基本XML文档表示的功能,包括集成的XPath支持、XMLSchema支持以及用于大文档或流化文档</div> </li> <li><a href="/article/1892403467411058688.htm" title="网页中加载 SVG 的七大方式" target="_blank">网页中加载 SVG 的七大方式</a> <span class="text-muted">前端熊猫</span> <a class="tag" taget="_blank" href="/search/Svg/1.htm">Svg</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/svg/1.htm">svg</a><a class="tag" taget="_blank" href="/search/vue/1.htm">vue</a> <div>一、直接使用标签加载外部SVG文件优点:简单易用:与加载其他图片格式(如PNG、JPEG)相同。浏览器支持良好:现代浏览器普遍支持。可缓存:SVG文件可以被浏览器缓存,减少重复请求。缺点:无法直接操作SVG内部元素:如果需要对SVG内部的元素进行交互或样式修改,这种方法不适用。适用场景:静态图像展示:仅需要展示SVG图像,不需要与之交互。二、将SVG作为CSS背景图片.icon{width:100</div> </li> <li><a href="/article/1892402708804071424.htm" title="LQB---基础练习---十六进制转八进制" target="_blank">LQB---基础练习---十六进制转八进制</a> <span class="text-muted">「已注销」</span> <a class="tag" taget="_blank" href="/search/%23/1.htm">#</a><a class="tag" taget="_blank" href="/search/LQB/1.htm">LQB</a><a class="tag" taget="_blank" href="/search/LQB/1.htm">LQB</a> <div>试题基础练习十六进制转八进制资源限制内存限制:512.0MBC/C++时间限制:1.0sJava时间限制:3.0sPython时间限制:5.0s问题描述给定n个十六进制正整数,输出它们对应的八进制数。输入格式输入的第一行为一个正整数n(1<=n<=10)。接下来n行,每行一个由09、大写字母AF组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。输出格式输出n行,每行为</div> </li> <li><a href="/article/1892400189780586496.htm" title="js如何直接下载文件流" target="_blank">js如何直接下载文件流</a> <span class="text-muted">涔溪</span> <a class="tag" taget="_blank" href="/search/js/1.htm">js</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>在JavaScript中直接处理文件下载,尤其是在处理文件流的情况下,通常涉及到使用fetchAPI或者XMLHttpRequest来获取文件流,并通过创建一个临时的标签(锚点元素)触发下载。以下是使用fetchAPI的一个示例:fetch('你的文件URL',{method:'GET',headers:{//如果需要的话,可以在这里添加请求头}}).then(response=>response</div> </li> <li><a href="/article/1892398803407925248.htm" title="部署前端项目2" target="_blank">部署前端项目2</a> <span class="text-muted">augenstern416</span> <a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a> <div>前端项目的部署是将开发完成的前端代码发布到服务器或云平台,使其能够通过互联网访问。以下是前端项目部署的常见步骤和工具:1.准备工作在部署之前,确保项目已经完成以下步骤:代码优化:压缩JavaScript、CSS和图片文件,减少文件体积。环境配置:区分开发环境和生产环境(如API地址、环境变量等)。测试:确保项目在本地测试通过,没有明显Bug。2.部署流程1.构建项目大多数前端项目(如React、V</div> </li> <li><a href="/article/1892398677004185600.htm" title="对象的操作" target="_blank">对象的操作</a> <span class="text-muted">augenstern416</span> <a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/ecmascript/1.htm">ecmascript</a> <div>在前端开发中,JavaScript提供了许多内置对象和方法,用于处理数据、操作DOM、处理事件等。以下是一些常用对象及其方法和扩展技巧:1.Object对象Object是JavaScript中最基础的对象,几乎所有对象都继承自Object。常用方法Object.keys(obj):返回对象的所有可枚举属性的键名数组。constobj={a:1,b:2};console.log(Object.key</div> </li> <li><a href="/article/1892390738520502272.htm" title="前端基础入门:HTML、CSS 和 JavaScript" target="_blank">前端基础入门:HTML、CSS 和 JavaScript</a> <span class="text-muted">阿绵</span> <a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/css/1.htm">css</a><a class="tag" taget="_blank" href="/search/js/1.htm">js</a> <div>在现代网页开发中,前端技术扮演着至关重要的角色。无论是个人网站、企业官网,还是复杂的Web应用程序,前端开发的基础技术HTML、CSS和JavaScript都是每个开发者必须掌握的核心技能。本文将详细介绍这三者的基本概念及其应用一、HTML——网页的骨架HTML(HyperTextMarkupLanguage)是构建网页的基础语言。它是网页的结构和内容的标记语言,决定了网页上的文本、图像、表单等元</div> </li> <li><a href="/article/1892389477767245824.htm" title="网页制作03-html,css,javascript初认识のhtml的图像设置" target="_blank">网页制作03-html,css,javascript初认识のhtml的图像设置</a> <span class="text-muted">Ama_tor</span> <a class="tag" taget="_blank" href="/search/%E7%BD%91%E9%A1%B5%E5%88%B6%E4%BD%9C%E4%B8%93%E6%A0%8F/1.htm">网页制作专栏</a><a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/css/1.htm">css</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a> <div>一、图像格式网页中图像的格式有三种,Gif,Jpeg,PngGif:Graphicinterchangeformat图像交换格式,文件最多可使用256种颜色,最适合显示色调不连续或具有大面积单一颜色的图像,例如导航条、按钮、图标、徽标或其他具有统一色彩和色调的图像;还可以制作动态图像Jpeg:Giantphotographicexpectgroup,它是一种图像压缩格式,可包含数百万种颜色,不支持</div> </li> <li><a href="/article/1892388470647746560.htm" title="Failed to initialize editor" target="_blank">Failed to initialize editor</a> <span class="text-muted">Mac Zhu</span> <a class="tag" taget="_blank" href="/search/android/1.htm">android</a> <div>今天遇到很奇葩的问题layout文件不能预览花了很长的时间处理,就是各种AndroidStudio相关的缓存文件的处理1.Invalidateandrestart2.删除Administrator下面的.android和.gradle3.删除Administrator\AppData\Local\Google\AndroidStudio2024.2目录4.重装AS5.升级降低AGPVersion和</div> </li> <li><a href="/article/1892387965171200000.htm" title="java进阶篇--生产环境如何排查bug和优化 JVM?" target="_blank">java进阶篇--生产环境如何排查bug和优化 JVM?</a> <span class="text-muted">爱分享的淘金达人</span> <a class="tag" taget="_blank" href="/search/Java%E6%BA%90%E7%A0%81%E5%89%96%E6%9E%90%2830%E8%AE%B2%29/1.htm">Java源码剖析(30讲)</a><a class="tag" taget="_blank" href="/search/jvm%E4%BC%98%E5%8C%96/1.htm">jvm优化</a><a class="tag" taget="_blank" href="/search/jvm%E8%B0%83%E4%BC%98/1.htm">jvm调优</a><a class="tag" taget="_blank" href="/search/%E4%BC%98%E5%8C%96jvm/1.htm">优化jvm</a><a class="tag" taget="_blank" href="/search/%E7%94%9F%E4%BA%A7%E7%8E%AF%E5%A2%83%E4%BC%98%E5%8C%96jvm/1.htm">生产环境优化jvm</a><a class="tag" taget="_blank" href="/search/%E7%94%9F%E4%BA%A7%E7%8E%AF%E5%A2%83jvm%E4%BC%98%E5%8C%96/1.htm">生产环境jvm优化</a> <div>通过前面几个课时的学习,相信你对JVM的理论及实践等相关知识有了一个大体的印象。而本课时将重点讲解JVM的排查与优化,这样就会对JVM的知识点有一个完整的认识,从而可以更好地应用于实际工作或者面试了。我们本课时的面试题是,生产环境如何排查问题?回答:如果是在生产环境中直接排查JVM的话,最简单的做法就是使用JDK自带的6个非常实用的命令行工具来排查。它们分别是:jps、jstat、jinfo、jm</div> </li> <li><a href="/article/1892386200312934400.htm" title="JavaScript——操作浏览器窗口" target="_blank">JavaScript——操作浏览器窗口</a> <span class="text-muted">yiqi_perss</span> <a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a> <div>学习内容:今天学习了alert提示框,提示框中的内容,就是alert后边小括号中的内容例如:alert('我要学JavaScript!');alert('我要学习!');学习总结:日常小总结例如:后面的分号;可以随便去掉,不影响运行效果。不能去掉小括号,否则会报错,不信你可以试试。必须是英文引号,否则会报错。课外扩展:历史渊源例如:ECMAScript是一种语言标准,而JavaScript是网景公</div> </li> <li><a href="/article/1892385948155572224.htm" title="JVM内存模型分区" target="_blank">JVM内存模型分区</a> <span class="text-muted">Lionel·</span> <a class="tag" taget="_blank" href="/search/java%E5%9F%BA%E7%A1%80/1.htm">java基础</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/jvm/1.htm">jvm</a> <div>JVM内存模型划分根据JVM规范,JVM内存共分为Java虚拟机栈,本地方法栈,堆,方法区,程序计数器,五个部分。1.Java堆(线程共享)Java堆是被所有线程共享的一块内存区域,在虚拟机启动时创建。此内存区域的唯一目的就是存放对象实例,几乎所有的对象实例以及数组都要在堆上分配。Java堆是垃圾收集器管理的主要区域,因此很多时候也被称做“GC堆”。从内存回收的角度看,由于现在收集器基本都采用分代</div> </li> <li><a href="/article/1892385065640456192.htm" title="MapReduce 读取 Hive ORC ArrayIndexOutOfBoundsException: 1024 异常解决" target="_blank">MapReduce 读取 Hive ORC ArrayIndexOutOfBoundsException: 1024 异常解决</a> <span class="text-muted">一张假钞</span> <a class="tag" taget="_blank" href="/search/mapreduce/1.htm">mapreduce</a><a class="tag" taget="_blank" href="/search/hive/1.htm">hive</a><a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%95%B0%E6%8D%AE/1.htm">大数据</a> <div>个人博客地址:MapReduce读取HiveORCArrayIndexOutOfBoundsException:1024异常解决|一张假钞的真实世界在MR处理ORC的时候遇到如下异常:Exceptioninthread"main"java.lang.ArrayIndexOutOfBoundsException:1024atorg.apache.orc.impl.RunLengthIntegerRe</div> </li> <li><a href="/article/1892378626226188288.htm" title="FastGPT接入向量模型 M3E 和 重排模型 bge-reranker-large" target="_blank">FastGPT接入向量模型 M3E 和 重排模型 bge-reranker-large</a> <span class="text-muted">福葫芦</span> <a class="tag" taget="_blank" href="/search/M3E/1.htm">M3E</a><a class="tag" taget="_blank" href="/search/M3E/1.htm">M3E</a><a class="tag" taget="_blank" href="/search/FASTGPT/1.htm">FASTGPT</a> <div>一、FastGPT接入向量模型M3E1.拉取m3e镜像#GPU模式启动,并把m3e加载到fastgpt同一个网络dockerpullregistry.cn-hangzhou.aliyuncs.com/fastgpt_docker/m3e-large-api2.查看镜像dockerimages可以按照有一个名称为registry.cn-hangzhou.aliyuncs.com/fastgpt_do</div> </li> <li><a href="/article/1892378374161100800.htm" title="记录一次进程被操作系统强制终止(OOM Killer)" target="_blank">记录一次进程被操作系统强制终止(OOM Killer)</a> <span class="text-muted">别告诉我有BUG</span> <a class="tag" taget="_blank" href="/search/jvm/1.htm">jvm</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>问题背景场景:在一次系统迁移中,团队将原本运行在16G内存物理机的Java服务迁移到8G内存虚拟机,直接复用了原有的JVM参数(如-Xmx12g)。服务启动后运行正常,但几小时后突然宕机,日志中无明确错误,仅显示进程终止。影响:服务不可用持续30分钟部分业务数据丢失,用户投诉激增分析过程1.初步排查现象确认:进程消失,无Java堆栈或异常日志。系统日志/var/log/messages中发现OOM</div> </li> <li><a href="/article/1892370553935818752.htm" title="Flink CDC报错ArrayIndexOutOfBoundsException解决思路" target="_blank">Flink CDC报错ArrayIndexOutOfBoundsException解决思路</a> <span class="text-muted">学亮编程手记</span> <a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%95%B0%E6%8D%AE/1.htm">大数据</a><a class="tag" taget="_blank" href="/search/flink/1.htm">flink</a><a class="tag" taget="_blank" href="/search/doris/1.htm">doris</a> <div>FlinkCDC用两个并行度会报错。一个并行度就不会报错。不知道是什么原因?同步java.lang.ArrayIndexOutOfBoundsException?解决思路看日志,应该是mysql文本字段中有换行符之类的,应该会有一个url的报错提示,然后curl那个url看具体报错。这个问题可能是由于FlinkCDC的并行度设置不正确导致的。当您尝试使用两个并行度时,可能会遇到数组越界异常(jav</div> </li> <li><a href="/article/1892370554577547264.htm" title="【python】懒人福利,通过Python的JIRA库操作JIRA,自动批量提交关闭bug,提高效率" target="_blank">【python】懒人福利,通过Python的JIRA库操作JIRA,自动批量提交关闭bug,提高效率</a> <span class="text-muted">bulabula2022</span> <a class="tag" taget="_blank" href="/search/%23/1.htm">#</a><a class="tag" taget="_blank" href="/search/CI%E6%8C%81%E7%BB%AD%E9%9B%86%E6%88%90/1.htm">CI持续集成</a><a class="tag" taget="_blank" href="/search/Python/1.htm">Python</a><a class="tag" taget="_blank" href="/search/jira/1.htm">jira</a> <div>简介:Jira是目前比较流行的基于Java架构的管理系统(Atlassian公司支持),有开源代码,方便做二次开发(可扩展性)。Jira是一款功能非常强大的管理工具,广泛的用来缺陷跟踪、用例管理、需求收集、任务跟踪、工时管理、项目计划管理等工作领域。python有支持操作Jira的第三方包,方便自定义一些自动化操作。需要安装jira库:pipinstalljiraJira认证fromjiraimp</div> </li> <li><a href="/article/1892369167231807488.htm" title="redis 如何保证缓存和数据库一致性?解决策略如下" target="_blank">redis 如何保证缓存和数据库一致性?解决策略如下</a> <span class="text-muted">Foolforuuu</span> <a class="tag" taget="_blank" href="/search/%E7%BC%93%E5%AD%98/1.htm">缓存</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a><a class="tag" taget="_blank" href="/search/redis/1.htm">redis</a> <div>Redis与数据库的数据保持一致,传统策略是先读缓存,未命中则读数据库并回填缓存,但方式这种维护成本较高。下面是几种传统常见的策略及其优缺点:【策略1】先写MySQL。成功后,更新或删除Redis中的对应数据。优点:简单易实现。缺点:存在短暂的不一致。【策略2】先写Redis。异步或定时将Redis数据同步到MySQL。优点:提升写性能。缺点:同步延迟可能导致数据丢失。【策略3】读Redis,命</div> </li> <li><a href="/article/1892368445526306816.htm" title="百万架构师第四十课:RabbitMq:RabbitMq-工作模型与JAVA编程|JavaGuide" target="_blank">百万架构师第四十课:RabbitMq:RabbitMq-工作模型与JAVA编程|JavaGuide</a> <span class="text-muted"></span> <a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a> <div>来源:https://javaguide.netRabbitMQ1-工作模型与Java编程课前准备预习资料Windows安装步骤Linux安装步骤官网文章中文翻译系列环境说明操作系统:CentOS7JDK:1.8Erlang:19.0.4或最新版RabbitMQ:3.6.12或最新版版本对应关系典型应用场景跨系统的异步通信。人民银行二代支付系统,使用重量级消息队列IBMMQ,异步,解耦,削峰都有体</div> </li> <li><a href="/article/1892367403426312192.htm" title="Java面试题中高级进阶(JVM篇Java内存)" target="_blank">Java面试题中高级进阶(JVM篇Java内存)</a> <span class="text-muted">李老头探索</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/jvm/1.htm">jvm</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>前言本来想着给自己放松一下,刷刷博客,突然被几道面试题难倒!说说Java内存结构?说说对象分配规则?描述一下JVM加载class文件的原理机制?似乎有点模糊了,那就大概看一下面试题吧。好记性不如烂键盘***12万字的java面试题整理***Java内存结构方法区和堆是所有线程共享的内存区域;而java栈、本地方法栈和程序员计数器是运行是线程私有的内存区域。Java堆(Heap),是Java虚拟机所</div> </li> <li><a href="/article/1892366269613666304.htm" title="【JavaSE】GUI编程(图形界面)" target="_blank">【JavaSE】GUI编程(图形界面)</a> <span class="text-muted">lil_侯昊</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>GUI(GraphicalUserInterface)图形用户界面-àjava提供的图形用户界面UI–用户界面Swing概述Javax.swing包此包中包含了java主要的图形界面的实现类●swing是一个为Java设计的GUI工具包javax.swing,该包中包括了图形用户界面的各种组件支持。●一个Java的图形界面,由各种不同类型的“元素”组成,这些“元素”被称为组件(Component)</div> </li> <li><a href="/article/1892366017368223744.htm" title="蓝桥杯 Java B 组之设计 LRU 缓存" target="_blank">蓝桥杯 Java B 组之设计 LRU 缓存</a> <span class="text-muted">计算机小白一个</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E8%93%9D%E6%A1%A5%E6%9D%AF/1.htm">蓝桥杯</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a> <div>Day7:综合练习-设计LRU缓存一、什么是LRU(LeastRecentlyUsed)缓存?LRU(LeastRecentlyUsed)缓存是一种基于最近最少使用策略的缓存机制,用于管理固定大小的缓存,当缓存满时,会淘汰最久未被使用的元素。LRU设计核心缓存的最大容量capacity支持get(key)操作(O(1)时间复杂度)支持put(key,value)操作(O(1)时间复杂度)当缓存满时</div> </li> <li><a href="/article/1892364372941008896.htm" title="JVM篇:内存分区及作用及各部分可能发生的异常" target="_blank">JVM篇:内存分区及作用及各部分可能发生的异常</a> <span class="text-muted">ashane1314</span> <a class="tag" taget="_blank" href="/search/jvm/1.htm">jvm</a> <div>一、运行时数据区总览二、JVM内存分区及异常1.程序计数器(ProgramCounterRegister)作用:记录当前线程执行字节码的地址(行号),保证线程切换后能恢复到正确位置。特点:线程私有,唯一无内存溢出的区域。异常:无。由JVM规范严格管理,不会发生内存溢出。2.虚拟机栈(JavaVirtualMachineStack)作用:存储方法调用的栈帧(局部变量表、操作数栈、动态链接、方法出口等</div> </li> <li><a href="/article/1892359705951531008.htm" title="npm多个registry如果配置,如何管理?工具nrm登场" target="_blank">npm多个registry如果配置,如何管理?工具nrm登场</a> <span class="text-muted">大橙子-</span> <a class="tag" taget="_blank" href="/search/npm/1.htm">npm</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/vue.js/1.htm">vue.js</a> <div>通过工具nrm(NPMregistrymanager)来管理,指令简单,随时切换1.全局安装npmi-gnrm2.查看版本,测试是否下载成功nrm-V3.查看所有源nrmls4.添加源其中:csdn为自定义名称,根据自己情况自定义即可地址:https://************nrmaddcsdnhttps://************5.删除源nrmdelcsdn6.切换源nrmusecsdn</div> </li> <li><a href="/article/1892356428530774016.htm" title="Java集合之ArrayList(含源码解析 超详细)" target="_blank">Java集合之ArrayList(含源码解析 超详细)</a> <span class="text-muted">&星辰入梦来&</span> <a class="tag" taget="_blank" href="/search/Java%E9%9B%86%E5%90%88/1.htm">Java集合</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>1.ArrayList简介ArrayList的底层是数组队列,相当于动态数组。与Java中的数组相比,它的容量能动态增长。在添加大量元素前,应用程序可以使用ensureCapacity操作来增加ArrayList实例的容量。这可以减少递增式再分配的数量。ArrayList继承于AbstructList,实现了List,RandomAccess,Cloneable,Java.io.Serializa</div> </li> <li><a href="/article/1892350883237261312.htm" title="高并发系统架构设计全链路指南" target="_blank">高并发系统架构设计全链路指南</a> <span class="text-muted">power-辰南</span> <a class="tag" taget="_blank" href="/search/java%E6%8A%80%E6%9C%AF%E6%9E%B6%E6%9E%84%E5%B8%88%E6%88%90%E9%95%BF%E4%B8%93%E6%A0%8F/1.htm">java技术架构师成长专栏</a><a class="tag" taget="_blank" href="/search/%E7%B3%BB%E7%BB%9F%E6%9E%B6%E6%9E%84/1.htm">系统架构</a><a class="tag" taget="_blank" href="/search/%E5%88%86%E5%B8%83%E5%BC%8F/1.htm">分布式</a><a class="tag" taget="_blank" href="/search/%E9%AB%98%E5%B9%B6%E5%8F%91/1.htm">高并发</a><a class="tag" taget="_blank" href="/search/springcloud/1.htm">springcloud</a> <div>第一章:架构优化核心目标:提升系统高并发&高可用能力,优化架构,提高吞吐量。1.1微服务高可用优化解决问题:微服务可能存在单点故障、扩展性差、调用效率低等问题。1.1.1服务无状态化目的:让服务实例可以随时扩缩容、快速恢复,避免单点故障。可能的问题现象影响本地存储Session,导致用户粘连某个实例实例挂掉后,用户重新登录订单等业务逻辑依赖本地缓存容器扩缩时数据丢失静态文件(Excel/图片)存本</div> </li> <li><a href="/article/35.htm" title="JVM StackMapTable 属性的作用及理解" target="_blank">JVM StackMapTable 属性的作用及理解</a> <span class="text-muted">lijingyao8206</span> <a class="tag" taget="_blank" href="/search/jvm/1.htm">jvm</a><a class="tag" taget="_blank" href="/search/%E5%AD%97%E8%8A%82%E7%A0%81/1.htm">字节码</a><a class="tag" taget="_blank" href="/search/Class%E6%96%87%E4%BB%B6/1.htm">Class文件</a><a class="tag" taget="_blank" href="/search/StackMapTable/1.htm">StackMapTable</a> <div>        在Java 6版本之后JVM引入了栈图(Stack Map Table)概念。为了提高验证过程的效率,在字节码规范中添加了Stack Map Table属性,以下简称栈图,其方法的code属性中存储了局部变量和操作数的类型验证以及字节码的偏移量。也就是一个method需要且仅对应一个Stack Map Table。在Java 7版</div> </li> <li><a href="/article/162.htm" title="回调函数调用方法" target="_blank">回调函数调用方法</a> <span class="text-muted">百合不是茶</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>最近在看大神写的代码时,.发现其中使用了很多的回调 ,以前只是在学习的时候经常用到 ,现在写个笔记 记录一下   代码很简单:           MainDemo  :调用方法  得到方法的返回结果         </div> </li> <li><a href="/article/289.htm" title="[时间机器]制造时间机器需要一些材料" target="_blank">[时间机器]制造时间机器需要一些材料</a> <span class="text-muted">comsci</span> <a class="tag" taget="_blank" href="/search/%E5%88%B6%E9%80%A0/1.htm">制造</a> <div>      根据我的计算和推测,要完全实现制造一台时间机器,需要某些我们这个世界不存在的物质     和材料...       甚至可以这样说,这种材料和物质,我们在反应堆中也无法获得......      </div> </li> <li><a href="/article/416.htm" title="开口埋怨不如闭口做事" target="_blank">开口埋怨不如闭口做事</a> <span class="text-muted">邓集海</span> <a class="tag" taget="_blank" href="/search/%E9%82%93%E9%9B%86%E6%B5%B7+%E5%81%9A%E4%BA%BA+%E5%81%9A%E4%BA%8B+%E5%B7%A5%E4%BD%9C/1.htm">邓集海 做人 做事 工作</a> <div>“开口埋怨,不如闭口做事。”不是名人名言,而是一个普通父亲对儿子的训导。但是,因为这句训导,这位普通父亲却造就了一个名人儿子。这位普通父亲造就的名人儿子,叫张明正。      张明正出身贫寒,读书时成绩差,常挨老师批评。高中毕业,张明正连普通大学的分数线都没上。高考成绩出来后,平时开口怨这怨那的张明正,不从自身找原因,而是不停地埋怨自己家庭条件不好、埋怨父母没有给他创造良好的学习环境。      </div> </li> <li><a href="/article/543.htm" title="jQuery插件开发全解析,类级别与对象级别开发" target="_blank">jQuery插件开发全解析,类级别与对象级别开发</a> <span class="text-muted">IT独行者</span> <a class="tag" taget="_blank" href="/search/jquery/1.htm">jquery</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91/1.htm">开发</a><a class="tag" taget="_blank" href="/search/%E6%8F%92%E4%BB%B6%E3%80%80/1.htm">插件 </a><a class="tag" taget="_blank" href="/search/%E5%87%BD%E6%95%B0/1.htm">函数</a> <div>jQuery插件的开发包括两种: 一种是类级别的插件开发,即给 jQuery添加新的全局函数,相当于给 jQuery类本身添加方法。 jQuery的全局函数就是属于 jQuery命名空间的函数,另一种是对象级别的插件开发,即给 jQuery对象添加方法。下面就两种函数的开发做详细的说明。   1 、类级别的插件开发 类级别的插件开发最直接的理解就是给jQuer</div> </li> <li><a href="/article/670.htm" title="Rome解析Rss" target="_blank">Rome解析Rss</a> <span class="text-muted">413277409</span> <a class="tag" taget="_blank" href="/search/Rome%E8%A7%A3%E6%9E%90Rss/1.htm">Rome解析Rss</a> <div>import java.net.URL;  import java.util.List;    import org.junit.Test;    import com.sun.syndication.feed.synd.SyndCategory;  import com.sun.syndication.feed.synd.S</div> </li> <li><a href="/article/797.htm" title="RSA加密解密" target="_blank">RSA加密解密</a> <span class="text-muted">无量</span> <a class="tag" taget="_blank" href="/search/%E5%8A%A0%E5%AF%86/1.htm">加密</a><a class="tag" taget="_blank" href="/search/%E8%A7%A3%E5%AF%86/1.htm">解密</a><a class="tag" taget="_blank" href="/search/rsa/1.htm">rsa</a> <div>RSA加密解密代码 代码有待整理 package com.tongbanjie.commons.util; import java.security.Key; import java.security.KeyFactory; import java.security.KeyPair; import java.security.KeyPairGenerat</div> </li> <li><a href="/article/924.htm" title="linux 软件安装遇到的问题" target="_blank">linux 软件安装遇到的问题</a> <span class="text-muted">aichenglong</span> <a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E9%81%87%E5%88%B0%E7%9A%84%E9%97%AE%E9%A2%98/1.htm">遇到的问题</a><a class="tag" taget="_blank" href="/search/ftp/1.htm">ftp</a> <div>1 ftp配置中遇到的问题    500 OOPS: cannot change directory   出现该问题的原因:是SELinux安装机制的问题.只要disable SELinux就可以了   修改方法:1 修改/etc/selinux/config 中SELINUX=disabled    2 source /etc</div> </li> <li><a href="/article/1051.htm" title="面试心得" target="_blank">面试心得</a> <span class="text-muted">alafqq</span> <a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a> <div>最近面试了好几家公司。记录下; 支付宝,面试我的人胖胖的,看着人挺好的;博彦外包的职位,面试失败; 阿里金融,面试官人也挺和善,只不过我让他吐血了。。。 由于印象比较深,记录下; 1,自我介绍 2,说下八种基本类型;(算上string。楼主才答了3种,哈哈,string其实不是基本类型,是引用类型) 3,什么是包装类,包装类的优点; 4,平时看过什么书?NND,什么书都没看过。。照样</div> </li> <li><a href="/article/1178.htm" title="java的多态性探讨" target="_blank">java的多态性探讨</a> <span class="text-muted">百合不是茶</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>java的多态性是指main方法在调用属性的时候类可以对这一属性做出反应的情况 //package 1; class A{ public void test(){ System.out.println("A"); } } class D extends A{ public void test(){ S</div> </li> <li><a href="/article/1305.htm" title="网络编程基础篇之JavaScript-学习笔记" target="_blank">网络编程基础篇之JavaScript-学习笔记</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a> <div>1.documentWrite <html> <head> <script language="JavaScript"> document.write("这是电脑网络学校"); document.close(); </script> </h</div> </li> <li><a href="/article/1432.htm" title="探索JUnit4扩展:深入Rule" target="_blank">探索JUnit4扩展:深入Rule</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/JUnit/1.htm">JUnit</a><a class="tag" taget="_blank" href="/search/Rule/1.htm">Rule</a><a class="tag" taget="_blank" href="/search/%E5%8D%95%E5%85%83%E6%B5%8B%E8%AF%95/1.htm">单元测试</a> <div>        本文将进一步探究Rule的应用,展示如何使用Rule来替代@BeforeClass,@AfterClass,@Before和@After的功能。         在上一篇中提到,可以使用Rule替代现有的大部分Runner扩展,而且也不提倡对Runner中的withBefores(),withAfte</div> </li> <li><a href="/article/1559.htm" title="[CSS]CSS浮动十五条规则" target="_blank">[CSS]CSS浮动十五条规则</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/css/1.htm">css</a> <div>这些浮动规则,主要是参考CSS权威指南关于浮动规则的总结,然后添加一些简单的例子以验证和理解这些规则。   1. 所有的页面元素都可以浮动 2. 一个元素浮动后,会成为块级元素,比如<span>,a, strong等都会变成块级元素 3.一个元素左浮动,会向最近的块级父元素的左上角移动,直到浮动元素的左外边界碰到块级父元素的左内边界;如果这个块级父元素已经有浮动元素停靠了</div> </li> <li><a href="/article/1686.htm" title="【Kafka六】Kafka Producer和Consumer多Broker、多Partition场景" target="_blank">【Kafka六】Kafka Producer和Consumer多Broker、多Partition场景</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/partition/1.htm">partition</a> <div>0.Kafka服务器配置 3个broker 1个topic,6个partition,副本因子是2 2个consumer,每个consumer三个线程并发读取   1. Producer package kafka.examples.multibrokers.producers; import java.util.Properties; import java.util.</div> </li> <li><a href="/article/1813.htm" title="zabbix_agentd.conf配置文件详解" target="_blank">zabbix_agentd.conf配置文件详解</a> <span class="text-muted">ronin47</span> <a class="tag" taget="_blank" href="/search/zabbix+%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6/1.htm">zabbix 配置文件</a> <div>Aliaskey的别名,例如 Alias=ttlsa.userid:vfs.file.regexp[/etc/passwd,^ttlsa:.:([0-9]+),,,,\1], 或者ttlsa的用户ID。你可以使用key:vfs.file.regexp[/etc/passwd,^ttlsa:.: ([0-9]+),,,,\1],也可以使用ttlsa.userid。备注: 别名不能重复,但是可以有多个</div> </li> <li><a href="/article/1940.htm" title="java--19.用矩阵求Fibonacci数列的第N项" target="_blank">java--19.用矩阵求Fibonacci数列的第N项</a> <span class="text-muted">bylijinnan</span> <a class="tag" taget="_blank" href="/search/fibonacci/1.htm">fibonacci</a> <div>参考了网上的思路,写了个Java版的: public class Fibonacci { final static int[] A={1,1,1,0}; public static void main(String[] args) { int n=7; for(int i=0;i<=n;i++){ int f=fibonac</div> </li> <li><a href="/article/2067.htm" title="Netty源码学习-LengthFieldBasedFrameDecoder" target="_blank">Netty源码学习-LengthFieldBasedFrameDecoder</a> <span class="text-muted">bylijinnan</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/netty/1.htm">netty</a> <div>先看看LengthFieldBasedFrameDecoder的官方API http://docs.jboss.org/netty/3.1/api/org/jboss/netty/handler/codec/frame/LengthFieldBasedFrameDecoder.html API举例说明了LengthFieldBasedFrameDecoder的解析机制,如下: 实</div> </li> <li><a href="/article/2194.htm" title="AES加密解密" target="_blank">AES加密解密</a> <span class="text-muted">chicony</span> <a class="tag" taget="_blank" href="/search/%E5%8A%A0%E5%AF%86%E8%A7%A3%E5%AF%86/1.htm">加密解密</a> <div>AES加解密算法,使用Base64做转码以及辅助加密: package com.wintv.common; import javax.crypto.Cipher; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySpec; import sun.misc.BASE64Decod</div> </li> <li><a href="/article/2321.htm" title="文件编码格式转换" target="_blank">文件编码格式转换</a> <span class="text-muted">ctrain</span> <a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A0%81%E6%A0%BC%E5%BC%8F/1.htm">编码格式</a> <div> package com.test; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; </div> </li> <li><a href="/article/2448.htm" title="mysql 在linux客户端插入数据中文乱码" target="_blank">mysql 在linux客户端插入数据中文乱码</a> <span class="text-muted">daizj</span> <a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a><a class="tag" taget="_blank" href="/search/%E4%B8%AD%E6%96%87%E4%B9%B1%E7%A0%81/1.htm">中文乱码</a> <div>1、查看系统客户端,数据库,连接层的编码  查看方法: http://daizj.iteye.com/blog/2174993 进入mysql,通过如下命令查看数据库编码方式: mysql>  show variables like 'character_set_%'; +--------------------------+------</div> </li> <li><a href="/article/2575.htm" title="好代码是廉价的代码" target="_blank">好代码是廉价的代码</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/%E7%A8%8B%E5%BA%8F%E5%91%98/1.htm">程序员</a><a class="tag" taget="_blank" href="/search/%E8%AF%BB%E4%B9%A6/1.htm">读书</a> <div>  长久以来我一直主张:好代码是廉价的代码。 当我跟做开发的同事说出这话时,他们的第一反应是一种惊愕,然后是将近一个星期的嘲笑,把它当作一个笑话来讲。 当他们走近看我的表情、知道我是认真的时,才收敛一点。 当最初的惊愕消退后,他们会用一些这样的话来反驳: “好代码不廉价,好代码是采用经过数十年计算机科学研究和积累得出的最佳实践设计模式和方法论建立起来的精心制作的程序代码。” 我只</div> </li> <li><a href="/article/2702.htm" title="Android网络请求库——android-async-http" target="_blank">Android网络请求库——android-async-http</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/android/1.htm">android</a> <div>在iOS开发中有大名鼎鼎的ASIHttpRequest库,用来处理网络请求操作,今天要介绍的是一个在Android上同样强大的网络请求库android-async-http,目前非常火的应用Instagram和Pinterest的Android版就是用的这个网络请求库。这个网络请求库是基于Apache HttpClient库之上的一个异步网络请求处理库,网络处理均基于Android的非UI线程,通</div> </li> <li><a href="/article/2829.htm" title="ORACLE 复习笔记之SQL语句的优化" target="_blank">ORACLE 复习笔记之SQL语句的优化</a> <span class="text-muted">eksliang</span> <a class="tag" taget="_blank" href="/search/SQL%E4%BC%98%E5%8C%96/1.htm">SQL优化</a><a class="tag" taget="_blank" href="/search/Oracle+sql%E8%AF%AD%E5%8F%A5%E4%BC%98%E5%8C%96/1.htm">Oracle sql语句优化</a><a class="tag" taget="_blank" href="/search/SQL%E8%AF%AD%E5%8F%A5%E7%9A%84%E4%BC%98%E5%8C%96/1.htm">SQL语句的优化</a> <div>转载请出自出处:http://eksliang.iteye.com/blog/2097999   SQL语句的优化总结如下   sql语句的优化可以按照如下六个步骤进行: 合理使用索引 避免或者简化排序 消除对大表的扫描 避免复杂的通配符匹配 调整子查询的性能 EXISTS和IN运算符 下面我就按照上面这六个步骤分别进行总结: </div> </li> <li><a href="/article/2956.htm" title="浅析:Android 嵌套滑动机制(NestedScrolling)" target="_blank">浅析:Android 嵌套滑动机制(NestedScrolling)</a> <span class="text-muted">gg163</span> <a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/%E7%A7%BB%E5%8A%A8%E5%BC%80%E5%8F%91/1.htm">移动开发</a><a class="tag" taget="_blank" href="/search/%E6%BB%91%E5%8A%A8%E6%9C%BA%E5%88%B6/1.htm">滑动机制</a><a class="tag" taget="_blank" href="/search/%E5%B5%8C%E5%A5%97/1.htm">嵌套</a> <div>谷歌在发布安卓 Lollipop版本之后,为了更好的用户体验,Google为Android的滑动机制提供了NestedScrolling特性 NestedScrolling的特性可以体现在哪里呢?<!--[if !supportLineBreakNewLine]--><!--[endif]--> 比如你使用了Toolbar,下面一个ScrollView,向上滚</div> </li> <li><a href="/article/3083.htm" title="使用hovertree菜单作为后台导航" target="_blank">使用hovertree菜单作为后台导航</a> <span class="text-muted">hvt</span> <a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/jquery/1.htm">jquery</a><a class="tag" taget="_blank" href="/search/.net/1.htm">.net</a><a class="tag" taget="_blank" href="/search/hovertree/1.htm">hovertree</a><a class="tag" taget="_blank" href="/search/asp.net/1.htm">asp.net</a> <div>  hovertree是一个jquery菜单插件,官方网址:http://keleyi.com/jq/hovertree/ ,可以登录该网址体验效果。 0.1.3版本:http://keleyi.com/jq/hovertree/demo/demo.0.1.3.htm hovertree插件包含文件: http://keleyi.com/jq/hovertree/css</div> </li> <li><a href="/article/3210.htm" title="SVG 教程 (二)矩形" target="_blank">SVG 教程 (二)矩形</a> <span class="text-muted">天梯梦</span> <a class="tag" taget="_blank" href="/search/svg/1.htm">svg</a> <div>SVG <rect> SVG Shapes SVG有一些预定义的形状元素,可被开发者使用和操作: 矩形 <rect> 圆形 <circle> 椭圆 <ellipse> 线 <line> 折线 <polyline> 多边形 <polygon> 路径 <path> </div> </li> <li><a href="/article/3337.htm" title="一个简单的队列" target="_blank">一个简单的队列</a> <span class="text-muted">luyulong</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/1.htm">数据结构</a><a class="tag" taget="_blank" href="/search/%E9%98%9F%E5%88%97/1.htm">队列</a> <div> public class MyQueue { private long[] arr; private int front; private int end; // 有效数据的大小 private int elements; public MyQueue() { arr = new long[10]; elements = 0; front </div> </li> <li><a href="/article/3464.htm" title="基础数据结构和算法九:Binary Search Tree" target="_blank">基础数据结构和算法九:Binary Search Tree</a> <span class="text-muted">sunwinner</span> <a class="tag" taget="_blank" href="/search/Algorithm/1.htm">Algorithm</a> <div>  A binary search tree (BST) is a binary tree where each node has a Comparable key (and an associated value) and satisfies the restriction that the key in any node is larger than the keys in all</div> </li> <li><a href="/article/3591.htm" title="项目出现的一些问题和体会" target="_blank">项目出现的一些问题和体会</a> <span class="text-muted">Steven-Walker</span> <a class="tag" taget="_blank" href="/search/DAO/1.htm">DAO</a><a class="tag" taget="_blank" href="/search/Web/1.htm">Web</a><a class="tag" taget="_blank" href="/search/servlet/1.htm">servlet</a> <div>     第一篇博客不知道要写点什么,就先来点近阶段的感悟吧。     这几天学了servlet和数据库等知识,就参照老方的视频写了一个简单的增删改查的,完成了最简单的一些功能,使用了三层架构。 dao层完成的是对数据库具体的功能实现,service层调用了dao层的实现方法,具体对servlet提供支持。  &</div> </li> <li><a href="/article/3718.htm" title="高手问答:Java老A带你全面提升Java单兵作战能力!" target="_blank">高手问答:Java老A带你全面提升Java单兵作战能力!</a> <span class="text-muted">ITeye管理员</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>本期特邀《Java特种兵》作者:谢宇,CSDN论坛ID: xieyuooo 针对JAVA问题给予大家解答,欢迎网友积极提问,与专家一起讨论! 作者简介: 淘宝网资深Java工程师,CSDN超人气博主,人称“胖哥”。 CSDN博客地址: http://blog.csdn.net/xieyuooo 作者在进入大学前是一个不折不扣的计算机白痴,曾经被人笑话过不懂鼠标是什么,</div> </li> </ul> </div> </div> </div> <div> <div class="container"> <div class="indexes"> <strong>按字母分类:</strong> <a href="/tags/A/1.htm" target="_blank">A</a><a href="/tags/B/1.htm" target="_blank">B</a><a href="/tags/C/1.htm" target="_blank">C</a><a href="/tags/D/1.htm" target="_blank">D</a><a href="/tags/E/1.htm" target="_blank">E</a><a href="/tags/F/1.htm" target="_blank">F</a><a href="/tags/G/1.htm" target="_blank">G</a><a href="/tags/H/1.htm" target="_blank">H</a><a href="/tags/I/1.htm" target="_blank">I</a><a href="/tags/J/1.htm" target="_blank">J</a><a href="/tags/K/1.htm" target="_blank">K</a><a href="/tags/L/1.htm" target="_blank">L</a><a href="/tags/M/1.htm" target="_blank">M</a><a href="/tags/N/1.htm" target="_blank">N</a><a href="/tags/O/1.htm" target="_blank">O</a><a href="/tags/P/1.htm" target="_blank">P</a><a href="/tags/Q/1.htm" target="_blank">Q</a><a href="/tags/R/1.htm" target="_blank">R</a><a href="/tags/S/1.htm" target="_blank">S</a><a href="/tags/T/1.htm" target="_blank">T</a><a href="/tags/U/1.htm" target="_blank">U</a><a href="/tags/V/1.htm" target="_blank">V</a><a href="/tags/W/1.htm" target="_blank">W</a><a href="/tags/X/1.htm" target="_blank">X</a><a href="/tags/Y/1.htm" target="_blank">Y</a><a href="/tags/Z/1.htm" target="_blank">Z</a><a href="/tags/0/1.htm" target="_blank">其他</a> </div> </div> </div> <footer id="footer" class="mb30 mt30"> <div class="container"> <div class="footBglm"> <a target="_blank" href="/">首页</a> - <a target="_blank" href="/custom/about.htm">关于我们</a> - <a target="_blank" href="/search/Java/1.htm">站内搜索</a> - <a target="_blank" href="/sitemap.txt">Sitemap</a> - <a target="_blank" href="/custom/delete.htm">侵权投诉</a> </div> <div class="copyright">版权所有 IT知识库 CopyRight © 2000-2050 E-COM-NET.COM , All Rights Reserved. <!-- <a href="https://beian.miit.gov.cn/" rel="nofollow" target="_blank">京ICP备09083238号</a><br>--> </div> </div> </footer> <!-- 代码高亮 --> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shCore.js"></script> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shLegacy.js"></script> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shAutoloader.js"></script> <link type="text/css" rel="stylesheet" href="/static/syntaxhighlighter/styles/shCoreDefault.css"/> <script type="text/javascript" src="/static/syntaxhighlighter/src/my_start_1.js"></script> </body> </html>