- 【存储中间件】Redis核心技术与实战(一):Redis入门与应用(技术全景、版本选择与安装、全局命令)
道友老李
架构师进阶-存储中间件Redis核心技术与实战中间件redis数据库
文章目录Redis入门与应用Redis的技术全景两大维度三大主线Redis的版本选择与安装**Redis的linux安装**Redis的启动默认配置带参数启动配置文件启动操作停止Redis全局命令键名的生产实践个人主页:道友老李欢迎加入社区:道友老李的学习社区Redis入门与应用Redis的技术全景Redis一个开源的基于键值对(Key-Value)NoSQL数据库。使用ANSIC语言编写、支持网
- 第十七:go 反射
小画家~
golanggolang开发语言后端
fmt.printf("%T",obj)//打印reflect的类型fmt.Printf("%T",obj)//*reflect.rtype//打印的是一个指针类型reflect包在Go语言中反射的相关功能由内置的reflect包提供,任意接口值在反射中都可以理解为由reflect.Type和reflect.Value两部分组成,并且reflect包提供了reflect.TypeOf和reflec
- 创建模式-工厂方法模式(Factory Method Pattern)
qxsorz
#创建模式抽象工厂模式
江城子·乙卯正月二十日夜记梦目的动机简单工厂示例代码目的定义一个创建对象的接口,该接口的子类具体负责创建具体的对象。工厂方法模式将对象的实例化延迟到子类。简单工厂是直接在创建方法中负责所有的产品的生成,造成该方法臃肿,并且当新增产品类时会修改该方法,违背了开闭原则OpenClosePrinciple。动机创建模式其实都是对new关键字的封装和抽象,工厂方法也不例外,所以工厂方法首先解决的就是创建问
- flutter的HTTP headers用法介绍
云水-禅心
FlutterflutterHttpClient
flutter的HTTPheaders用法介绍在Flutter中,HTTPheaders是用于在发送HTTP请求时传递额外信息的关键部分。它们可以用于身份验证、缓存控制、内容类型声明等。以下是关于Flutter中HTTPheaders的详细说明和用法。1.什么是HTTPHeaders?HTTPheaders是键值对(key-valuepairs),用于在客户端和服务器之间传递附加信息。例如:Con
- Spring setter注入和构造器注入引用数据类型和基本数据类型包括,集合类型的注入
ZZZZJava
springjava后端
setter简单类型注入用valueproperty标签:设置注入属性name属性:设置注入的属性名,实际是set方法对应的名称value属性:设置注入简单类型数据值setter引用类型注入用refproperty标签:设置注入属性name属性:设置注入的属性名,实际是set方法对应的名称ref属性:设置注入引用类型bean的id或name构造器简单类型注入用valueconstructor-ar
- Spring-setter注入和构造器注入
江湖大侠叶开花
SSMspringjavamybatis
使用setter方法注入简单类型和引用类型先给类中的属性创建setter方法简单类型(基本数据类型和String):在xml文件中使用property标签,name,value属性引用类型:在xml文件中使用property标签,name,ref属性name:对应BookServiceImpl中的属性名ref:对应配置文件中注册的bean的id使用构造器注入简单类型和引用类型先给类创建对应的构造方
- SpringBoot 外化配置及加载顺序
ashane1314
springbootpython后端
SpringBoot的外化配置加载顺序遵循特定的优先级规则,高优先级的配置会覆盖低优先级的。以下是详细的配置源加载顺序及规则:一、配置源的优先级(从高到低)命令行参数通过--key=value传递的参数,如java-jarapp.jar--server.port=8081。SPRING_APPLICATION_JSON属性通过环境变量或系统属性传递的JSON格式配置,如SPRING_APPLICA
- N卡 英伟达Nvidia 显卡及其计算能力(Compute Capability)表
Panesle
显卡Nvidiagpu算力英伟达
N卡英伟达Nvidia显卡及其计算能力(ComputeCapability)表某些库或软件对显卡算力有要求,可参考下表核对。比如:AWQ量化模型不支持算力小于7.5的显卡V100:ValueError:ThequantizationmethodawqisnotsupportedforthecurrentGPU.Minimumcapability:75.Currentcapability:70.
- Stream.of()用法示例
爆米花9958
Java8新特性java
Stream.of用于为给定元素创建顺序流。我们可以传递单个元素或多个元素。查看java文档中的Stream.of方法声明。staticStreamof(Tt)参数:传递单个元素。返回值:该方法返回一个包含一个元素的流。staticStreamof(T...values)参数:传递多个元素。返回值:该方法返回包含给定元素的流。Stream.of创建有限元素流。为了创建一个无限元素流,我们可以使用S
- cefsharp 带cookie访问_Python爬虫:scrapy之Cookie和Session
长虹万贯
cefsharp带cookie访问
关于cookie和session估计很多程序员面试的时候都会被问到,这两个概念在写web以及爬虫中都会涉及,并且两者可能很多人直接回答也不好说的特别清楚,所以整理这样一篇文章,也帮助自己加深理解什么是Cookie其实简单的说就是当用户通过http协议访问一个服务器的时候,这个服务器会将一些Name/Value键值对返回给客户端浏览器,并将这些数据加上一些限制条件。在条件符合时,这个用户下次再访问服
- js触发onclick事件获取文本框中的值value
吾与谁归in
Web前端jsjavascripthtml5
1.首先我们创建一到两个文本框,使用标签用户名:密码:2.接着我们创建script代码,创建函数获取文本框中的值,获取值是通过文本框的id获取的,使用到了标签/**创建函数*/functiononclickFun(){/*通过id获取元素*/varuser=document.getElementById("name")/*警示窗口*/alert("你好【"+user.value+"】,欢迎进入系统
- ES8的Java API client 8.0 简单示例操作 Elasticsearch
it-shiyadi
esjavaelasticsearch开发语言
1.加入依赖co.elastic.clientselasticsearch-java8.12.22.配置类@Slf4j@ConfigurationpublicclassElasticSearchConfig{@Value("${elasticsearch.hosts}")privateStringhosts;@Value("${elasticsearch.port}")privateintport
- uniapp 滚动尺
走,带你去玩
前端javascript开发语言
scale组件代码(部分class样式使用到了uview1.0的样式){{item/10}}exportdefault{name:'Scale',components:{},props:{value:{type:String,default:'0.0'},//最小值min:{type:Number,default:0,},//最大值max:{type:Number,default:100,},//
- 【WPF】Slider滑动方法(INotifyPropertyChanged、ValueChanged )响应速度对比分析
wangnaisheng
WPFC#c#wpf
一、Slider基础用法在XAML中添加一个Slider控件,并设置其基本属性:Maximum="100"Value="50"Width="200"Height="30"HorizontalAlignment="Left"VerticalAlignment="Top"TickFrequency="10"TickPlacement="BottomRight"IsSnapToTickEnabled="
- vue3新增修改页面,字段来源于其他表
大波V5
vue.jselementuijavascript
确定取消constunitOptions=ref([]);constlistAdspunitAllLocal=async()=>{if(!unitOptions.value.length){constresUnit=awaitlistAdspunitAll();unitOptions.value=resUnit.data;}}//单位生成ID-Name映射字典constidToNameUnitMa
- 动态规划双剑合璧:C++与Python征服洛谷三大经典DP问题
三流搬砖艺术家
动态规划c++python
动态规划核心思想状态定义→转移方程→边界处理→时空优化本文精选洛谷动态规划题单中三大经典问题,通过C++与Python双语言对比实现,彻底掌握DP精髓!题目一:P1048采药(01背包模板)题目描述在限定时间T内采集草药,每株草药有采集时间time[i]和价值value[i],求最大总价值。解题思路状态定义:dp[j]表示时间j能获得的最大价值转移方程:dp[j]=max(dp[j],dp[j-t
- java实体数据校验validation
秋风未动蝉已先觉
javajava
javax.validationvalidation-api1.1.0.Finalorg.hibernatehibernate-validator5.4.1.Final//实体publicclassEntity{@NotNull(message="name字段值不能为空")privateStringname;@Max(value=20,message="address最大长度为20")privat
- 查看 jvm 堆外内存大小
Horizon_Zy
JVM相关java开发语言后端
java.nio.Bits#reservedMemor该值为堆外内存占用大小。可以通过arthasattach后用ognl进行输出。
[email protected]@reservedMemory.value
- 微信小程序全局分享好友、朋友圈
webYin
微信小程序前端
//app.js/***全局分享配置,页面无需开启分享*如页面开启分享开关,则走页面分享配置(即使未配置内容)*/App({onLaunch:function(value){this.defaultPage();},//设置全局默认分享defaultPage(){(function(){varPageTmp=Page;Page=function(pageConfig){//设置全局默认分享page
- 关于java:如何一次向arraylist添加多个值?
sqzr316
Java
Howtoaddmanyvaluestoanarraylistatonce?假设我有以下代码:Stringa="sometexte";Stringb="text";Stringc="sf";Stringd="kjel";Stringe="lkjl";ArrayListlist=newArrayList();//betterwaytodoalltheseaddswithouthavingtotype
- C++之list删除元素
csdn_zhangchunfeng
C++VS技术管理索引列表c++
C++之list删除元素对容器list存储的元素执行删除操作的时候,一般都是使用其成员函数实现的:(1)clear():删除list容器中的所有元素(2)remove(value):删除容器中所有为value的元素(3)remove_if():删除容器中满足条件的元素(4)unique():删除容器中相邻的重复元素,只留下一个(5)erase():删除list容器中指定位置处的元素,也可以删除容器
- Django获取request请求中的参数的四种方式
user_san
Django
一、查询字符串数据(string)形如:?key1=value1&key2=value2使用1.request.GET.get("key","value")获取2.request.GET.getlist("key",[])获取最后一个值二、请求体数据(body):比如:表单数据、json、…2.1表单数据:(只支持post方式发来的请求)request.POST.get("name","")2.1
- 鸿蒙HarmonyOS NEXT开发:文本通用
「已注销」
鸿蒙ArkTSharmonyos华为鸿蒙android交互
文本通用文本通用属性目前只针对包含文本元素的组件,设置文本样式。说明:从APIVersion7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。fontColorfontColor(value:ResourceColor)设置字体颜色。卡片能力:从APIversion9开始,该接口支持在ArkTS卡片中使用。原子化服务API:从APIversion11开始,该接口支持在原子化服
- Vue3中computed() 的全面用法(简单易懂,一篇就会)
番茄小酱001
VUE3vue.js前端javascript
1:引入import{computed}from'vue'2:使用letprice=ref(10);letamount=ref(3);lettotal=computed(()=>{returnprice.value*amount.value})或者constinitSearchData=ref([{value:computed(()=>objectNo.value).value},])
- sqlite3学习之PRAGMA 命令的使用
luyaran
原创sqlite3学习记录sqlite3PRAGMA命令
SQLite的PRAGMA命令是一个特殊的命令,可以用在SQLite环境内控制各种环境变量和状态标志。一个PRAGMA值可以被读取,也可以根据需求进行设置,如果我们要查询当前的PRAGMA值,只需要提供该pragma的名字,如下:PRAGMApragma_name;为PRAGMA设置一个新的值,语法如下:PRAGMApragma_name=value;设置模式,可以是名称或等值的整数,但返回的值将
- 设计模式七大设计原则Java 实践
sevevty-seven
设计模式java开发语言
1.单一职责原则(SingleResponsibilityPrinciple,SRP)单一职责原则规定一个类应该仅对一项职责负责。这意味着一个类应只关注一件事情,以便降低类之间的耦合度,提高代码的可维护性。示例://用户登录类publicclassUserLogin{publicbooleanlogin(Stringusername,Stringpassword){//登录逻辑returntrue
- ThreadLocal内存泄漏
PinkandWhite
complex&instrument面试&面试题javathread弱引用
ThreadLocal内存泄漏实线代表强引用,虚线代表弱引用每一个Thread维护一个ThreadLocalMap,key为使用弱引用的ThreadLocal实例,value为线程变量的副本。强引用,使用最普遍的引用,一个对象具有强引用,不会被垃圾回收站回收。当内存空间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不回收这种对象。一般情况下,如果想取消强引用和
- Java开发高级工程师面试,etcd:一款比Redis更骚的分布式锁的实现方式
m0_60732427
程序员面试java后端
Watch机制支持Watch某个固定的key,也支持Watch一个范围(前缀机制)。当被Watch的key或范围发生变化,客户端将收到通知;在实现分布式锁时,如果抢锁失败,可通过Prefix机制返回的Key-Value列表获得Revision比自己小且相差最小的key(称为pre-key),对pre-key进行监听,因为只有它释放锁,自己才能获得锁,如果Watch到pre-key的DELETE事件
- doris:分析 S3/HDFS 上的文件
向阳1218
大数据doris
通过TableValueFunction功能,Doris可以直接将对象存储或HDFS上的文件作为Table进行查询分析。并且支持自动的列类型推断。提示使用方式更多使用方式可参阅TableValueFunction文档:S3:支持S3兼容的对象存储上的文件分析。HDFS:支持HDFS上的文件分析。这里我们通过S3TableValueFunction举例说明如何进行文件分析。自动推断文件列类型>DES
- 玩转python: 掌握Python数据结构之字典
千益
浅显易懂玩转python数据结构python开发语言
字典(Dictionary)是Python中一种非常强大的数据结构,它以键值对(Key-ValuePair)的形式存储数据。字典的特点是快速查找、灵活存储和高效操作。想象一下字典就像一本电话簿:通过名字(键)可以快速找到对应的电话号码(值)。本文将带你深入理解字典的概念,并通过丰富的案例展示其实际应用。字典的常见方法以下是字典的20个常见方法及其功能的简要说明:方法名功能描述clear()移除字典
- rust的指针作为函数返回值是直接传递,还是先销毁后创建?
wudixiaotie
返回值
这是我自己想到的问题,结果去知呼提问,还没等别人回答, 我自己就想到方法实验了。。
fn main() {
let mut a = 34;
println!("a's addr:{:p}", &a);
let p = &mut a;
println!("p's addr:{:p}", &a
- java编程思想 -- 数据的初始化
百合不是茶
java数据的初始化
1.使用构造器确保数据初始化
/*
*在ReckInitDemo类中创建Reck的对象
*/
public class ReckInitDemo {
public static void main(String[] args) {
//创建Reck对象
new Reck();
}
}
- [航天与宇宙]为什么发射和回收航天器有档期
comsci
地球的大气层中有一个时空屏蔽层,这个层次会不定时的出现,如果该时空屏蔽层出现,那么将导致外层空间进入的任何物体被摧毁,而从地面发射到太空的飞船也将被摧毁...
所以,航天发射和飞船回收都需要等待这个时空屏蔽层消失之后,再进行
&
- linux下批量替换文件内容
商人shang
linux替换
1、网络上现成的资料
格式: sed -i "s/查找字段/替换字段/g" `grep 查找字段 -rl 路径`
linux sed 批量替换多个文件中的字符串
sed -i "s/oldstring/newstring/g" `grep oldstring -rl yourdir`
例如:替换/home下所有文件中的www.admi
- 网页在线天气预报
oloz
天气预报
网页在线调用天气预报
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transit
- SpringMVC和Struts2比较
杨白白
springMVC
1. 入口
spring mvc的入口是servlet,而struts2是filter(这里要指出,filter和servlet是不同的。以前认为filter是servlet的一种特殊),这样就导致了二者的机制不同,这里就牵涉到servlet和filter的区别了。
参见:http://blog.csdn.net/zs15932616453/article/details/8832343
2
- refuse copy, lazy girl!
小桔子
copy
妹妹坐船头啊啊啊啊!都打算一点点琢磨呢。文字编辑也写了基本功能了。。今天查资料,结果查到了人家写得完完整整的。我清楚的认识到:
1.那是我自己觉得写不出的高度
2.如果直接拿来用,很快就能解决问题
3.然后就是抄咩~~
4.肿么可以这样子,都不想写了今儿个,留着作参考吧!拒绝大抄特抄,慢慢一点点写!
- apache与php整合
aichenglong
php apache web
一 apache web服务器
1 apeche web服务器的安装
1)下载Apache web服务器
2)配置域名(如果需要使用要在DNS上注册)
3)测试安装访问http://localhost/验证是否安装成功
2 apache管理
1)service.msc进行图形化管理
2)命令管理,配
- Maven常用内置变量
AILIKES
maven
Built-in properties
${basedir} represents the directory containing pom.xml
${version} equivalent to ${project.version} (deprecated: ${pom.version})
Pom/Project properties
Al
- java的类和对象
百合不是茶
JAVA面向对象 类 对象
java中的类:
java是面向对象的语言,解决问题的核心就是将问题看成是一个类,使用类来解决
java使用 class 类名 来创建类 ,在Java中类名要求和构造方法,Java的文件名是一样的
创建一个A类:
class A{
}
java中的类:将某两个事物有联系的属性包装在一个类中,再通
- JS控制页面输入框为只读
bijian1013
JavaScript
在WEB应用开发当中,增、删除、改、查功能必不可少,为了减少以后维护的工作量,我们一般都只做一份页面,通过传入的参数控制其是新增、修改或者查看。而修改时需将待修改的信息从后台取到并显示出来,实际上就是查看的过程,唯一的区别是修改时,页面上所有的信息能修改,而查看页面上的信息不能修改。因此完全可以将其合并,但通过前端JS将查看页面的所有信息控制为只读,在信息量非常大时,就比较麻烦。
- AngularJS与服务器交互
bijian1013
JavaScriptAngularJS$http
对于AJAX应用(使用XMLHttpRequests)来说,向服务器发起请求的传统方式是:获取一个XMLHttpRequest对象的引用、发起请求、读取响应、检查状态码,最后处理服务端的响应。整个过程示例如下:
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange
- [Maven学习笔记八]Maven常用插件应用
bit1129
maven
常用插件及其用法位于:http://maven.apache.org/plugins/
1. Jetty server plugin
2. Dependency copy plugin
3. Surefire Test plugin
4. Uber jar plugin
1. Jetty Pl
- 【Hive六】Hive用户自定义函数(UDF)
bit1129
自定义函数
1. 什么是Hive UDF
Hive是基于Hadoop中的MapReduce,提供HQL查询的数据仓库。Hive是一个很开放的系统,很多内容都支持用户定制,包括:
文件格式:Text File,Sequence File
内存中的数据格式: Java Integer/String, Hadoop IntWritable/Text
用户提供的 map/reduce 脚本:不管什么
- 杀掉nginx进程后丢失nginx.pid,如何重新启动nginx
ronin47
nginx 重启 pid丢失
nginx进程被意外关闭,使用nginx -s reload重启时报如下错误:nginx: [error] open() “/var/run/nginx.pid” failed (2: No such file or directory)这是因为nginx进程被杀死后pid丢失了,下一次再开启nginx -s reload时无法启动解决办法:nginx -s reload 只是用来告诉运行中的ng
- UI设计中我们为什么需要设计动效
brotherlamp
UIui教程ui视频ui资料ui自学
随着国际大品牌苹果和谷歌的引领,最近越来越多的国内公司开始关注动效设计了,越来越多的团队已经意识到动效在产品用户体验中的重要性了,更多的UI设计师们也开始投身动效设计领域。
但是说到底,我们到底为什么需要动效设计?或者说我们到底需要什么样的动效?做动效设计也有段时间了,于是尝试用一些案例,从产品本身出发来说说我所思考的动效设计。
一、加强体验舒适度
嗯,就是让用户更加爽更加爽的用你的产品。
- Spring中JdbcDaoSupport的DataSource注入问题
bylijinnan
javaspring
参考以下两篇文章:
http://www.mkyong.com/spring/spring-jdbctemplate-jdbcdaosupport-examples/
http://stackoverflow.com/questions/4762229/spring-ldap-invoking-setter-methods-in-beans-configuration
Sprin
- 数据库连接池的工作原理
chicony
数据库连接池
随着信息技术的高速发展与广泛应用,数据库技术在信息技术领域中的位置越来越重要,尤其是网络应用和电子商务的迅速发展,都需要数据库技术支持动 态Web站点的运行,而传统的开发模式是:首先在主程序(如Servlet、Beans)中建立数据库连接;然后进行SQL操作,对数据库中的对象进行查 询、修改和删除等操作;最后断开数据库连接。使用这种开发模式,对
- java 关键字
CrazyMizzz
java
关键字是事先定义的,有特别意义的标识符,有时又叫保留字。对于保留字,用户只能按照系统规定的方式使用,不能自行定义。
Java中的关键字按功能主要可以分为以下几类:
(1)访问修饰符
public,private,protected
p
- Hive中的排序语法
daizj
排序hiveorder byDISTRIBUTE BYsort by
Hive中的排序语法 2014.06.22 ORDER BY
hive中的ORDER BY语句和关系数据库中的sql语法相似。他会对查询结果做全局排序,这意味着所有的数据会传送到一个Reduce任务上,这样会导致在大数量的情况下,花费大量时间。
与数据库中 ORDER BY 的区别在于在hive.mapred.mode = strict模式下,必须指定 limit 否则执行会报错。
- 单态设计模式
dcj3sjt126com
设计模式
单例模式(Singleton)用于为一个类生成一个唯一的对象。最常用的地方是数据库连接。 使用单例模式生成一个对象后,该对象可以被其它众多对象所使用。
<?phpclass Example{ // 保存类实例在此属性中 private static&
- svn locked
dcj3sjt126com
Lock
post-commit hook failed (exit code 1) with output:
svn: E155004: Working copy 'D:\xx\xxx' locked
svn: E200031: sqlite: attempt to write a readonly database
svn: E200031: sqlite: attempt to write a
- ARM寄存器学习
e200702084
数据结构C++cC#F#
无论是学习哪一种处理器,首先需要明确的就是这种处理器的寄存器以及工作模式。
ARM有37个寄存器,其中31个通用寄存器,6个状态寄存器。
1、不分组寄存器(R0-R7)
不分组也就是说说,在所有的处理器模式下指的都时同一物理寄存器。在异常中断造成处理器模式切换时,由于不同的处理器模式使用一个名字相同的物理寄存器,就是
- 常用编码资料
gengzg
编码
List<UserInfo> list=GetUserS.GetUserList(11);
String json=JSON.toJSONString(list);
HashMap<Object,Object> hs=new HashMap<Object, Object>();
for(int i=0;i<10;i++)
{
- 进程 vs. 线程
hongtoushizi
线程linux进程
我们介绍了多进程和多线程,这是实现多任务最常用的两种方式。现在,我们来讨论一下这两种方式的优缺点。
首先,要实现多任务,通常我们会设计Master-Worker模式,Master负责分配任务,Worker负责执行任务,因此,多任务环境下,通常是一个Master,多个Worker。
如果用多进程实现Master-Worker,主进程就是Master,其他进程就是Worker。
如果用多线程实现
- Linux定时Job:crontab -e 与 /etc/crontab 的区别
Josh_Persistence
linuxcrontab
一、linux中的crotab中的指定的时间只有5个部分:* * * * *
分别表示:分钟,小时,日,月,星期,具体说来:
第一段 代表分钟 0—59
第二段 代表小时 0—23
第三段 代表日期 1—31
第四段 代表月份 1—12
第五段 代表星期几,0代表星期日 0—6
如:
*/1 * * * * 每分钟执行一次。
*
- KMP算法详解
hm4123660
数据结构C++算法字符串KMP
字符串模式匹配我们相信大家都有遇过,然而我们也习惯用简单匹配法(即Brute-Force算法),其基本思路就是一个个逐一对比下去,这也是我们大家熟知的方法,然而这种算法的效率并不高,但利于理解。
假设主串s="ababcabcacbab",模式串为t="
- 枚举类型的单例模式
zhb8015
单例模式
E.编写一个包含单个元素的枚举类型[极推荐]。代码如下:
public enum MaYun {himself; //定义一个枚举的元素,就代表MaYun的一个实例private String anotherField;MaYun() {//MaYun诞生要做的事情//这个方法也可以去掉。将构造时候需要做的事情放在instance赋值的时候:/** himself = MaYun() {*
- Kafka+Storm+HDFS
ssydxa219
storm
cd /myhome/usr/stormbin/storm nimbus &bin/storm supervisor &bin/storm ui &Kafka+Storm+HDFS整合实践kafka_2.9.2-0.8.1.1.tgzapache-storm-0.9.2-incubating.tar.gzKafka安装配置我们使用3台机器搭建Kafk
- Java获取本地服务器的IP
中华好儿孙
javaWeb获取服务器ip地址
System.out.println("getRequestURL:"+request.getRequestURL());
System.out.println("getLocalAddr:"+request.getLocalAddr());
System.out.println("getLocalPort:&quo