linux 端口转发问题

在linux上的tomcat,如果要以80端口运行,必须为root权限,奇葩吧!

所以,要进行端口转发,将 80 转到 8080

方法:

修改iptables:

其中 :PREROUTING是用于入站规则,OUTPUT用于出站,所以写了两条,否则服务器上,将无法访问localhost (加上-d http://localhost 是为了只针对localhost)

c# checklistbox 单选

网上看了些代码,发现都有各种缺陷。因为c#里面的checklistbox的check和select是两个东西,当控制好了checkbox,可能发现select没控制。于是自己写了下,同时支持checkbox和select的选择与取消。真别说,就这么简单个功能,既然还涉及比较多的知识点,还花了些时间,反复多次才搞成功。这个很想不通,为什么微软不直接将这个控件的功能搞完善呢?

 

mysql 查询性能分析

1、原始速度 0.133 0.133 0.128
select studentExperimentID as id2 from studentexperiment where studentID like “%2005%”

2、包含非索引 0.263  0.268 0.264
select studentExperimentID,studentID,doScore from studentexperiment where studentID like “%2005%”

3、关联索引查询 0.338  0.315  0.321
select studentExperimentID,studentID,doScore from studentexperiment r join (select studentExperimentID as id2 from studentexperiment where studentID like “%2005%”)t on r.studentExperimentID=id2

4、in索引查询 0.581  0.406 0.406
select studentExperimentID,studentID,doScore from studentexperiment where studentExperimentID in (select studentExperimentID as id2 from studentexperiment where studentID like “%2005%”)

 

经过测试表明,对于非索引字段的查询,不需要进行专门的join或in优化,结果是反而变慢。

chrome定义页眉页脚,待验证

<!doctype html>
<html lang=”en”>
<head>
<meta charset=”UTF-8″ />
<meta http-equiv=”X-UA-Compatible” content=”IE=edge,chrome=1″ />
<title> 页面名称 </title>
<style type=”text/css”>
header, footer {
display: none;
}
@media print {
header {
display: block;
}
footer {
display: block;
}
}
</style>
</head>
<body>

<header>页眉</header>

<p>内容</p>

<footer>页脚</footer>

</body>
</html>

apache trace关闭以及检测方法

不知道trace如何利用,没有时间去研究了,现在记录下关闭方法和检测方法

1、检测方法:

采用telnet (使用xshell,不要使用windows dos,显示有问题)测试

telnet xxx.com

TRACE / HTTP/1.1

如果输出的不是一个HTML的4XX提示禁用信息,比如 :

那么就是没有禁用。

2、禁用方法:

http.conf中添加 TraceEnable off

使用mod_substitute修改apache反向代理中的内容字符串

mod_substitute 是apache自带的,非常好用,可以用于修改代理时修改网页内容,用于解决一些没办法的办法

1、启用2个扩展 mod_substitute 和 mod_filter

2、配置

<VirtualHost *:443>
ServerName prox2.xxx.com
ProxyPass / http://xxx.xxx.cn/
ProxyPassReverse / http://xxx.xxx.cn/

SSLEngine on
SSLCertificateFile “certs/x_public.crt”
SSLCertificateKeyFile “certs/x.key”
SSLCertificateChainFile “certs/x_chain.crt”

AddOutputFilterByType SUBSTITUTE text/html
Substitute “s|http://xxx.xxx.cn:80/|https://prox2.xxx.com/|i”

</VirtualHost>

utf8mb4 emoji 表情字符集mysql出错的另一种原因

其实,utf8mb4就像文档描写的那样,确实非常简单,就是在utf8基础上增加了点东西,兼容性是非常好的。但是我按网上教程怎么改,都无法解决问题。后来沉下心来,一步一步的跟踪调试,终于发现了问题。问题在于mysql的存储过程和函数上,如果是将字段存储从原来的UTF8改成UTF8MB4,那么这些存储过程和函数是需要重新执行一次的,否则它们还是按UTF8编码来处理数据。并且重新执行生成存储过程或函数的时候,必须改点东西,比如敲点空格进去,这样生成的新的存储过程或函数才能支持UTF8MB4。而关于这点,我觉得是mysql官方应该进行提醒的,害人走了不少弯路。

chrome,IE去除打印时的页眉页脚