??xml version="1.0" encoding="utf-8" standalone="yes"?> p6spy是一个开源YӞ它可以跟tQ何用jdbc的应用生的数据库操作。特别适合于监控ejb服务器生的 sql statements?br />
官方|址Q?a >http://www.p6spy.com/ 下面我介l一下p6spy在tomcat应用E序上安装的步骤Q?br />
Q?Q?a >http://www.p6spy.com/download.htmlQ下载zip?br />
Q?Q解压出p6spy.jar spy.properties两个文g realdriver =com.mysql.jdbc.Driver 这行前面的#L
1.减少HTTPh
囄地图、CSS Sprites、内联图片和脚本、样式表的合qӞ
2.使用内容发布|络QContent Delivery Networks CDNQ?br />
内容发布|络Q是一l分布在多个不同地理位置?web服务器,用于更加有效地向用户发布内容。CDN可能选择阶跃数最的服务器,
或者具有最短响应时间的服务器?br />
3.dExpires?br />
配置lgQ其能够最大化地利用浏览器的缓存能力来改善面的性能Q?br />
使用Expires头来告诉web客户端它可以使用一个组件的当前副本Q直到指定时间ؓ止;
4.压羃lg
通过减小HTTP响应的大来减少响应旉Q?br />
5.样式表攑֜剙
6.脚本放在底?
http1.1 规范览器从每个L名ƈ行地下蝲2个组件?br />
7.使用外部javaScript和css
外部javaScript和css可以利用览器缓存;
8.减少DNS查找
9._JavaScript
从代码中U除不必要地字符(I格、换行以及制表符)以减其大小Q进而改善加载时间的实践Q?
]]>
Ctrl+D: 删除当前?nbsp;
Ctrl+Alt+↓ 复制当前行到下一?复制增加)
Ctrl+Alt+↑ 复制当前行到上一?复制增加)
Alt+↓ 当前行和下面一行交互位|?特别实用,可以省去先剪?再粘贴了)
Alt+↑ 当前行和上面一行交互位|?同上)
Alt+← 前一个编辑的面
Alt+→ 下一个编辑的面(当然是针对上面那条来说了)
Alt+Enter 昄当前选择资源(工程,or 文g or文g)的属?br />
Shift+Enter 在当前行的下一行插入空?q时鼠标可以在当前行的Q一位置,不一定是最?
Shift+Ctrl+Enter 在当前行插入I(原理同上?
Ctrl+Q 定位到最后编辑的地方
Ctrl+L 定位在某?nbsp;(对于E序过100的h有音?
Ctrl+M 最大化当前的Edit或View (再按则反?
Ctrl+/ 注释当前?再按则取消注?br />
Ctrl+O 快速显C?nbsp;OutLine
Ctrl+T 快速显C当前类的承结?br />
Ctrl+W 关闭当前Editer
Ctrl+K 参照选中的Word快速定位到下一?br />
Ctrl+E 快速显C当前Editer的下拉列?如果当前面没有昄的用黑体表示)
Ctrl+/(键? 折叠当前cM的所有代?br />
Ctrl+×(键? 展开当前cM的所有代?br />
Ctrl+Space 代码助手完成一些代码的插入(但一般和输入法有冲突,可以修改输入法的热键,也可以暂用Alt+/来代?
Ctrl+Shift+E 昄理当前打开的所有的View的管理器(可以选择关闭,Ȁzȝ操作)
Ctrl+J 正向增量查找(按下Ctrl+J?你所输入的每个字母编辑器都提供快速匹配定位到某个单词,如果没有,则在stutes line中显C没有找C,查一个单词时,特别实用,q个功能Idea两年前就有了)
Ctrl+Shift+J 反向增量查找(和上条相?只不q是从后往前查)
Ctrl+Shift+F4 关闭所有打开的Editer
Ctrl+Shift+X 把当前选中的文本全部变呛_?br />
Ctrl+Shift+Y 把当前选中的文本全部变为小?br />
Ctrl+Shift+F 格式化当前代?br />
Ctrl+Shift+P 定位到对于的匚wW?譬如{}) (从前面定位后面时,光标要在匚wW里?后面到前?则反?
下面的快捷键是重构里面常用的,本hp己喜Ƣ且常用的整理一??一般重构的快捷键都是Alt+Shift开头的?
Alt+Shift+R 重命?nbsp;(是我自己最q的一个了,其是变量和cȝRename,比手工方法能节省很多力_?
Alt+Shift+M 抽取Ҏ (q是重构里面最常用的方法之一?其是对一大堆泥团代码有用)
Alt+Shift+C 修改函数l构(比较实用,有N个函数调用了q个Ҏ,修改一ơ搞?
Alt+Shift+L 抽取本地变量( 可以直接把一些魔法数字和字符串抽取成一个变?其是多处调用的时?
Alt+Shift+F 把Class中的local变量变ؓfield变量 (比较实用的功?
Alt+Shift+I 合ƈ变量(可能q样说有点不妥Inline)
Alt+Shift+V Ud函数和变?不怎么常用)
Alt+Shift+Z 重构的后悔药(Undo)
~辑
作用?nbsp;功能 快捷?nbsp;
全局 查找q替?nbsp;Ctrl+F
文本~辑?nbsp;查找上一?nbsp;Ctrl+Shift+K
文本~辑?nbsp;查找下一?nbsp;Ctrl+K
全局 撤销 Ctrl+Z
全局 复制 Ctrl+C
全局 恢复上一个选择 Alt+Shift+↓
全局 剪切 Ctrl+X
全局 快速修?nbsp;Ctrl1+1
全局 内容辅助 Alt+/
全局 全部选中 Ctrl+A
全局 删除 Delete
全局 上下文信?nbsp;Alt+Q?br />
Alt+Shift+?
Ctrl+Shift+Space
Java~辑?nbsp;昄工具提示描述 F2
Java~辑?nbsp;选择装元素 Alt+Shift+↑
Java~辑?nbsp;选择上一个元?nbsp;Alt+Shift+←
Java~辑?nbsp;选择下一个元?nbsp;Alt+Shift+→
文本~辑?nbsp;增量查找 Ctrl+J
文本~辑?nbsp;增量逆向查找 Ctrl+Shift+J
全局 _脓 Ctrl+V
全局 重做 Ctrl+Y
查看
作用?nbsp;功能 快捷?nbsp;
全局 攑֤ Ctrl+=
全局 ~小 Ctrl+-
H口
作用?nbsp;功能 快捷?nbsp;
全局 Ȁzȝ辑器 F12
全局 切换~辑?nbsp;Ctrl+Shift+W
全局 上一个编辑器 Ctrl+Shift+F6
全局 上一个视?nbsp;Ctrl+Shift+F7
全局 上一个透视?nbsp;Ctrl+Shift+F8
全局 下一个编辑器 Ctrl+F6
全局 下一个视?nbsp;Ctrl+F7
全局 下一个透视?nbsp;Ctrl+F8
文本~辑?nbsp;昄标尺上下文菜?nbsp;Ctrl+W
全局 昄视图菜单 Ctrl+F10
全局 昄pȝ菜单 Alt+-
D
作用?nbsp;功能 快捷?nbsp;
Java~辑?nbsp;打开l构 Ctrl+F3
全局 打开cd Ctrl+Shift+T
全局 打开cd层次l构 F4
全局 打开声明 F3
全局 打开外部javadoc Shift+F2
全局 打开资源 Ctrl+Shift+R
全局 后退历史记录 Alt+←
全局 前进历史记录 Alt+→
全局 上一?nbsp;Ctrl+,
全局 下一?nbsp;Ctrl+.
Java~辑?nbsp;昄大纲 Ctrl+O
全局 在层ơ结构中打开cd Ctrl+Shift+H
全局 转至匚w的括?nbsp;Ctrl+Shift+P
全局 转至上一个编辑位|?nbsp;Ctrl+Q
Java~辑?nbsp;转至上一个成?nbsp;Ctrl+Shift+↑
Java~辑?nbsp;转至下一个成?nbsp;Ctrl+Shift+↓
文本~辑?nbsp;转至?nbsp;Ctrl+L
搜烦
作用?nbsp;功能 快捷?nbsp;
全局 出现在文件中 Ctrl+Shift+U
全局 打开搜烦对话?nbsp;Ctrl+H
全局 工作Z的声?nbsp;Ctrl+G
全局 工作Z的引?nbsp;Ctrl+Shift+G
文本~辑
作用?nbsp;功能 快捷?nbsp;
文本~辑?nbsp;改写切换 Insert
文本~辑?nbsp;上滚?nbsp;Ctrl+↑
文本~辑?nbsp;下滚?nbsp;Ctrl+↓
文g
作用?nbsp;功能 快捷?nbsp;
全局 保存 Ctrl+X
Ctrl+S
全局 打印 Ctrl+P
全局 关闭 Ctrl+F4
全局 全部保存 Ctrl+Shift+S
全局 全部关闭 Ctrl+Shift+F4
全局 属?nbsp;Alt+Enter
全局 新徏 Ctrl+N
目
作用?nbsp;功能 快捷?nbsp;
全局 全部构徏 Ctrl+B
源代?br />
作用?nbsp;功能 快捷?nbsp;
Java~辑?nbsp;格式?nbsp;Ctrl+Shift+F
Java~辑?nbsp;取消注释 Ctrl+"
Java~辑?nbsp;注释 Ctrl+/
Java~辑?nbsp;d导入 Ctrl+Shift+M
Java~辑?nbsp;l织导入 Ctrl+Shift+O
Java~辑?nbsp;使用try/catch块来包围 未设|,太常用了Q所以在q里列出,自己讄?br />
也可以用Ctrl+1自动修正?nbsp;
q行
作用?nbsp;功能 快捷?nbsp;
全局 单步q回 F7
全局 单步跌 F6
全局 单步跛_ F5
全局 单步跛_选择 Ctrl+F5
全局 调试上次启动 F11
全局 l箋 F8
全局 使用qo器单步执?nbsp;Shift+F5
全局 d/去除断点 Ctrl+Shift+B
全局 昄 Ctrl+D
全局 q行上次启动 Ctrl+F11
全局 q行臌 Ctrl+R
全局 执行 Ctrl+U
重构
作用?nbsp;功能 快捷?nbsp;
全局 撤销重构 Alt+Shift+Z
全局 抽取Ҏ Alt+Shift+M
全局 抽取局部变?nbsp;Alt+Shift+L
全局 内联 Alt+Shift+I
全局 Ud Alt+Shift+V
全局 重命?nbsp;Alt+Shift+R
全局 重做 Alt+Shift+Y
]]>
2、查N中的下一?Ctr+kQ反?Ctr+Shift+k
3、大写转化QCtr+Shift+X Ctr+Shift+Y
4、ctrl+tQctrl+t+tQ?查看cLҎ的承结?
5、ctrl+shift+u 查看变量在哪里被引用?
6、ctrl+shift+gQalt+shift+hQ?查看Ҏ在哪里被调用?
7、ctrl+l 定位行号
8、选中cd 点击Edit 选择 Copy qualified Name 可以把类的完整\径copy下来 同样Ҏ法名也适用
9、Go to Next/Last Member Ctrl+Shift+Down/Up
10、Copy Lines Ctrl+Alt+Down/Up
11、ctrl+r,查找资源文g
12、ctrl+t 查看cd?br />
13、ctrl+shift+f 代码格式?
]]>
docment.cookie="name=value;expires=;path=path...";
只适用?firefox
2.正确做法Q(不要讄expires的|
docment.cookie="name=value;path=path...";
兼容ie和firefox
]]>
在说明如何用宽带路由器构Z人网站之前,我们先来详细介绍一下什么是动态域名和动态域名解析服务。做到知其然q要知其所以然?br />
动态域?/strong>
Internet上的域名解析一般是静态的Q即一个域名所对应的IP地址是静态的Q长期不变的。也是_如果要在 Internet上提供服务,如搭建网站,架设邮gpȝQ一般需要有一个固定的IP地址?br />
动态域名的功能是实现固定域名到动态IP地址之间的解析。用hơ连接到 Internet 一般会自动得到新的 IP
地址之后Q安装在用户计算机里的动态域名Y件就会把q个 IP
地址发送到动态域名解析服务器Q更新域名解析数据库。Internet上的其他讉Kq个域名的时候,动态域名解析服务器会返回正的IP地址l他?br />
因ؓl大部分Internet用户上网的时候分配到的IP地址都是动态的。用传统的静态域名解析方法,用户x域名解释到自׃|的计算机,是不太现?
的。而有了动态域名,q个梦可以成真。用户可以申请一个域名,利用动态域名解析服务,把域名与自己上网的计机l定在一Pq样可以很方便的让
Internet 用户讉K到自q计算机?br />
动态域名解析服务(DDNSQ?/strong>
动?
域名解析pȝ用L动态IP地址映射C个固定的域名解析服务上(DDNSQ。动态域名解析系l一般由两部分构成。第一部分是服务器端程序,位于服务?
的主Z。另一部分是客LE序Q就q行在广大用LL上。在每次q接|络的时候,客户端程序就会通过信息传递,把该L的动态IP地址传送给位于服务
商主Z的服务器E序Q服务器E序负责提供DNS服务q实现动态域名解析服务,再收到客L通知后服务器端程序立x新数据,新的IP地址和原有的固定
域名l定Q这样就完成了动态域名解析的服务。别Z可以通过域名讉K你的服务器了?
利用宽带路由器徏立个人网?/strong>
TP-LINK推出的TL-410是一N向家庭用L宽带路由?其外观小巧时。在功能?除了基本的支持多人共享宽带上|之外,q支持动态DNS
QDDNSQ,用户可以建立自己的个人网站或者是FTP服务器。而切最重要是hg宜,非常适合家庭用户学生一族的使用Q目前市Zh格在180元左叟?
TL-R410集成DDNS客户端YӞ可自动捕获WAN口的IP变化Qƈ自动联系DDNS服务提供商的DDNS域名服务器,你?
册的固定域名指向新的变化了的IP地址Q从而实现将静态的域名解释成动态的IP地址。有了TL-R410提供的DDNS功能Q你只需要向服务商申请一个免
费域名,不用为租借服务商服务器等付费Q就可以在自qPC上,完成从规划、设计、架站,以至开发编E等一pd操作?br />
市面上很多宽带\由器都提?
DDNS功能Q但DDNS功能真正能用、能起作用的却非常少。带DDNS功能的宽带\由器Q其实就是将某一个或多个DDNS服务商提供的DDNS客户端Y
仉成到宽带路由器内。由于不同品牌的宽带路由器会集成不同的DDNS客户端YӞ选择不同品牌的宽带\由器q当于选择不同的DDNS客户端YӞ也就
意味着选择不同的DDNS服务商。市面上l大多数品牌的宽带\由器都自台湾,q类带DDNS功能产品集成的不是大陆DDNS服务商提供的客户端YӞ往
往DDNS只是功能摆设不v作用?
在DDNS功能上,TL-R410集成的是大陆应用最q泛的花生壳和科q网DDNS客户端Y
Ӟ不仅保证DDNS功能可用Q还因ؓ掌握核心技术提供的是非常易用的DDNS。花生壳和科q网一个在q州一个在深圳Q因其提供的DDNS服务质量高、可
靠性好Q在大陆得到q泛的应用,q渐成ؓ国际动态域名服务商。在此提醒各位用P若你要真正n受到免费获得个性域名,免费l徏个h|站Q免Ҏ?
WEB、FTP{个人服务器的乐,你一定要选购提供真正意义上的DDNS功能的品,购买宽带路由器前一定要了解清楚产品集成的是什么服务商的DDNS
客户端Y件?
W者现在正在用的q款宽带路由器。TL-R410虽然支持DDNS但是对于一些SOHO发烧友来_如果真的惛_
用DDNS建立个h|站Q笔者徏议您q选择TL-R460QTL-R460在TL-R410的基上增加了很多的功能,而且h很好的防病毒能力Q可以确
保您的网站的安全。但是徏立网站的步骤和对路由器的讄上TL-R460和TL-R410区别不大Q下面就以TL-R410Z介绍一下如何徏立免费的?
人网站?
在设|DDNS功能前要先到q壳网站申请一个帐戗获得免费域名,q激z花生壳服务。TL-R410的DDNS讄?
里选择“q?#8221;Q然后点?#8220;注册?#8221;Q系l会自动q接到花生壳的申Lc根据页面提C,一步步q行Q当甌成功后激z花生壳服务卛_。假讄L域名
是ddttcc.vi cp.net
q入TL-410的配|界面选择动态DNSQ出现如上图的界面填写在q壳网站注册的帐号和密码。选择启用DDNS然后选择登陆。然后域名信息栏׃出现甌的免费域名。TL-R410上的需要做的设|就完了?如下图:
当然下面是WEB服务器Y件的讄。首先要自己建立一个网站系l,当然q不是我们讲解的重点。可以自己先做几个简单的面可以,我们主要是介l设|的
步骤卛_。徏立WEB服务器,在WINDOW下WEB服务器都是用IIS。原因也很明显,因ؓ都是微Y的品兼Ҏ最好。下面我们就介绍一下IIS的设
|?br />
在Windows XP下面依次选择开?>控制面板->理工具->Internet信息服务会出现IIS的设|界面?如下图:
然后右键点击图中的默认网站,选择属性出现默认网站属性的对话框?如下图:
|站标识中的描述一栏中可以选择对自pq站的描述Q其他选项均可以不用改动。然后选择ȝ录。出C面的对话c?如下图:
q个对话中你可以选择你的|站文g存在的磁盘目录。一般默认是存在inetpubwwwroot目录中,不过你可以选择你想要的目录。而且可以通过
IIS建立虚目录对|站文gq行理Q这些要涉及到其他有关于|站的问题。在此就多不Ԍ大家可以参考其他的相关书籍。最后还要设|你一默认的文,
选择文档出现下面的对话框?如下图:
讄文是当别h在访问你的网站的时候,键入你的域名以后服务器将打开哪一个文件。一般的|站的主늚文g名都是index或者default后缀名称
可以选择dQ把你的|站主页的文件名U输入选择定可以。这样当你的服是׃选择的编E工具决定了。如果是ASP则是.aspQ如果是
ASP.NET则是.aspx了。务器接到服务请求时Q就打开q个文g以回应服务请求?
到此,个h|站q讄完了。现在就可以通过览器来讉K你的个h|站了?
]]>
但是有时候我们需要得到完整的SQL语句Q怎么办呢Q用P6SPY可以完成这个Q?
目前p6spy 适用的应用服务器包括jboss, atg, orion, jonas, iplanet, weblogic, websphere, resin and tomcat.
Q?Q将p6spy.jar 攑օ应用E序的WEB-INF/lib目录Q将spy.properties攑օWEB-INF/classes目录
Q?Q修改spy.properties
logfile = c:/spy.log 修改一个你需要的日志文g?br />
Q?Q修改hibernate.xmlQ修改connection.driver_class的gؓcom.p6spy.engine.spy.P6SpyDriver
Q?Q重启tomcat
Q?Q这样在c:/下的spy.log记录了数据库的访问情c?/p>
select agent_id agentId ,count(service_type) counts, sum(time_to_sec(end_time)-time_to_sec
(start_time)) seconds from et_service_log where service_type=? and site_id=? and agent_id in (?, ?,
?, ?, ?, ?, ?, ?, ?, ?) group by agent_id
SQLQuery sqlQuery = this.getSession().createSQLQuery(conditionSql);
sqlQuery.setParameterList("agentId", agentIdList);
2.M明细表关pL询优?br />
普遍Ҏ?先查询主表IDLIST,再通过每个ID,获取一l明l表中的数据
优化Ҏ?M?LEFT JOIN 一ơ执行就可以把相x据RESRARCH
CODE Q?br />
Criteria criteria = createCriteria(MessageCategory.class)
.add(Restrictions.eq("entityPk.siteId", siteId))
.add(Restrictions.eq("deleted", false));
criteria.createAlias("messageContentSet",
"messageContentSet",JoinFragment.LEFT_OUTER_JOIN).setFetchMode("messageContentSet",
FetchMode.JOIN).add(
Restrictions.eq("messageContentSet.deleted", false)).addOrder
(Order.desc("entityPk.id"));
List listData=criteria.list();
Set set =new HashSet(listData); (* qo重复数据)