随笔-2(实习)

1. Redis启动多端口,运行多实例

redis默认启动端口 6379            
指定多个端口 --port
启动多端口
redis-server --port 6380
redis-server --port 6381

2. 查看redis实例

ps -ef | grep redis
    使用实例
redis-cli -p 6380   (-p:指定端口)
    关闭实例
redis-cli shutdown
    关闭指定端口实例
redis-cli -p 6380 shutdown

3. 任务列表:

redis数据迁移:写一个redisCopyUtil工具类,实现shardedJedis集群数据库迁移功能
优化gm后台白名单功能
增加gm后台黑名单功能
增加玩家ip登录限制

  • 白名单优化
    点击提交后弹窗提示成功添加白名单
    移除角色时提示确定移除或取消
    判断输入角色是否已存在并提示

  • 黑名单优化:

    • 黑名单列表:
      移除操作有bug
      角色重复√
    • 新增黑名单:
      强制角色下线功能未实现
      更新到游戏服务器有bug
      禁言天数输入合法性判断√
    • 天数
      0 -3 永久
    • 黑名单类型
      1禁言 2封号

注:

<c:forEach items="${ipList}" var="ipList">
    <td>${ipList}</td>
    <td><a href="javascript:void(0)" onclick="rem('')">移除</a></td>
</c:forEach>
forEach循环时一定注意不能忘记items="${ipList}" 中的${}........

bootstrap 下拉框无法显示菜单问题:引入jquery库和bootstrp顺序问题

sitemesh:

  • 引入sitemesh
  • WEN-INF下:decorators.xml
  • web.xml中配置过滤器

linux密码13位
协议sftp
端口22

linux tomcat:/usr/local/tomcat/bin目录下:

  • 启动:

./catalina.sh run(日志启动方式)
./startup.sh(普通启动方式)

  • 关闭

./shutdown.sh

  • 查看tomcat是否关闭:

ps -ef | grep tomcat

  • 结束tomcat进程:

kill -9 [PID]

linux mysql:/usr/local/mysql/bin/目录下:

  • 启动:

service mysql start

关闭:

service mysql stop

重启:

service mysqld restart

linux下让tomcat以service方式运行 参考博文

linux查看当前服务:

chkconfig --list

linux查看当前进程:

ps -ef | grep tomcat

linux进程后台运行:

nohup ... &
如:nohup ping www.ibm.com &

项目发布时出现classnotfoundexception可能是maven项目包未导入编译路径 参考博文

    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    private static final Logger goallog = LoggerFactory.getLogger("logger name");
    private static final Logger logger = LoggerFactory.getLogger(SessionManager.class);
    
    <div class="input-group">
        <input type="text" class="form-control">
        <span class="input-group-btn">
            <button class="btn btn-default" type="button">Go!</button>
        </span>
    </div>

jquery正则表达式验证时间

        function verifyTime(time){
        var reg = /^(20|21|22|23|[0-1]\d):[0-5]\d:[0-5]\d$/;
        var str = "#" + time;
        var str2 = $(str).val();
        var timeArr = str2.split(",");
        $.each(timeArr,function(i,value){
            if(!reg.test(value)){
                alert("时间格式不正确!");
                return false;
            }
        });
    }

eclipse快捷键:

  • Eclipse查看某个方法被哪些类调用:

ctrl+alt+h

  • 快速查找类

ctrl + shift + t

  • 查看类被调用:

右键-references-project

  • 格式化代码

ctrl+shift+f

  • 在当前行下边创建空白

shift+enter

  • 自动引入包和删除无用包

ctrl+shift+o:

  • 前一个编辑的页面

Alt+←

  • 快速显示当前类的继承结构

Ctrl+T

  • 全局查找关键字

ctrl + h

异常

Implicit super constructor FatherClass() is undefined. Must explicitly invoke another constructor

错误原因:
子类必须继承父类的构造方法,如果父类构造方法中没有参数传递,那么默认是不写super()继承父类的构造方法的。LinearLayout类的构造方法没有无参数的构造方法,所以,你必须继承父类有参数的构造方法,而有参数的构造方法子类必须继承,所以,你必须写super关键字来继承父类的有参数的构造方法。

    /**
     * 生成12位或16位不重复的纯数字字符串,前2位为awardLibId,后面十位或14位是随机生成的数字字符串
     * 
     * @return
     */
    public static String getRandomString(String awardLibId) {
        String codeString;
        int i = 0;
        while (true) {
            //生成12位不重复的纯数字字符串
//          String randomStr = RandomStringUtils .randomAlphanumeric(10);
            
            //生成16位不重复的纯数字字符串
            String randomStr = RandomStringUtils .randomAlphanumeric(14);
            codeString = awardLibId + randomStr;
            if (!allCodeList.contains(codeString)) {
                break;
            }
            i++;
            if (i > 1000000) {
                break;
            }
        }
        return codeString;
    }

Linux rz/sz命令:

    rz:将本地上传文件到服务器
    sz:发送文件到本地

导入sql文件数据:

    source /tmp/database.sql;

long型整数转换为int时要注意溢出问题

确认删除操作:

    onclick="return confirm('确认删除?')"

直接访问:(项目名+资源名)(非WEB-INF目录下)
http://localhost:8080/bread/user.html

生成兑换码:
    com.goal.war.core.tool.CreateAwardTicket
兑换:
    com.goal.war.gift.command.GiftBagCommandHandler
需求:
    道具信息表-简体用 id=50005 对应 exchangeCodeInfo.xml itemId
更新exchangeCodeInfo.xml
ErrorCode.java变更对应languageInfo.xml配置表
xml itemLibInfo.xml itemInfo.xml    descriptionInfo.xml exchangeCodeInfo.xml    

xml配置文件:

Object[] requestParams = (Object[]) params.getData();
String roleName = String.valueOf(requestParams[0]);
String bindFriendInviteCode = String.valueOf(requestParams[1]);

异常:参考博文

eclipse使用debug模式启动不起来:

原因:有些未清除的断点可能导致需要加载某个服务时无法通过,从而导致JBoss无法启动,从而debug模式启动不起来

解决办法:清除掉某些断点或全部断点
eclipse清除所有断点:run-->remove all breakpoints

对象排序:

        Collections.sort(rankVOs, new Comparator<StarWarRankVO>() {
        @Override
        public int compare(StarWarRankVO o1, StarWarRankVO o2) {
//              return o1.getEloPoint().compareTo(o2.getEloPoint()); 
            Integer count1 = o1.getWarCount();
            Integer count2 = o2.getWarCount();
            return count1.compareTo(count2); 
        }
    });

Long转为Integer:

先转为String再转为Integer:int aInt = Integer.valueOf(String.valueOf(aLong));

单例模式:

    /**
     * 懒汉式单例模式-线程安全
     * @author Administrator
     *
     */
    class SingletonLazy{
        
        private SingletonLazy(){
            
        }
        
        private static SingletonLazy instance = null;
        
    //  public static synchronized SingletonLazy getInstance(){
    //      if(instance == null){
    //          instance = new SingletonLazy();
    //      }
    //      return instance;
    //  }
        
        public static SingletonLazy getInstance(){
            if(instance == null){
                synchronized (SingletonLazy.class) {
                    instance = new SingletonLazy();
                }
                instance = new SingletonLazy();
            }
            return instance;
        }
        
    }

    /**
     * 饿汉式单例模式-天生就是线程安全的
     * @author Administrator
     *
     */
    class SingletonHungry{
        
        private SingletonHungry(){
            
        }
        
        private static final SingletonHungry instance = new SingletonHungry();
        
        public static SingletonHungry getInstance(){
            return instance;
        }
        
    }

U盘复制文件不能超过4G:

原因:U盘格式为FAT32,如果为NTFS则没问题

解决办法:先将U盘文件备份,然后格式化U盘,选择NTFS格式,即可复制超过4G文件

.xml 和 .properties配置文件读取方法//TODO

将所有的换行符替换为空格,如\r,\n等:

return str.replaceAll("[\r\n|\n|\r]", " ").trim();

响应数据:

params.getResponse().addParam(datas.toArray());

推送消息到客户端:

void com.goal.war.core.net.message.MessageDispatcher.pushToClient(int responseCommandId, Object data, Long roleId)

客户端参数:

RoleBean roleBean = params.getRoleBean();
String string = params.getData().toString();

匿名内部类:获取符合条件的xml数据

IBeanFilter<ExchangeCodeXML> iBeanFilter = new IBeanFilter<ExchangeCodeXML>() {
        @Override
        public boolean accept(ExchangeCodeXML t) {
            if (t.getLibId().equals(libId)) {
                return true;
            }
            return false;
        }
    };

根据某个字段来查询:

<ExchangeCodeXML> List<ExchangeCodeXML> com.goal.war.data.XMLDataCache.find(Class<ExchangeCodeXML> clazz, IBeanFilter<ExchangeCodeXML> beanFilter)

排序:

        Collections.sort(list, new Comparator<FundXML>() {
            @Override
            public int compare(FundXML o1, FundXML o2) {
                return o1.getId().compareTo(o2.getId());
            }
        });
//发放奖励
    WARE.addToRole()
//扣除道具
    WARE.delFromRole()

Map<Integer, Integer> mapGet = StringUtil.fromJson(hasGet, new TypeToken<Map<Integer, Integer>>(){}.getType());

工具类:
    org.apache.commons.io.FileUtils
    public static String readFileToString(File file, Charset encoding)将文件内容读取为字符串
    /**
     * 将所有的换行符替换为空格,如\r,\n等
     * 
     * @return 替换后的字符串
     */
    public static String removeNewLineChar(String str) {
        return str.replaceAll("[\\r\\n|\\n|\\r]", " ").trim();
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,684评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,143评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,214评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,788评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,796评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,665评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,027评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,679评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,346评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,664评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,766评论 1 331
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,412评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,015评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,974评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,073评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,501评论 2 343

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,444评论 25 707
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,733评论 6 342
  • 返回上次光标的位置Ctrl+Alt+ left/right 返回至上次浏览的位置 Alt+回车 导入包,自动修正C...
    请叫我四爷阅读 1,891评论 1 2
  • 自己选择的路、跪着也要把它走完。
    93650345d0d1阅读 70评论 0 0
  • 呆在学校的最后一天,夜晚宿舍楼没几个房间是还亮着灯的。但白天,校园里的人其实不少。 在研究生办公室值班,又坐了一天...
    六月的碎碎念阅读 226评论 0 0