71.Tomcat访问项目带了“项目名称”。
最简单的办法,是把这个项目部署到“root”目录,据boss所说,阿里的每一个项目,都单独放到1个Tomcat的root下。
但是,我们的实际项目遇到了一些问题。
Front项目,前端系统
Backend项目,后端管理系统
CMS与静态资源,前端系统2

由于图片等资源,存的是相对路径,同时需要让Front和Backend都能够访问到图片,我们最后决定把CMS放在Tomcat的root目录下。
项目发布之后,Front项目的访问路径是:http://a.com/Front。
这种路径真的很坑,http://a.com,不能直接访问,我们在CMS系统下增加了一个index.jsp,重定向到http://a.com/Front。

这种真的很烂,但是暂时如此。

其它考虑:
多个客户的项目,可能会部署到一台配置极好的服务器上。
因此,从简化部署的考虑,一个客户只用一个Tomcat,只有一个root,这就是让人纠结的地方。

如果是我的话:
第一种方法,一个客户用2个Tomcat,就是管理稍微麻烦了些。
第二种方法,CMS系统和Front系统合并成为一个,小公司多个项目放在一起,更简单开发和维护。
第三种方法,一个客户用1台配置较低的服务器,开2个Tomcat,甚至多个,Nginx配好。

72.浮点数相乘,元转分,分转换成元。
//Money内部用double,有时对,有时错,不稳定
double a =5.1d;
Money m = new Money(a);
System.out.println(m);

//509.99999999999994,直接坑了
double d = 5.10*100;
System.out.println(d);

//方法一:用BigDecimal的setScale方法,设置“精度”和“舍入模式”。
BigDecimal bd = new BigDecimal(d).setScale(3,BigDecimal.ROUND_UP);
System.out.println(bd.longValue());
System.out.println(bd.doubleValue());

方法二:
public static double mul(double v1, double v2) {
BigDecimal b1 = new BigDecimal(Double.toString(v1));
BigDecimal b2 = new BigDecimal(Double.toString(v2));
return b1.multiply(b2).doubleValue();
}

方法三:Boss比较倾向于,“元转分”自己实现,但是,不从根本上解决“普通的double相乘问题”,只是解决“元转分”这个特殊的具体问题。
输入:
类型:double
典型值:5,5.0,5.10,5.09,5.011

第1步:转换成统一的格式,5.00,小数点后有2位,第3位之后的,直接舍掉。
第2步:提取整数部分intPart和小数部分doublePart。
第3步:intPart*100+doublePart。

想探究下BigDecimal.multiply和方法三的区别,不过源码没有看懂。

参考资料:
JDK1.6 API文档
http://***/html/blogs/20130818/55035.htm
小雷粉-爱孔孟

73.模版或视图页面的存放位置。
WebContent目录下的模版文件,可以直接通过url访问到,很可能会泄漏视图部分的源码。
从安全角度考虑,放在WEB-INF目录下比较好。

FTL模版不应该放在WebContent的根目录下。
  外界可以直接访问到,非常危险,
  JSP还相对安全一些,默认会执行,不会直接泄漏源码。
  
74.Freemarker变量最好判断是否存在。
  <#if role?exists && role=="admin">
  如果role不存在,可能会报错,阻碍后面Freemarker代码的执行。
  关于变量是否null和是否存在,挺麻烦的。
  
75.Tomcat配置https。
双向证书参考的是,百度经验上的
http://jingyan.baidu.com/article/a948d6515d3e850a2dcd2ee6.html
经过实践的命令:
 keytool -genkey -v -alias tomcat -keyalg RSA -keystore C:/p2p/tomcat.keystore -validity 365
 
 keytool -genkey -v -alias mykey -keyalg RSA -storetype PKCS12 -keystore c:/p2p/mykey.p12
 
 keytool -export -alias mykey -keystore C:/p2p/mykey.p12 -storetype PKCS12 -storepass 123456 -rfc -file c:/p2p/mykey.cer 
 
 keytool -import -v -file c:/p2p/mykey.cer -keystore c:/p2p/tomcat.keystore
 
 keytool -list -keystore c:/p2p/tomcat.keystore
 
 keytool -keystore c:/p2p/tomcat.keystore -export -alias tomcat -file c:/p2p/tomcat.cer
 
  <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
SSLEnabled="true" maxThreads="150" scheme="https"
secure="true" clientAuth="true" sslProtocol="TLS"
keystoreFile="c:/p2p/tomcat.keystore" keystorePass="123456"
truststoreFile="c:/p2p/tomcat.keystore" truststorePass="123456" />

单向证书,还没有尝试,找了一篇看起来还不错的
http://forchenyun.iteye.com/blog/473776

在JavaEye上,还搜到了一篇同时有“单向”和“双向”的证书配置教程。
http://juncao2011.iteye.com/blog/973988

据说,某机构发1个HTTPS证书,每年收费7000元,吃人啊。

76.通过本地控制台,连接远程redis-server。
cd /D E:\Mongodb-Redis-Nginx\redis_win\redisbin_x64
redis-cli -h 120.90.56.110 -p 6379

如果服务器上的redis没有设置密码,通过以上命令,可以成功访问。

77.VIM查找命令。
想在Redis中查找注释的密码配置,几百行,实在是懒得一行行往下翻了。
看来还是有必要学习下“查找命令”。
方法:命令模式下,按‘/’,然后输入要查找的字符,Enter。?和/的区别是,一个向前(下)找,一个向后(上)。
参考资料:http://zhidao.baidu.com/link?url=4rSOqYZEPYH9h_B8MRPyVSC9IuTiJGlaVfJYgGU1ir1mXvr_Tu-cFO0aJ5oz8tN6jkqNDqKFh5ei0_dGXIF1H_

78.设置Redis的密码。
通过/requirepass 在第348行找到了密码配置。
348 # requirepass foobared

把密码这种比较常用的配置,放在最后太不科学了,手动在Redis.conf的前几行,增加密码配置:
requirepass xiaolei
redis-cli -h 120.90.56.110 -p 6379 -a xiaolei
参考资料:http://www.iteye.com/topic/1124400

79.hosts文件的位置。
Linux:/etc/hosts
Windows:C:\Windows\System32\drivers\etc\hosts

Windows上直接修改hosts文件,可能会被“QQ电脑管家”之类的安全软件拦截,因为直接修改hosts文件有“安全风险”。

80.数据库字段名和sql映射java属性名转成小写。
  原来是大写的,想改成小写,看起来舒服一点。
  mysql-front,没有自带可以把大写字段“ABC”转换成小写“abc”的工具,只好手动改。
  mybatis中的java字段名称,手动改,太慢了点,可以使用Eclipse的快捷键“Ctrl+Shift+Y”,“大写转小写”。
  “Ctrl+Shift+X”,“小写转大写”,只可惜与QQ拼音输入法的截屏快捷键冲突了,可以手动改一下QQ的截屏快捷键。

2015年工作中遇到的问题:71-80,Tomcat-Redis-浮点数-HTTPS的更多相关文章

  1. 2015年工作中遇到的问题:81-90,标题党-Nginx与真实IP-Mybatis等

     81."标题党"与"百度收录"问题. 很久以来,就发现那些"标题党"的收录和排名情况非常好,比如CSDN某篇文章,就随便一写,就排在了第一 ...

  2. 随机记录工作中常见的sql用法错误(一)

    没事开始写博客,留下以前工作中常用的笔记,内容不全或者需要补充的可以留言,我只写我常用的. 网上很多类似动软生成器的小工具,这类工具虽然在表关系复杂的时候没什么软用,但是在一些简单的表结构关系还是很方 ...

  3. 工作中常用的js、jquery自定义扩展函数代码片段

    仅记录一些我工作中常用的自定义js函数. 1.获取URL请求参数 //根据URL获取Id function GetQueryString(name) { var reg = new RegExp(&q ...

  4. 工作中那些提高你效率的神器(第二篇)_Listary

    引言 无论是工作还是科研,我们都希望工作既快又好,然而大多数时候却迷失在繁杂的重复劳动中,久久无法摆脱繁杂的事情. 你是不是曾有这样一种想法:如果我有哆啦A梦的口袋,只要拿出神奇道具就可解当下棘手的问 ...

  5. 工作中那些提高你效率的神器(第一篇)_Everything

    引言 无论是工作还是科研,我们都希望工作既快又好,然而大多数时候却迷失在繁杂的重复劳动中,久久无法摆脱繁杂的事情. 你是不是曾有这样一种想法:如果我有哆啦A梦的口袋,只要拿出神奇道具就可解当下棘手的问 ...

  6. Atitit 软件开发中 瓦哈比派的核心含义以及修行方法以及对我们生活与工作中的指导意义

    Atitit 软件开发中 瓦哈比派的核心含义以及修行方法以及对我们生活与工作中的指导意义 首先我们指明,任何一种行动以及教派修行方法都有他的多元化,只看到某一方面,就不能很好的评估利弊,适不适合自己使 ...

  7. C# 工作中遇到的几个问题

    C#  工作中遇到的几个问题 1.将VS2010中的代码编辑器的默认字体“新宋体”改为“微软雅黑”后,代码的注释,很难对齐,特别是用SandCastle Help File Builder生成帮助文档 ...

  8. [工作中的设计模式]解释器模式模式Interpreter

    一.模式解析 解释器模式是类的行为模式.给定一个语言之后,解释器模式可以定义出其文法的一种表示,并同时提供一个解释器.客户端可以使用这个解释器来解释这个语言中的句子. 以上是解释器模式的类图,事实上我 ...

  9. [工作中的设计模式]享元模式模式FlyWeight

    一.模式解析 Flyweight在拳击比赛中指最轻量级,即“蝇量级”或“雨量级”,这里选择使用“享元模式”的意译,是因为这样更能反映模式的用意.享元模式是对象的结构模式.享元模式以共享的方式高效地支持 ...

随机推荐

  1. HTML基础-第一讲

    转自:https://blog.csdn.net/likaier/article/details/326639?utm_source=blogxgwz9 HTML是网页主要的组成部分,基本上一个网页都 ...

  2. Linux 解压缩命令整理

    一.tar命令 参数 参数 详解 参数 详解 -c 可以使用绝对路径来压缩 -x 解开一个压缩文件的参数指令 -t 查看内容 -r 向压缩归档文件末尾追加文件 -u 更新原压缩包中的文件 -z 有gz ...

  3. css基础属性

    color:设置文本颜色:属性值:1.表示颜色的英文单词,例如:red.blue.green.pink.purple.cyan等:2.十六进制表示法:#ff0000: 0.1.2...9.a.b.c. ...

  4. FansMail:邮件发送标准API与技术实现(Java)

    发送邮件,是Web系统等IT建设中最常见的一种功能. 我对最常见的一种需求进行了抽象和封装,定义了一套标准的API,并且使用Java技术实现. 项目信息 项目名称:FansMail 项目作者:LeiW ...

  5. MFC单文档程序架构解析

    MFC单文档程序架构解析 MFC单文档程序架构解析 这里我以科院杨老师的单文档程序来分析一下MFC单文档的程序架构,纯属个人见解,不当之处烦请指教! 首先我们了解到的是 图(一) theApp 是唯一 ...

  6. 【CS Round #43 D】Bad Triplet

    [链接]点击打开链接 [题意] 给你n个点m条边的无权无向联通图; 让你找3个点A,B,C 使得A->B=B->C=A->C 这里X->Y表示点X到点Y的最短路长度. [题解] ...

  7. amazeui学习笔记--css(常用组件11)--分页Pagination

    amazeui学习笔记--css(常用组件11)--分页Pagination 一.总结 1.分页使用:还是ul包li的形式: 分页组件,<ul> / <ol> 添加 .am-p ...

  8. HTTP详解--请求、响应、缓存

    1. HTTP请求格式 做过Socket编程的人都知道,当我们设计一个通信协议时,“消息头/消息体”的分割方式是很常用的,消息头告诉对方这个消息是干什么的,消息体告诉对方怎么干.HTTP协议传输的消息 ...

  9. 2015,我的投资理财策略(股权众筹+P2P网贷+活期理财)

    纸币流行,尤其是当今中国的市场经济,纸币几乎是一直是贬值的,每个人的财富都在被不断地稀释,可能是被政府.如果你不注意保值增值,你就越来越穷.     当年的万元户,在今天看来就是一个笑话,其实不怎么好 ...

  10. STL algorithm算法mov,move_backward(38)

    move原型: std::move template <class InputIterator, class OutputIterator> OutputIterator move (In ...