- BZOJ3843: ZCC loves Army
L_0_Forever_LF
BZOJ多校LCTsplay
把树转成左儿子右兄弟的那种二叉树的形式发现一个点能且仅能给他的子树传递order,询问3就变成了询问一个点到根有多少个点对于传递message,可以给每个点定一个编号0的虚儿子,给他赋权1,就变成了询问两点间路径的权值和,注意要特判一个点是另一个点的祖先的情况,bzoj上的数据有误,不判这个才能过,hdu上的数据是对的可以去那里交对于操作1,把某个人的一段儿子截下来,可以用n棵splay处理每个人
- Elasticsearch Data streams数据流实操
OliverCaro
Elasticsearchelasticsearch
现有以下文档,请编写一个名为test_data_stream数据流满足以下请求:{"@timestamp":"2099-03-08T11:04:05.000Z","message":"test"}数据流索引的主分片数为3,副本分片数为1将上述文档填充到数据流中去基于ES7.13版本#创建索引生命周期管理来管理数据流索引PUT_ilm/policy/data_stream_ilm{"policy":
- Ubuntu20.04 ROS架构下工程建立,库文件(自定义消息类型,库文件 )+ 功能包(自建类型调用)。
筱夯66
linuxubuntuc++vscode
概要目前写一个工程文件,需要不用的功能bag的组合工作。例如,团队中有人来写库文件,自定义消息,而你在写一个调用他们的bag,需要把这些内容组合起来,形成一个工程文件。这里遇到的问题是CMakeLists如何写,以及各类文件如何安排结构。这里的目标结果是这样的:catkin_ws/srcswam_msgs/msg/SwamMessage.msginclude/SwamMessage.hsrc/Sw
- 一起来动手实现一个ai聊天对话
本文,我们将根据前文来实现一个ai聊天对话项目,感受真实的业务。项目技术栈vite---一个前端工程构建工具。antd---一个reactui组件库。@ant-design/icons----一个react图标库。mockjs---模拟消息对话数据。dayjs---一个日期处理库react---一个javascript框架。typescript---javascript的超集。ew-message
- 《C++ Primer Plus》学习笔记 2.1.3 C++预处理器和iostream文件
weixin_33859844
c/c++
程序清单2-1myfirst.cpp//myfirst.cpp--displaysamessage#include//aPREPROCESSORdirectiveintmain()//functionheader{//startoffunctionbodyusingnamespacestd;//makedefinitionsvisiblecoutusingnamespacestd;可使用其他代码替
- iOS 将GIF图分享至微信
一粒沙-
前端ios
dispatch_async(dispatch_get_global_queue(0,0),^{NSData*emoticonData=[NSDatadataWithContentsOfURL:[NSURLURLWithString:self.model.videoVo.url]];dispatch_async(dispatch_get_main_queue(),^{WXMediaMessage*
- python 自动注册模式
清水湾的水
python开发语言
自动注册模式通过自动注册模式,减少if-else使得逻辑更清晰。代码importinspectimportsysfromtypingimportAny,Dict,Callable,Listfromdatetimeimportdatetimedefmessage_handler(msg_type:str,priority:int=0):defdecorator(func:Callable)->Cal
- React学习六(Ant Design of React)
二十一块石头
Reactreact.js学习javascript
文章目录一、特性二、使用过程1、安装2、antd引用三、antd的组件库1、Button按钮2、message消息框(1)Promise接口(2)API(3)以对象的形式传递参数3、Menu组件4、Breadcrumb面包屑5、Layout布局(1)设计规则(2)组件概述(3)代码演示6、Divider分割线7、Grid栅格8、Form表单9、Input组件10、Table表格举例antd是基于A
- 从零开始用react + tailwindcss + express + mongodb实现一个聊天程序(五) 实现登录功能
hamburgerDaddy1
expressjavascriptnode.js前端react.js
1.登录页面完善登录页面和注册差不多直接copysignUpPage内容再稍微修改下import{useState}from"react";import{useAuthStore}from"../store/useAuthStore";import{MessageSquare,Mail,Lock,Eye,EyeOff,Loader2}from"lucide-react";import{Link}f
- web自动化测试-第四讲: 三种时间等待
瓜牛强哥
web自动化测试测试工具selenium
我们在做web自动化测试,执行脚本的时候,想要对一些页面对象(输入框、按钮等)进行操作,需要对获取该元素的对象,才能对其操作(点击、输入文本内容等),但是,可能由于页面加载过慢导致代码报错:Message:nosuchelement:Unabletolocateelement。为来避免网络问题,导致元素查找失败,我们可以在脚本中灵活运用三种时间等待:第一种:time.sleep(n):暂停代码运行
- 社区O2O系统核心功能解析与架构
wcz9563_18282031984
架构
社区O2O(OnlineToOffline,即线上到线下)系统是一种旨在将线上服务与线下实体相结合的平台,特别适用于社区服务领域,如家政服务、生鲜配送、物业管理和邻里社交等。下面是对社区O2O系统源码开发的需求与功能架构分析。一、系统概述社区O2O系统旨在通过互联网技术为社区居民提供便捷的生活服务,同时帮助本地商家和服务提供者扩大业务覆盖范围,提升服务效率。二、核心功能模块1、用户端功能注册与登录
- Emulex
Figo070818
功能测试
##dmesg-c&&echo1>/var/log/messages##dmesg>dmesg_.txt##cat/var/log/messages>messages_.txt******************************100******************************lspci|grep-ifibrecat/sys/class/fc_host/host*/symb
- 钉钉小程序(企业内部应用)开发--钉钉小程序web-view嵌套H5与小程序之间的通信(H5跳转钉钉小程序小程序postMessage)
青青子衿越
钉钉小程序前端
钉钉小程序代码:嵌套H5pages/login/index.axmlH5向小程序发送信息:H5代码:通过以下代码我一直报错dd没有被定义if(navigator.userAgent.toLowerCase().indexOf('dingtalk')>-1){document.writeln(''+'');}所以这样子引入dd!!!!代码:template.h5.html在h5页面中引入以上代码成功
- RabbitMQ从入门到精通
籽麟网络
java-rabbitmqrabbitmq分布式
目录一.RabbitMQ概述1.消息队列的优点2.消息队列的缺点3.MQ如何选型二.RabbitMQ的重要概念1.Publisher2.Message3.Exchange4.BindingKey5.Routingkey6.Routingkey和BindingKey的区别7.Queue8.Consumer9.Connection10.Channel11.VirtualHost12.Broker三.R
- python测试ollama的API接口是否可用
王铁柱子哟-
杂七杂八的学习笔记pythonllama
python测试ollama的API接口是否可用测试代码ollama_API_test.pyimportollamamodele_name="llama3"message="""Whyistheskyblue?"""response=ollama.chat(model=modele_name,messages=[{"role":"user","content":message}],stream=F
- Using namedPipes, how to cover many events?
m0_68739984
c++
TocovermanyeventsinaNamedPipescommunicationsystembetweenaclientandserver,youneedtodefineamessageprotocolthatincludesawaytodifferentiatebetweenthevarioustypesofrequests(orevents)thatcanbesentoverthepip
- Vue 数据更新但页面没有更新的 7 种情况
爱分享的程序员
vue使用
1.Vue无法检测实例被创建时不存在于data中的property原因:由于Vue会在初始化实例时对property执行getter/setter转化,所以property必须在data对象上存在才能让Vue将它转换为响应式的。场景:varvm=newVue({data:{},//页面不会变化template:'{{message}}'})vm.message='Hello!'//`vm.mess
- Pulsar 学习目录
编码的三叔
pulsarjavakafka大数据python
Pulsar诞生于2012年,最初的目的是为在Yahoo内部,取代其他消息系统,构建统一逻辑大集群的消息平台。当时的其他消息系统(包括Kafka),都不能满足Yahoo的需求,比如大集群多租户、稳定可靠的IO服务质量、百万级Topic、跨地域复制等,因此Pulsar应运而生。Pulsar项目当时在Yahoo内部被叫做CMS(CloudMessageService),从名字可以看出Pulsar诞生时
- 基于vue3 + ts 封装一个自定义的message组件
stpzhf
javascript前端vue.js
基于vue3+ts封装一个自定义的message组件今天尝试封装一个message弹框组件废话不多说直接上代码Message.vue这是一个message组件import{onMounted,ref}from'vue'typePropsType={timeout:numberclose:()=>void}const{timeout=3000,close}=defineProps()letvisib
- Python--面向对象基础(上)
索然无味io
Python全栈开发python开发语言windows网络安全web安全笔记
初识面向对象类与对象定义classMessage:defsend_email(self,email,content):print(f"给{email}发邮件,内容:{content}")#实例化对象并调用方法msg=Message()msg.send_email("user@example.com","HelloWorld")语法规范类名采用大驼峰命名法(如ClassName)类默认继承objec
- RocketMQ消费者重平衡机制
俏布斯
消息中间件RocketMQrocketmq
RocketMQ的消费者重平衡机制确保在消费者组内成员变化时,消息队列(MessageQueue)被合理分配。以下是详细的解析:重平衡机制概述触发条件:消费者启动或关闭。定时触发(默认20秒一次)。Topic的队列数量变化。消费者组内成员变化(通过心跳检测)。目标:在集群模式下,每个队列仅被一个消费者消费,确保负载均衡。流程:获取Topic的队列列表和当前消费者组成员。根据分配策略重新分配队列。释
- Nodejs基础使用Elasticsearch(二)
小黑前端攻城狮
elasticsearchnode.jsvue.jsjavascript
/*链接到elasticsearch数据库*/varelasticsearch=require('elasticsearch');varclient=newelasticsearch.Client({host:'192.168.1.107:9200',log:'error'});1.统计索引数据:client.count({index:['telegram_message','telegram_u
- 常见的消息中间件以及应用场景
纠结哥_Shrek
rabbitmqrocketmq
消息中间件(MessageOrientedMiddleware,简称MOM)是支持消息传递的中间件,主要用于在分布式系统中实现不同应用之间的消息通信。常见的消息中间件有以下几种,每种都有不同的应用场景:1.RabbitMQ类型:基于AMQP协议的消息中间件。应用场景:任务调度:适用于需要任务分发和异步处理的场景,比如后台处理任务、日志处理等。微服务通信:用于解耦微服务之间的通信,保证服务间的高可用
- vue3组件传参
weixin_46541579
vue.js前端javascript
父组件向子组件传参父组件向子组件传参主要通过props来实现父组件importSonComponetfrom'./components/SonComponet.vue';import{ref}from'vue'constinfo=ref({name:'zs',age:12})constlist=ref(['a','b','c'])子组件SonComponet.vuemessage:{{messag
- Python tkinter实现动态链接数据库
乙龙
python数据库
在使用Tkinter(tk)开发GUI程序时,可以通过多种方式让用户自由更改数据库连接地址,而不是将其写死在代码中。以下是一些实现方法:方法一:使用输入框让用户手动输入数据库地址你可以在GUI中添加一个输入框(Entry),让用户手动输入数据库地址。然后在连接数据库时,从输入框中获取地址。示例代码:importtkinterastkfromtkinterimportmessageboximport
- vue按照官网设置自动导入后ElMessageBox不生效问题
cc.ChenLy
前端
按照官网的方式导入之后,ElMessageBox不用再引入了,不然就会造成冲突不生效解决的方法:将组件中的引入删除,直接使用
- 全渠道小程序引流指南
爱分享的程序员
微信小程序小程序
一、微信生态内部渠道1.会话场景1.1好友会话点击查看商品详情onShareAppMessage(){return{title:'爆款特惠',path:'/pages/goods?id=123',imageUrl:'/images/share.jpg'}}1.2微信群//获取群ID实现群场景服务wx.getGroupEnterInfo({success(res){console.log('群ID:
- C#调用企业微信机器人推送数据(文字)
请熟读并背诵文档
企业微信机器人信息推送c#企业微信机器人
--WeChatRobotMessageSender类用于封装与企业微信机器人发送Markdown消息相关的操作usingNewtonsoft.Json;usingSystem;usingSystem.Net.Http;usingSystem.Text;usingSystem.Threading.Tasks;namespace企业微信接口测试{//WeChatRobotMessageSender类
- git 中 git stash命令
胡小花~
gitgithub
常用gitstash命令:gitstashsave"savemessage":执行存储时,添加备注,方便查找,只有gitstash也要可以的,但查找时不方便识别。gitstashlist:查看stash了哪些存储gitstashshow:显示做了哪些改动,默认show第一个存储,如果要显示其他存贮,后面加stash@{$num},比如第二个gitstashshowstash@{1}gitstash
- SpringBoot-引入jackson-dataformat-xml之后,本返回json的接口返回xml
LIUYEYEA
xmljavajavaxmljson
一、问题当我们项目中需要引入"jackson-dataformat-xml"后,我们会发现我们原本返回json数据的接口也开始返回xml数据格式了二、原因publicabstractclassAbstractMessageConverterMethodProcessorextendsAbstractMessageConverterMethodArgumentResolverimplementsHa
- 开发者关心的那些事
圣子足道
ios游戏编程apple支付
我要在app里添加IAP,必须要注册自己的产品标识符(product identifiers)。产品标识符是什么?
产品标识符(Product Identifiers)是一串字符串,它用来识别你在应用内贩卖的每件商品。App Store用产品标识符来检索产品信息,标识符只能包含大小写字母(A-Z)、数字(0-9)、下划线(-)、以及圆点(.)。你可以任意排列这些元素,但我们建议你创建标识符时使用
- 负载均衡器技术Nginx和F5的优缺点对比
bijian1013
nginxF5
对于数据流量过大的网络中,往往单一设备无法承担,需要多台设备进行数据分流,而负载均衡器就是用来将数据分流到多台设备的一个转发器。
目前有许多不同的负载均衡技术用以满足不同的应用需求,如软/硬件负载均衡、本地/全局负载均衡、更高
- LeetCode[Math] - #9 Palindrome Number
Cwind
javaAlgorithm题解LeetCodeMath
原题链接:#9 Palindrome Number
要求:
判断一个整数是否是回文数,不要使用额外的存储空间
难度:简单
分析:
题目限制不允许使用额外的存储空间应指不允许使用O(n)的内存空间,O(1)的内存用于存储中间结果是可以接受的。于是考虑将该整型数反转,然后与原数字进行比较。
注:没有看到有关负数是否可以是回文数的明确结论,例如
- 画图板的基本实现
15700786134
画图板
要实现画图板的基本功能,除了在qq登陆界面中用到的组件和方法外,还需要添加鼠标监听器,和接口实现。
首先,需要显示一个JFrame界面:
public class DrameFrame extends JFrame { //显示
- linux的ps命令
被触发
linux
Linux中的ps命令是Process Status的缩写。ps命令用来列出系统中当前运行的那些进程。ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,如果想要动态的显示进程信息,就可以使用top命令。
要对进程进行监测和控制,首先必须要了解当前进程的情况,也就是需要查看当前进程,而 ps 命令就是最基本同时也是非常强大的进程查看命令。使用该命令可以确定有哪些进程正在运行
- Android 音乐播放器 下一曲 连续跳几首歌
肆无忌惮_
android
最近在写安卓音乐播放器的时候遇到个问题。在MediaPlayer播放结束时会回调
player.setOnCompletionListener(new OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
mp.reset();
Log.i("H
- java导出txt文件的例子
知了ing
javaservlet
代码很简单就一个servlet,如下:
package com.eastcom.servlet;
import java.io.BufferedOutputStream;
import java.io.IOException;
import java.net.URLEncoder;
import java.sql.Connection;
import java.sql.Resu
- Scala stack试玩, 提高第三方依赖下载速度
矮蛋蛋
scalasbt
原文地址:
http://segmentfault.com/a/1190000002894524
sbt下载速度实在是惨不忍睹, 需要做些配置优化
下载typesafe离线包, 保存为ivy本地库
wget http://downloads.typesafe.com/typesafe-activator/1.3.4/typesafe-activator-1.3.4.zip
解压r
- phantomjs安装(linux,附带环境变量设置) ,以及casperjs安装。
alleni123
linuxspider
1. 首先从官网
http://phantomjs.org/下载phantomjs压缩包,解压缩到/root/phantomjs文件夹。
2. 安装依赖
sudo yum install fontconfig freetype libfreetype.so.6 libfontconfig.so.1 libstdc++.so.6
3. 配置环境变量
vi /etc/profil
- JAVA IO FileInputStream和FileOutputStream,字节流的打包输出
百合不是茶
java核心思想JAVA IO操作字节流
在程序设计语言中,数据的保存是基本,如果某程序语言不能保存数据那么该语言是不可能存在的,JAVA是当今最流行的面向对象设计语言之一,在保存数据中也有自己独特的一面,字节流和字符流
1,字节流是由字节构成的,字符流是由字符构成的 字节流和字符流都是继承的InputStream和OutPutStream ,java中两种最基本的就是字节流和字符流
类 FileInputStream
- Spring基础实例(依赖注入和控制反转)
bijian1013
spring
前提条件:在http://www.springsource.org/download网站上下载Spring框架,并将spring.jar、log4j-1.2.15.jar、commons-logging.jar加载至工程1.武器接口
package com.bijian.spring.base3;
public interface Weapon {
void kil
- HR看重的十大技能
bijian1013
提升能力HR成长
一个人掌握何种技能取决于他的兴趣、能力和聪明程度,也取决于他所能支配的资源以及制定的事业目标,拥有过硬技能的人有更多的工作机会。但是,由于经济发展前景不确定,掌握对你的事业有所帮助的技能显得尤为重要。以下是最受雇主欢迎的十种技能。 一、解决问题的能力 每天,我们都要在生活和工作中解决一些综合性的问题。那些能够发现问题、解决问题并迅速作出有效决
- 【Thrift一】Thrift编译安装
bit1129
thrift
什么是Thrift
The Apache Thrift software framework, for scalable cross-language services development, combines a software stack with a code generation engine to build services that work efficiently and s
- 【Avro三】Hadoop MapReduce读写Avro文件
bit1129
mapreduce
Avro是Doug Cutting(此人绝对是神一般的存在)牵头开发的。 开发之初就是围绕着完善Hadoop生态系统的数据处理而开展的(使用Avro作为Hadoop MapReduce需要处理数据序列化和反序列化的场景),因此Hadoop MapReduce集成Avro也就是自然而然的事情。
这个例子是一个简单的Hadoop MapReduce读取Avro格式的源文件进行计数统计,然后将计算结果
- nginx定制500,502,503,504页面
ronin47
nginx 错误显示
server {
listen 80;
error_page 500/500.html;
error_page 502/502.html;
error_page 503/503.html;
error_page 504/504.html;
location /test {return502;}}
配置很简单,和配
- java-1.二叉查找树转为双向链表
bylijinnan
二叉查找树
import java.util.ArrayList;
import java.util.List;
public class BSTreeToLinkedList {
/*
把二元查找树转变成排序的双向链表
题目:
输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。
要求不能创建任何新的结点,只调整指针的指向。
10
/ \
6 14
/ \
- Netty源码学习-HTTP-tunnel
bylijinnan
javanetty
Netty关于HTTP tunnel的说明:
http://docs.jboss.org/netty/3.2/api/org/jboss/netty/channel/socket/http/package-summary.html#package_description
这个说明有点太简略了
一个完整的例子在这里:
https://github.com/bylijinnan
- JSONUtil.serialize(map)和JSON.toJSONString(map)的区别
coder_xpf
jqueryjsonmapval()
JSONUtil.serialize(map)和JSON.toJSONString(map)的区别
数据库查询出来的map有一个字段为空
通过System.out.println()输出 JSONUtil.serialize(map): {"one":"1","two":"nul
- Hibernate缓存总结
cuishikuan
开源sshjavawebhibernate缓存三大框架
一、为什么要用Hibernate缓存?
Hibernate是一个持久层框架,经常访问物理数据库。
为了降低应用程序对物理数据源访问的频次,从而提高应用程序的运行性能。
缓存内的数据是对物理数据源中的数据的复制,应用程序在运行时从缓存读写数据,在特定的时刻或事件会同步缓存和物理数据源的数据。
二、Hibernate缓存原理是怎样的?
Hibernate缓存包括两大类:Hib
- CentOs6
dalan_123
centos
首先su - 切换到root下面1、首先要先安装GCC GCC-C++ Openssl等以来模块:yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel2、再安装ncurses模块yum -y install ncurses-develyum install ncurses-devel3、下载Erang
- 10款用 jquery 实现滚动条至页面底端自动加载数据效果
dcj3sjt126com
JavaScript
无限滚动自动翻页可以说是web2.0时代的一项堪称伟大的技术,它让我们在浏览页面的时候只需要把滚动条拉到网页底部就能自动显示下一页的结果,改变了一直以来只能通过点击下一页来翻页这种常规做法。
无限滚动自动翻页技术的鼻祖是微博的先驱:推特(twitter),后来必应图片搜索、谷歌图片搜索、google reader、箱包批发网等纷纷抄袭了这一项技术,于是靠滚动浏览器滚动条
- ImageButton去边框&Button或者ImageButton的背景透明
dcj3sjt126com
imagebutton
在ImageButton中载入图片后,很多人会觉得有图片周围的白边会影响到美观,其实解决这个问题有两种方法
一种方法是将ImageButton的背景改为所需要的图片。如:android:background="@drawable/XXX"
第二种方法就是将ImageButton背景改为透明,这个方法更常用
在XML里;
<ImageBut
- JSP之c:foreach
eksliang
jspforearch
原文出自:http://www.cnblogs.com/draem0507/archive/2012/09/24/2699745.html
<c:forEach>标签用于通用数据循环,它有以下属性 属 性 描 述 是否必须 缺省值 items 进行循环的项目 否 无 begin 开始条件 否 0 end 结束条件 否 集合中的最后一个项目 step 步长 否 1
- Android实现主动连接蓝牙耳机
gqdy365
android
在Android程序中可以实现自动扫描蓝牙、配对蓝牙、建立数据通道。蓝牙分不同类型,这篇文字只讨论如何与蓝牙耳机连接。
大致可以分三步:
一、扫描蓝牙设备:
1、注册并监听广播:
BluetoothAdapter.ACTION_DISCOVERY_STARTED
BluetoothDevice.ACTION_FOUND
BluetoothAdapter.ACTION_DIS
- android学习轨迹之四:org.json.JSONException: No value for
hyz301
json
org.json.JSONException: No value for items
在JSON解析中会遇到一种错误,很常见的错误
06-21 12:19:08.714 2098-2127/com.jikexueyuan.secret I/System.out﹕ Result:{"status":1,"page":1,&
- 干货分享:从零开始学编程 系列汇总
justjavac
编程
程序员总爱重新发明轮子,于是做了要给轮子汇总。
从零开始写个编译器吧系列 (知乎专栏)
从零开始写一个简单的操作系统 (伯乐在线)
从零开始写JavaScript框架 (图灵社区)
从零开始写jQuery框架 (蓝色理想 )
从零开始nodejs系列文章 (粉丝日志)
从零开始编写网络游戏
- jquery-autocomplete 使用手册
macroli
jqueryAjax脚本
jquery-autocomplete学习
一、用前必备
官方网站:http://bassistance.de/jquery-plugins/jquery-plugin-autocomplete/
当前版本:1.1
需要JQuery版本:1.2.6
二、使用
<script src="./jquery-1.3.2.js" type="text/ja
- PLSQL-Developer或者Navicat等工具连接远程oracle数据库的详细配置以及数据库编码的修改
超声波
oracleplsql
在服务器上将Oracle安装好之后接下来要做的就是通过本地机器来远程连接服务器端的oracle数据库,常用的客户端连接工具就是PLSQL-Developer或者Navicat这些工具了。刚开始也是各种报错,什么TNS:no listener;TNS:lost connection;TNS:target hosts...花了一天的时间终于让PLSQL-Developer和Navicat等这些客户
- 数据仓库数据模型之:极限存储--历史拉链表
superlxw1234
极限存储数据仓库数据模型拉链历史表
在数据仓库的数据模型设计过程中,经常会遇到这样的需求:
1. 数据量比较大; 2. 表中的部分字段会被update,如用户的地址,产品的描述信息,订单的状态等等; 3. 需要查看某一个时间点或者时间段的历史快照信息,比如,查看某一个订单在历史某一个时间点的状态, 比如,查看某一个用户在过去某一段时间内,更新过几次等等; 4. 变化的比例和频率不是很大,比如,总共有10
- 10点睛Spring MVC4.1-全局异常处理
wiselyman
spring mvc
10.1 全局异常处理
使用@ControllerAdvice注解来实现全局异常处理;
使用@ControllerAdvice的属性缩小处理范围
10.2 演示
演示控制器
package com.wisely.web;
import org.springframework.stereotype.Controller;
import org.spring