- ios c语言调用oc方法,ios-面试-OC 方法调用的过程原理
weixin_39615419
iosc语言调用oc方法
OC中的所有方法调用,最终都是转换成runtime中的一个C语言消息分发函数:objc_msgSend(消息接收者,方法名,参数。。。)这条消息发送之后,系统会在receiver的类对象的方法列表中找这个方法,如果没找到,再到receiver的父类的方法列表中找,如此直到根类至找到为止,如果还没有找到会报出错误。(缓存:方法第一次被调用之后,方法会被存入一张缓存表,之后如果再被调用时就直接从缓存表
- ios-数据库-事务
-FIGHTING-
iOS封装数据库事务回滚存储
概念事务(Transaction)是访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。事务通常由高级数据库操纵语言或编程语言(如SQL,C++或Java)书写的用户程序的执行所引起,并用形如begintransaction和endtransaction语句(或函数调用)来界定。事务由事务开始(begintransaction)和事务结束(endtransaction)之间执行的全体操
- html 绘制ios时钟,iOS-模仿苹果时钟选择控件
欧尼酱牌酱牛肉
html绘制ios时钟
最近看了苹果自带应用时钟上的时间选择工具感觉挺巧妙的,就尝试着模仿它做出一个控件工具。工程Demo运行效果如下:AppleAlram.gif根据时钟选择工具上面的功能,大概可以确定,圆环的绘制我们可以通过CAShapeLayer结合UIBezierPath绘制出来,当拖动起始点或者结束点View时,通过手势判断拖动的角度,从而改变UIBezierPath的角度,并且让起始点或者结束点View根据拖
- iOS-系统弹窗调用
MrZWCui
ioscocoamacosobjective-c学习Appleui
代码:UIAlertController*alertViewController=[UIAlertControlleralertControllerWithTitle:@"请选择方式"message:nilpreferredStyle:UIAlertControllerStyleActionSheet];//style为sheetUIAlertAction*cancle=[UIAlertActio
- iOS-底层原理 :alloc & init & new 源码分析(二)
ios南方
(iOS底层原理文章汇总)(iOS资料大全)在分析alloc源码之前,先来看看一下3个变量内存地址和指针地址区别:分别输出3个对象的内容、内存地址、指针地址,下图是打印结果结论:通过上图可以看出,3个对象指向的是同一个内存空间,所以其内容和内存地址是相同的,但是对象的指针地址是不同的%p->&p1:是对象的指针地址,%p->p1:是对象指针指向的的内存地址这就是本文需要探索的内容,alloc做了什
- iOS-半透明模态弹出框
麦穗0615
前言:学习透明模态弹出框(Controller创建弹框)目录:一、了解一下Controller的两个属性的基本知识二、基本应用三、参考文章一、了解一下Controller的两个属性的基本知识0.modalPresentationStyle&modalTransitionStyleUIModalPresentationStyleviewcontroller显示方式UIModalTransitionS
- iOS-给collection view添加header view/footer view
wsmmint
可以不像网上给出的方法那么麻烦可以直接在collectionview上面添加一个label即可在collectionview上面添加一个label如果有xib的话,需要先在collectionview那里选择sectionHeader选项在xib勾选选项
- 第三方唤醒&登陆
ceremony08
#功能说明:第三方应用或web下载/唤醒/自动登录到学习通#负责人:iOS-肖泽强,android-殷雅乐#协议版本:v1.0协议详细操作过程1.第三方应用内上架学习通2.第三方应用后台服务配置3.第三方应用用户账号对接学习通泛雅后台4.第三方应用内打开学习通完成自动登录调用方式:step2配置参数说明:fid单位id超星固定分配如:2023fidType单位类型超星固定分配如:1token用户登
- iOS-为手机添加摇一摇功能,以及 振动或者 响铃
GloryMan
title:iOS-为手机添加摇一摇功能,以及振动或者响铃date:2016-06-3016:55:10categories:CodeiOStags:AudioServicesPlaySystemSoundAudioServicesCreateSystemSoundIDtimg.jpeg//工程添加摇一摇方法#pragmamarkyaoyiyao-(BOOL)canBecomeFirstRespo
- iOS-多线程(四)-GCD定时器
xxxxxxxx_123
日常的开发中,我们经常会用到计时器。在iOS中,有三种计时器,NSTimer、CADisplayLink、dispatch_source,这三种定时器都是各有优劣。NSTimerNSTimer是使用的比较多的一种,但是精度不够,其原因如下:NSTimer加在mainrunloop中,模式是NSDefaultRunLoopMode,main负责所有主线程事务,例如UI界面的操作、复杂的运算等等,这样
- iOS-设置状态栏字体颜色的两种方案
缘來諟夢
原文http://blog.csdn.net/iosbird/article/details/52768344状态栏的字体为黑色:UIStatusBarStyleDefault状态栏的字体为白色:UIStatusBarStyleLightContent一、在info.plist中,将Viewcontroller-basedstatusbarappearance设为NO状态栏字体的颜色只由下面的属性
- iOS-仿支付宝收付款界面亮度变化+条形码二维码放大效果
Imkata
代码地址:iOS仿支付宝收付款界面亮度变化+条形码二维码放大效果一.条形码二维码放大效果支付宝的效果是点击二维码,全屏显示,并且有缓慢放大的效果,点击条形码,横向展示,缓慢放大。如果是二维码,只需要将二维码图片进行一个坐标转换,然后再使用UIView做动画,如果是条形码,还需要使用CGAffineTransformMakeRotation(M_PI*0.5);旋转,代码比较简单,可以参考如上代码。
- iOS-UIBezierPath动画之果冻动画
香橙柚子
我们今天做一个简单的贝塞尔曲线动画,做这个动画之前,我们要对UIBezierPath有简单的了解。贝塞尔曲线基础知识,可以参考下面文章:iOS-贝塞尔曲线(UIBezierPath)的使用iOS-贝塞尔曲线(UIBezierPath)详解(CAShapeLayer)效果图我们先看效果图:动画效果图动画的几个关键点ABCDQ点我们的动画其实就是ABCDQ,这五个点画的图,其中Q点是关键点,就是贝塞尔
- mhformer代码笔记
AI视觉网奇
深度学习宝典姿态检测笔记计算机视觉
目录先加载3d数据:再加载2d姿态数据加载数据:先加载3d数据:dataset_path=root_path+'data_3d_'+opt.dataset+'.npz'dataset=Human36mDataset(dataset_path,opt)再加载2d姿态数据dataset是3d姿态数据其中,world_to_camera是把世界坐标系换为相机坐标系,转换后还是3维的。
- iOS-无限时后台
linbj
创建一个计时器放到NSRunLoop中修改UIBackgroundTaskIdentifier状态@property(nonatomic,strong)NSTimer*timer;@property(nonatomic,assign)UIBackgroundTaskIdentifierbgTask;//用于申请后台时间-(void)applicationDidEnterBackground:(UI
- iOS-代码混淆的简单demo
呵呵_7e7e
代码混淆就是将原有程序中方法名、类名或者属性名通过自定义方式给予改变,以增加app的安全性或者是为了通过AppStore的审核。经过查看资料针对修改方法名写了一个简单的demo,如有不对的地方,请各位大神不吝赐教~~参考的大神地址:https://www.jianshu.com/p/66bb2d45b3c2混淆文件解释confuse.sh脚本文件func.list需要混合的方法或者属性名codeO
- iOS 底层原理 文章汇总
ios南方
iOS底层原理文章汇总iOS底层原理objc4源码相关iOS-底层原理01:源码探索的三种方式1、对象底层:结构体+alloc分析iOS-底层原理02:alloc&init&new源码分析iOS-底层原理03:objc4-781源码编译&调试iOS-底层原理04:NSObject的alloc源码分析iOS-底层原理05:内存对齐原理iOS-底层原理06:malloc源码分析思路2、对象的本质:is
- iOS-浅谈RunLoop
梦蕊dream
前言:本文简述RunLoop相关内容,如有错误请留言指正。Q:什么是RunLoop?运行循环,在程序运行过程中循环做一些事情Q:RunLoop的应用?定时器(Timer)、PerformSelectorGCDAsyncMainQueue事件响应、手势识别、界面刷新网络请求AutoreleasePoolQ:RunLoop什么作用?保持程序的持续运行处理App中的各种事件(比如触摸事件、定时器事件等)
- transformer_位置编码代码笔记
等风来随风飘
LLMtransformer笔记深度学习
transformer_位置编码代码笔记transformer输入的序列中,不同位置的相同词汇可能会表达不同的含义,通过考虑位置信息的不同来区分序列中不同位置的相同词汇。位置编码有多种方式,此处仅记录正余弦位置编码正余弦位置编码公式如下:代码如下:importnumpyasnpimporttorchdefpositional_encoding(seq_len,d_model):#创建一个形状为(s
- transformer_多头注意力机制代码笔记
等风来随风飘
LLM笔记深度学习pytorch
transformer_多头注意力机制代码笔记以GPT-2中多头注意力机制代码为例classCausalSelfAttention(nn.Module):"""因果掩码+多头自注意力机制Avanillamulti-headmaskedself-attentionlayerwithaprojectionattheend.Itispossibletousetorch.nn.MultiheadAtten
- iOS-圆角的另外两种实现方式
良人不归_墨染锦年
-(void)ImageV1{UIImageView*imageView=[[UIImageViewalloc]initWithFrame:CGRectMake(200,200,200,200)];imageView.image=[UIImageimageNamed:@"1"];UIBezierPath*maskPath=[UIBezierPathbezierPathWithRoundedRect
- Byte Pair Encoding(BPE)算法及代码笔记
等风来随风飘
LLMLLM
BytePairEncoding(BPE)算法BPE算法是Transformer中构建词表的方法,大致分为如下几个步骤:将语料中的文本切分为字符统计高频共现二元组将共现频率最高的二元组合并加入词表重复上述第二和第三直到词表规模达到预先设置的数量,或没有可以合并的二元组为止以GPT-2中BPE相关的代码为例对代码进行整理完整代码如下所示"""BPE算法:字节对编码算法,将任意UTF-8字符串转换为整
- iOS 微信支付跟支付宝支付,苹果内购支付方式
Lee坚武
iOS微信支付ios微信支付iOS微信支付iOS集成微信支付iOS微信支付(客户端生成预支付订单)iOS-微信分享和支付)iOS支付宝支付iOS支付宝支付ios支付宝支付集成ios支付宝支付开发流程2020AliPaySDK-支付宝支付iOS端iOS:集成支付宝支付ios--集成支付宝钱包支付iOSSDK的方法与经验
- iOS-网络请求错误码
woo_5857
NSErrorcodesintheCocoaerrordomain.enum{NSFileNoSuchFileError=4,//文件不存在NSFileLockingError=255,//未能得到一个锁文件NSFileReadUnknownError=256,//读取错误,原因不明NSFileReadNoPermissionError=257,//读取错误是因为权限问题NSFileReadInv
- 重拾iOS-编译原理
Jack1105
image关键词:LLVM,Clang,Swiftc,IR,preprocessor,Mach-O,dyld编译器把一种编程语言(原始语言)转换为另一种编程语言(目标语言)的程序叫做编译器.大多数编译器由两部分组成:前端和后端.前端负责词法分析,语法分析,生成中间代码;后端以中间代码作为输入,进行行架构无关的代码优化,接着针对不同架构生成不同的机器码。前后端依赖统一格式的中间代码(IR),使得前后
- iOS-uuid保持唯一的方法
qiluoyiyi
OC个人笔记iosobjective-cxcode
iOS-设置uuid卸载安装后保持不变问题参考:iOS获取UUID(唯一不变哦)UUIDString的理解因为系统的获取方法[UIDevicecurrentDevice].identifierForVendor.UUIDString拿到的uuidstring,再次卸载后,有可能会变化,所以不能保证拿到的值是唯一不变的。需要将获取到的值保存到钥匙串来保证卸载重装之后,能取到不变的值。先配置项目打开钥
- iOS- iOS15后获取window方法
qiluoyiyi
OC个人笔记iosxcodeobjective-c
windowsAPI_DEPRECATED("UseUIWindowScene.windowsonarelevantwindowsceneinstead",ios(2.0,15.0));目前使用的获取window的方式只支持到iOS15,所以在项目开发的时候担心之后通过该方法拿到的window有问题,研究了下怎么拿新版的window的办法if(@available(iOS15,*)){__bloc
- iOS-最全的App上架教程
dongfuxiu4634
移动开发xcode
在上架App之前想要真机测试的同学请查看iOS-最全的真机测试教程里面包含怎么让多台电脑同时上架App和同时真机调试。P12文件的使用详解因为最近更新了Xcode8,证书的创建都大同小异,只是在Xcode8中的设置有一些变化,我就在下面补充,如有什么疑问,请联系我。。注同样可以在BuildSetting的sign中设置证书,但是有点麻烦,建议就在General中设置证书,比较方便,还可以查看错误的
- iOS-记录实现渐变色及圆角不同角度切割的办法
qiluoyiyi
OC个人笔记objective-ciosxcode
一、渐变色找的几个方法,都是需要先确定fram值的,先用着吧,其实最快捷方式还是弄个图片省事在view的类方法里扩展,通过绘制渐变色生成图片,然后设置背景色。typedefenum:NSUInteger{TmyCustAxisNeither=0,TmyCustAxisHorizontal=1<<0,TmyCustAxisVertical=1<<1,TmyCustAxisBoth=(TmyCustA
- IOS-闭包学习-Swift
饼子会飞
IOS-Swift学习ios学习swift
介绍闭包是自包含的函数代码块,可以在代码中被传递和使用。Swift中的闭包与C和Objective-C中的代码块(blocks)以及其他一些编程语言中的匿名函数(Lambdas)比较相似。闭包可以捕获和存储其所在上下文中任意常量和变量的引用。被称为包裹常量和变量。Swift会为你管理在捕获过程中涉及到的所有内存操作。形式闭包有如下三种形式:全局函数是一个有名字但不会捕获任何值的闭包嵌套函数是一个有
- java短路运算符和逻辑运算符的区别
3213213333332132
java基础
/*
* 逻辑运算符——不论是什么条件都要执行左右两边代码
* 短路运算符——我认为在底层就是利用物理电路的“并联”和“串联”实现的
* 原理很简单,并联电路代表短路或(||),串联电路代表短路与(&&)。
*
* 并联电路两个开关只要有一个开关闭合,电路就会通。
* 类似于短路或(||),只要有其中一个为true(开关闭合)是
- Java异常那些不得不说的事
白糖_
javaexception
一、在finally块中做数据回收操作
比如数据库连接都是很宝贵的,所以最好在finally中关闭连接。
JDBCAgent jdbc = new JDBCAgent();
try{
jdbc.excute("select * from ctp_log");
}catch(SQLException e){
...
}finally{
jdbc.close();
- utf-8与utf-8(无BOM)的区别
dcj3sjt126com
PHP
BOM——Byte Order Mark,就是字节序标记 在UCS 编码中有一个叫做"ZERO WIDTH NO-BREAK SPACE"的字符,它的编码是FEFF。而FFFE在UCS中是不存在的字符,所以不应该出现在实际传输中。UCS规范建议我们在传输字节流前,先传输 字符"ZERO WIDTH NO-BREAK SPACE"。这样如
- JAVA Annotation之定义篇
周凡杨
java注解annotation入门注释
Annotation: 译为注释或注解
An annotation, in the Java computer programming language, is a form of syntactic metadata that can be added to Java source code. Classes, methods, variables, pa
- tomcat的多域名、虚拟主机配置
g21121
tomcat
众所周知apache可以配置多域名和虚拟主机,而且配置起来比较简单,但是项目用到的是tomcat,配来配去总是不成功。查了些资料才总算可以,下面就跟大家分享下经验。
很多朋友搜索的内容基本是告诉我们这么配置:
在Engine标签下增面积Host标签,如下:
<Host name="www.site1.com" appBase="webapps"
- Linux SSH 错误解析(Capistrano 的cap 访问错误 Permission )
510888780
linuxcapistrano
1.ssh -v
[email protected] 出现
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
错误
运行状况如下:
OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013
debug1: Reading configuratio
- log4j的用法
Harry642
javalog4j
一、前言: log4j 是一个开放源码项目,是广泛使用的以Java编写的日志记录包。由于log4j出色的表现, 当时在log4j完成时,log4j开发组织曾建议sun在jdk1.4中用log4j取代jdk1.4 的日志工具类,但当时jdk1.4已接近完成,所以sun拒绝使用log4j,当在java开发中
- mysql、sqlserver、oracle分页,java分页统一接口实现
aijuans
oraclejave
定义:pageStart 起始页,pageEnd 终止页,pageSize页面容量
oracle分页:
select * from ( select mytable.*,rownum num from (实际传的SQL) where rownum<=pageEnd) where num>=pageStart
sqlServer分页:
 
- Hessian 简单例子
antlove
javaWebservicehessian
hello.hessian.MyCar.java
package hessian.pojo;
import java.io.Serializable;
public class MyCar implements Serializable {
private static final long serialVersionUID = 473690540190845543
- 数据库对象的同义词和序列
百合不是茶
sql序列同义词ORACLE权限
回顾简单的数据库权限等命令;
解锁用户和锁定用户
alter user scott account lock/unlock;
//system下查看系统中的用户
select * dba_users;
//创建用户名和密码
create user wj identified by wj;
identified by
//授予连接权和建表权
grant connect to
- 使用Powermock和mockito测试静态方法
bijian1013
持续集成单元测试mockitoPowermock
实例:
package com.bijian.study;
import static org.junit.Assert.assertEquals;
import java.io.IOException;
import org.junit.Before;
import org.junit.Test;
import or
- 精通Oracle10编程SQL(6)访问ORACLE
bijian1013
oracle数据库plsql
/*
*访问ORACLE
*/
--检索单行数据
--使用标量变量接收数据
DECLARE
v_ename emp.ename%TYPE;
v_sal emp.sal%TYPE;
BEGIN
select ename,sal into v_ename,v_sal
from emp where empno=&no;
dbms_output.pu
- 【Nginx四】Nginx作为HTTP负载均衡服务器
bit1129
nginx
Nginx的另一个常用的功能是作为负载均衡服务器。一个典型的web应用系统,通过负载均衡服务器,可以使得应用有多台后端服务器来响应客户端的请求。一个应用配置多台后端服务器,可以带来很多好处:
负载均衡的好处
增加可用资源
增加吞吐量
加快响应速度,降低延时
出错的重试验机制
Nginx主要支持三种均衡算法:
round-robin
l
- jquery-validation备忘
白糖_
jquerycssF#Firebug
留点学习jquery validation总结的代码:
function checkForm(){
validator = $("#commentForm").validate({// #formId为需要进行验证的表单ID
errorElement :"span",// 使用"div"标签标记错误, 默认:&
- solr限制admin界面访问(端口限制和http授权限制)
ronin47
限定Ip访问
solr的管理界面可以帮助我们做很多事情,但是把solr程序放到公网之后就要限制对admin的访问了。
可以通过tomcat的http基本授权来做限制,也可以通过iptables防火墙来限制。
我们先看如何通过tomcat配置http授权限制。
第一步: 在tomcat的conf/tomcat-users.xml文件中添加管理用户,比如:
<userusername="ad
- 多线程-用JAVA写一个多线程程序,写四个线程,其中二个对一个变量加1,另外二个对一个变量减1
bylijinnan
java多线程
public class IncDecThread {
private int j=10;
/*
* 题目:用JAVA写一个多线程程序,写四个线程,其中二个对一个变量加1,另外二个对一个变量减1
* 两个问题:
* 1、线程同步--synchronized
* 2、线程之间如何共享同一个j变量--内部类
*/
public static
- 买房历程
cfyme
2015-06-21: 万科未来城,看房子
2015-06-26: 办理贷款手续,贷款73万,贷款利率5.65=5.3675
2015-06-27: 房子首付,签完合同
2015-06-28,央行宣布降息 0.25,就2天的时间差啊,没赶上。
首付,老婆找他的小姐妹接了5万,另外几个朋友借了1-
- [军事与科技]制造大型太空战舰的前奏
comsci
制造
天气热了........空调和电扇要准备好..........
最近,世界形势日趋复杂化,战争的阴影开始覆盖全世界..........
所以,我们不得不关
- dateformat
dai_lm
DateFormat
"Symbol Meaning Presentation Ex."
"------ ------- ------------ ----"
"G era designator (Text) AD"
"y year
- Hadoop如何实现关联计算
datamachine
mapreducehadoop关联计算
选择Hadoop,低成本和高扩展性是主要原因,但但它的开发效率实在无法让人满意。
以关联计算为例。
假设:HDFS上有2个文件,分别是客户信息和订单信息,customerID是它们之间的关联字段。如何进行关联计算,以便将客户名称添加到订单列表中?
&nbs
- 用户模型中修改用户信息时,密码是如何处理的
dcj3sjt126com
yii
当我添加或修改用户记录的时候对于处理确认密码我遇到了一些麻烦,所有我想分享一下我是怎么处理的。
场景是使用的基本的那些(系统自带),你需要有一个数据表(user)并且表中有一个密码字段(password),它使用 sha1、md5或其他加密方式加密用户密码。
面是它的工作流程: 当创建用户的时候密码需要加密并且保存,但当修改用户记录时如果使用同样的场景我们最终就会把用户加密过的密码再次加密,这
- 中文 iOS/Mac 开发博客列表
dcj3sjt126com
Blog
本博客列表会不断更新维护,如果有推荐的博客,请到此处提交博客信息。
本博客列表涉及的文章内容支持 定制化Google搜索,特别感谢 JeOam 提供并帮助更新。
本博客列表也提供同步更新的OPML文件(下载OPML文件),可供导入到例如feedly等第三方定阅工具中,特别感谢 lcepy 提供自动转换脚本。这里有导入教程。
- js去除空格,去除左右两端的空格
蕃薯耀
去除左右两端的空格js去掉所有空格js去除空格
js去除空格,去除左右两端的空格
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>&g
- SpringMVC4零配置--web.xml
hanqunfeng
springmvc4
servlet3.0+规范后,允许servlet,filter,listener不必声明在web.xml中,而是以硬编码的方式存在,实现容器的零配置。
ServletContainerInitializer:启动容器时负责加载相关配置
package javax.servlet;
import java.util.Set;
public interface ServletContainer
- 《开源框架那些事儿21》:巧借力与借巧力
j2eetop
框架UI
同样做前端UI,为什么有人花了一点力气,就可以做好?而有的人费尽全力,仍然错误百出?我们可以先看看几个故事。
故事1:巧借力,乌鸦也可以吃核桃
有一个盛产核桃的村子,每年秋末冬初,成群的乌鸦总会来到这里,到果园里捡拾那些被果农们遗落的核桃。
核桃仁虽然美味,但是外壳那么坚硬,乌鸦怎么才能吃到呢?原来乌鸦先把核桃叼起,然后飞到高高的树枝上,再将核桃摔下去,核桃落到坚硬的地面上,被撞破了,于是,
- JQuery EasyUI 验证扩展
可怜的猫
jqueryeasyui验证
最近项目中用到了前端框架-- EasyUI,在做校验的时候会涉及到很多需要自定义的内容,现把常用的验证方式总结出来,留待后用。
以下内容只需要在公用js中添加即可。
使用类似于如下:
<input class="easyui-textbox" name="mobile" id="mobile&
- 架构师之httpurlconnection----------读取和发送(流读取效率通用类)
nannan408
1.前言.
如题.
2.代码.
/*
* Copyright (c) 2015, S.F. Express Inc. All rights reserved.
*/
package com.test.test.test.send;
import java.io.IOException;
import java.io.InputStream
- Jquery性能优化
r361251
JavaScriptjquery
一、注意定义jQuery变量的时候添加var关键字
这个不仅仅是jQuery,所有javascript开发过程中,都需要注意,请一定不要定义成如下:
$loading = $('#loading'); //这个是全局定义,不知道哪里位置倒霉引用了相同的变量名,就会郁闷至死的
二、请使用一个var来定义变量
如果你使用多个变量的话,请如下方式定义:
. 代码如下:
var page
- 在eclipse项目中使用maven管理依赖
tjj006
eclipsemaven
概览:
如何导入maven项目至eclipse中
建立自有Maven Java类库服务器
建立符合maven代码库标准的自定义类库
Maven在管理Java类库方面有巨大的优势,像白衣所说就是非常“环保”。
我们平时用IDE开发都是把所需要的类库一股脑的全丢到项目目录下,然后全部添加到ide的构建路径中,如果用了SVN/CVS,这样会很容易就 把
- 中国天气网省市级联页面
x125858805
级联
1、页面及级联js
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
&l