- C++ 练习2
四代目 水门
C++学习笔记c++算法开发语言
题目1:定义Person类要求:字段:idCard(身份证号)、name(姓名)、gender(性别)、age(年龄)、profession(职业)、phone(联系方式),并定义构造函数初始化这些字段。方法message():输出个人信息。答案:cpp#include#includeusingnamespacestd;classPerson{private:stringidCard,name,g
- 【Maven】单元测试练习2025/2/17
devii66
mavenmavenjava
/***给定一个身份证号,计算出该用户的年龄*@paramidCard身份证号*/publicIntegergetAge(StringidCard){if(idCard==null||idCard.length()!=18){thrownewIllegalArgumentException("无效的身份证号码");}Stringbirthday=idCard.substring(6,14);Loc
- C# 操作JSON的几种方式
zls365365
jsonjavapython大数据人工智能
关于Json数据在开发中的重要性,自然不言而喻;本篇通过两种在c#中常用的方式来实现对Json数据的序列化和反序列化,为了实现大多数的需求,我们采用稍微复杂一点的数据模型。首先我们有以下json数据{"name":"张三","age":20,"idCard":"123456789","birthday":"2021-01-0100:00:00","hobbys":[{"sort":1,"desc"
- (转载)Vue身份证验证大全
无枉少年
原作:Vue身份证验证大全第一步首先引入创建IdCard.js,后面再添加文件的代码第二步在main.js中添加importIdCardfrom'./assets/IdCard'Vue.prototype.validid=IdCard;第三步在页面中打印这句话console.log(this.validid.cnid('110101199003079593'))//true数字为身份证号码,如果是
- C# 操作JSON的几种方式
Csharp 小记
c#jsonwinformasp.net.net
关于Json数据在开发中的重要性,自然不言而喻;本篇通过两种在c#中常用的方式来实现对Json数据的序列化和反序列化,为了实现大多数的需求,我们采用稍微复杂一点的数据模型。首先我们有以下json数据{"name":"张三","age":20,"idCard":"123456789","birthday":"2021-01-0100:00:00","hobbys":[{"sort":1,"desc"
- 解决小程序唤起数字键盘无小数点问题
wenfoxizang
其实很简单,是由input的type属性控制的type属性控制数字键盘的三种状态1.number:数字键盘(无小数点)2.digit:数字键盘(有小数点)3.idcard:数字键盘(无小数点、有x键)
- 约束
knot98
1.什么是约束除了数据类型以外额外添加的约束2.为什么要使用约束为了保证数据的合法性(mysql规则),完整性3.分类notnull非空约束数据不能为空default默认值约束unique唯一约束该字段不能重复unique其实是一种索引索引是一种数据结构用于提高查询效率可以为空一张表中可以有多个唯一约束单列唯一约束:mysql>createtablet12(`idcard`char(18)uniq
- 【195】PostgreSQL 14.5 编写SQL从身份证号中查找生日,并且更新生日字段。
zhangchao19890805
数据库postgresqlsql数据库
假设有一张用户表t_user,该表设计如下:id:charactervarying主键name:charactervarying姓名idcard:charactervarying身份证号gender:smallint性别,女是0,男是1birthday:date生日根据身份证号获取生日字符串:selectsubstring(idcard,7,4)||'-'||substring(idcard,11
- Jmeter获取多个用户token至本地,跨线程使用
小鱿鱼Gun神
压测一般需要模拟多个用户同一时间段随机操作去模拟真实环境,当对部分接口进行压测时又不想每个线程都去执行一次登录操作,于是想到把多用户token获取到本地,供其它线程组使用。思路:将登录接口的token值保存至本地,其它线程组通过csv获取上个线程保存的token进行后续操作1、准备好数据,多用户登录信息 新建一个txt文档,里面的数据为一行一个“idcard_no,mobile,projec
- 根据身份证号码,提取出生日期和性别
大莲芒
javascript前端开发语言
根据身份证号码,提取出生日期和性别,返回的数据是一个对象具体实现请看以下代码/***根据身份证号码,提取出生日期和性别*@paramidCard*@returngendar:1男2女birthDate:2020-01-01*/exportfunctionextractGenderAndBirthDate(idCard:string,):{gender:2|1;birthDate:string}|n
- golang命名规范
化蝶飞618
可读性是评判好代码的一个标准,好的命名对可读性很重要,现在开始让自己的go代码有一个良好的命名规范吧好的命名一般具备下面几个特征容易理解和猜测他的含义精简、编写容易不要一大串的命名能准确的表达他的含义命名使用MixedCase不要使用带有下划线的名称如:my_app_model首字母是缩略词的就全部大写:RASPModel,IDCard局部变量尽可能的简短索引用i表示reader用r表示buffe
- MYSQL数据库的增删改查
橘子巷830
mysql
增加数据INSERT1.给指定字段添加数据INSERTINTO表名(字段名1,字段名2,...)VALUES(值1,值2,...);insertintoemployee(id,workno,name,gender,age,idcard,entrydate)values(1,'1','Itcast','男',10,'123456789012345678','2000-01-01');2.给全部字段添
- 【194】PostgreSQL 14.5 编写SQL从身份证号中查找性别,并且更新性别字段。
zhangchao19890805
数据库postgresqlsql数据库
假设有一张用户表t_user,该表设计如下:id:charactervarying主键name:charactervarying姓名idcard:charactervarying身份证号gender:smallint性别,女是0,男是1根据身份证号查找所有未填写性别字段的女性SQL:select*fromt_userwherechar_length(idcard)=18andgenderisnul
- python【四要素】生成
唐古乌梁海
python测试python
idCarddefcreate_idcard(self):"""身份证"""cur=datetime.now()id=str(random.choice(city_code_list()))#地区码id=id+str(random.randint(cur.year-55,cur.year-25))#年份项,25-55岁da=date.today()+timedelta(days=random.ra
- 长文本保留前四位和后四位,中间用*号加密
有你不苦_
函数consttestDisplay=(d)=>{letidCard=d||"";//保留前四位和后四位,中间用号加密idCard=idCard.replace(/^(.{4}).(.{4})1***$2");returnidCard;};
- @MapKey用法说明
小厂程序员DHJ
后端MapKey使用说明注意事项mapkey
一、前言@MapKey是MyBatis框架的注解,作用是将List结果集转换成key-value形式的Map结果集,方便快速从结果集中查询指定结果。1.1、用法1.1.1、dao层@MapKey("id")MapgetStudents();1.1.2、xml层SELECTid,idCard,nameFROMstudents1.2、效果使用前使用后二、注意事项2.1、注意key的类型值得注意的是,通
- mysql的join+in_慎用mysql的join语句和in子查询语句,普通查询可能是最好的优化
Ger Young
mysql的join+in
服务器mysql集群,表引擎ndbcluster。其中查3张表,原语句为:selectuser.uid,user.uname,user.idcard_status,user_introduction.user_picfromuserleftjoinuser_introductiononuser.uid=user_introduction.uidwhereuser.uidin(selectuidfr
- vue根据身份证获取年龄/生日/性别,根据年龄获取生日,根据生日获取年龄
anwenagululu
vue.jsjavascript前端
首先根据身份证获取年龄/生日/性别handleBlur(data){letidCard=data.target.value;letsex=null;letbirth=null;letmyDate=newDate();letmonth=myDate.getMonth()+1;letday=myDate.getDate();letage=0;if(idCard.length===18){age=myD
- Kotlin 接口回调
紫一年
单接口方法时候,只有一个参数,无返回值的情况下不需要定义接口,有返回值的时候只需将Unit改为返回值类型//赋值类MyReaderCardManagerprivatelateinitvarlistener:(cardInfo:IDCard?)->Unit;funsetOnIDCardListener(listener:(cardInfo:IDCard?)->Unit){this.listener=
- JS正则表达式隐藏身份证中间8位(电话号码/姓名/千位符)......
一周七喜h
javascript正则表达式elementui
//案例{{house||''+address||''}}{{house||''}}{{address||''}}{{(house||'').concat(address||'')}}{{idCard&&idCard.replace(/(.{6}).*(.{4})/,'$1********$2')}}{{idCard.replace(/^(\d{6})\d{8}(.{4}$)/g,`$1${Arr
- Go语言-结构体
Zlwriii
golang开发语言
目录前言1、定义结构体2、访问结构体成员3、结构体作为函数参数4、结构体指针前言数组可以存储同一类型的数据,但在结构体中我们可以为不同项定义不同的数据类型。结构体是由一系列具有相同类型或不同类型的数据构成的数据集合。结构体表示一项纪录,比如班级的学生信息,每个人有以下属性:Name:姓名Sex:性别Age:年龄IDcard:身份证1、定义结构体结构体定义需要使用type和struct语句。type
- thinkphp对接阿里云身份证图像识别-身份证识别-二代居民身份证OCR识别-身份证信息识别-身份证OCR识别
linlinlove2
阿里云身份证OCR识别阿里云身份证图像识别thinkphp对接阿里云阿里云ocr图像识别开发小程序thinkphp开发
thinkphp对接阿里云身份证图像识别-身份证识别-二代居民身份证OCR识别-身份证信息识别-身份证OCR识别Common.phpif(!function_exists('AliIdcardAuth')){functionAliIdcardAuth($img){$host="https://yixi.market.alicloudapi.com";$path="/ocr/idcard";$met
- Vue3-admin-template 框架实现表单身份证获取到 出生年月、性别
小吴吴吴呀
前端vue.jsjavascript
一.首先需效验输入身份证信息是否正确:constsfzhChange=()=>{//效验身份证号格式constreg=/^[1-9]\d{5}(19|20)\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/;};二.绑定输入框input事件:三.if(reg.test(addFroms.idcard)){//获取出生日期
- 数据脱敏 sql及java代码实现
Arog
javajava
1sql实现:--电话号码脱敏sql:SELECTmobilePhoneAS脱敏前电话号码,CONCAT(LEFT(mobilePhone,3),'********')AS脱敏后电话号码FROMt_s_user--身份证号码脱敏sql:SELECTidcardAS未脱敏身份证,CONCAT(LEFT(idcard,3),'****',RIGHT(idcard,4))AS脱敏后身份证号FROMt_s
- SQL实操题目记录(1)
小柴~
SQLSQL
原始数据表名:FILL_TIME充值时间ACCOUNT_ID账号IDCARD_TYPE充值卡面值类型FILL_TYPE充值类型CARD_AMOUNT充值卡个数【SQL题目】请按照以下要求写出SQL代码1、获得每日充值的账号数,及充值金额,要求对账号排重。代码:SELECTDATE(FILL_TIME),COUNT(DISTINCTACCOUNT_ID,FILL_TIME)ASquantity,SU
- jquery 身份证号码获取年龄验证未成年人
猿学
jquery前端javascript
//验证未成年人functionisUnderage(idCard){//获取年龄varageDate=newDate()varmonth=ageDate.getMonth()+1varday=ageDate.getDate()varage=ageDate.getFullYear()-idCard.substring(6,10)-1if(idCard.substring(10,12)
- 身份证号码,格式校验:@IdCard(Validation + Hutool)
宋冠巡
接口参数校验springboot接口参数校验
目标自定义一个用于校验身份证号码格式的注解@IdCard,能够和现有的Validation参数校验机制兼容,使用方式和其他校验注解保持一致(使用@Valid注解接口参数)。校验逻辑有效格式符合国家标准。公民身份号码按照GB11643-1999《公民身份号码》国家标准编制,由18位数字组成:前6位为行政区划代码,第7至14位为出生日期码,第15至17位为顺序码,第18位为校验码。不校验非空身份证号码
- JS正则 身份证号脱敏
不叫虎子
JavaScriptjavascript开发语言前端
【一】:说明:身份证脱敏处理:/^(.{6})(?:\d+)(.{4})$/,显示前6和后4,出生日期隐藏constidCard="110108199001010101"//身份证号constreg=/^(.{6})(?:\d+)(.{4})$///匹配身份证号前6位和后4位的正则表达式constmaskedIdCard=idCard.replace(reg,'\$1******\$2')//身份
- python在关闭代理进行post请求
dandeseed
pythonpython开发语言json
importrequestsimportjsonimporttimeimportwinsoundimportos##不要用sleep做定时任务url="https://yqgz.beijing.gov.cn/service/returnBj/checkPersonApplyStatus"data={"idCard":"Z67suHrh9+9SzE+2RM5s1C1q9ECFFRB4J6eh6dOC
- SQL之DML(数据操作语言):对数据库中表的数据进行增、删、改操作
发如雪Jay
mysqlmysqlsql
添加数据(INSERT)修改数据(UPDATE)删除数据(DELETE)1.添加数据1).给指定字段添加数据INSERTINTO表名(字段名1,字段名2,...)VALUES1(值1,值2,...);案例:给employee表所有的字段添加数据;insertintoemployee(id,workno,name,gender,age,idcard,entrydate)values(1,'1','I
- 开发者关心的那些事
圣子足道
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