cache.jsp
上传用户:guhaomin
上传日期:2007-06-10
资源大小:23203k
文件大小:16k
源码类别:

电子政务应用

开发平台:

Java

  1. <%
  2. /**
  3.  * $RCSfile: cache.jsp,v $
  4.  * $Revision: 1.3.2.1 $
  5.  * $Date: 2001/05/10 02:06:34 $
  6.  */
  7. %>
  8. <%@ page import="java.util.*,
  9.  java.text.*,
  10.                  com.coolservlets.forum.*,
  11.  com.coolservlets.util.*,
  12.  com.coolservlets.forum.database.*,
  13.  com.coolservlets.forum.util.*,
  14.  com.coolservlets.forum.util.admin.*" %>
  15. <jsp:useBean id="adminBean" scope="session"
  16.  class="com.coolservlets.forum.util.admin.AdminBean"/>
  17.  
  18. <% ////////////////////////////////
  19. // Jive authorization check
  20. // check the bean for the existence of an authorization token.
  21. // Its existence proves the user is valid. If it's not found, redirect
  22. // to the login page
  23. Authorization authToken = adminBean.getAuthToken();
  24. if( authToken == null ) {
  25. response.sendRedirect( "/mainctrl/bbs/admin" );
  26. return;
  27. }
  28. %>
  29. <% ////////////////////
  30. // Security check
  31. // make sure the user is authorized to create forums::
  32. ForumFactory forumFactory = ForumFactory.getInstance(authToken);
  33. ForumPermissions permissions = forumFactory.getPermissions(authToken);
  34. boolean isSystemAdmin = permissions.get(ForumPermissions.SYSTEM_ADMIN);
  35. // redirect to error page if we're not a forum admin or a system admin
  36. if( !isSystemAdmin ) {
  37. request.setAttribute("message","没有权限创建论坛");
  38. response.sendRedirect("error.jsp");
  39. return;
  40. }
  41. %>
  42. <% /////////////////
  43. // get parameters
  44. int cacheID = ParamUtils.getIntParameter(request,"cacheID",-1);
  45. boolean doClear = ParamUtils.getBooleanParameter(request,"doClear");
  46. boolean doEdit = ParamUtils.getBooleanParameter(request,"doEdit");
  47. boolean doSave = ParamUtils.getBooleanParameter(request,"doSave");
  48. int maxSize = ParamUtils.getIntParameter(request,"cacheMaxSize",-1);
  49. boolean cacheEnabled = ParamUtils.getBooleanParameter(request,"cacheEnabled");
  50. boolean doCache = ParamUtils.getBooleanParameter(request,"doCache");
  51. DbForumFactory dbForumFactory = null;
  52. try {
  53. dbForumFactory = (DbForumFactory)((ForumFactoryProxy)forumFactory).getUnderlyingForumFactory(); 
  54. } catch (Exception e) { }
  55. DbCacheManager cacheManager = dbForumFactory.getCacheManager();
  56. // clear the requested cache
  57. if( doClear ) {
  58. if( cacheID != -1 ) {
  59. cacheManager.clear(cacheID);
  60. }
  61. }
  62. if( doSave ) {
  63. if( cacheID != -1 ) {
  64. Cache cache = cacheManager.getCache(cacheID);
  65. cache.setMaxSize(maxSize*1024);
  66. }
  67. }
  68. // turn the cache on or off
  69. if( doCache ) {
  70. cacheManager.setCacheEnabled(cacheEnabled);
  71. }
  72. cacheEnabled = cacheManager.isCacheEnabled();
  73. %>
  74. <%!
  75. Runtime runtime = Runtime.getRuntime();
  76. %>
  77. <html>
  78. <head>
  79. <title></title>
  80. <link rel="stylesheet" href="style/global.css">
  81. <script language="JavaScript" type="text/javascript">
  82. function convert(src,dest) {
  83. if( dest.value == "" ) { return; }
  84. var unit = src.options[src.selectedIndex].value;
  85. if( unit == "K" ) {
  86. dest.value = dest.value * 1024;
  87. } else if( unit == "MB" ) {
  88. dest.value = dest.value / 1024;
  89. }
  90. }
  91. </script>
  92. </head>
  93. <body background="images/shadowBack.gif" bgcolor="#ffffff" text="#000000" link="#0000ff" vlink="#800080" alink="#ff0000">
  94. <% ///////////////////////
  95. // pageTitleInfo variable (used by include/pageTitle.jsp)
  96. String[] pageTitleInfo = { "缓存" };
  97. %>
  98. <% ///////////////////
  99. // pageTitle include
  100. %><%@ include file="include/pageTitle.jsp" %>
  101. <p>
  102. <b>缓存列表</b>
  103. <ul>
  104. <%  DecimalFormat formatter = new DecimalFormat("#.00");
  105. %>
  106. <table bgcolor="#999999" cellpadding="0" cellspacing="0" border="0">
  107. <td>
  108. <table cellpadding="4" cellspacing="1" border="0" width="100%">
  109. <tr bgcolor="#eeeeee">
  110. <td class="forumCellHeader" align="center"><b>缓存类型</b></td>
  111. <td class="forumCellHeader" align="center"><b>大小</b></td>
  112. <td class="forumCellHeader" align="center"><b>对象</b></td>
  113. <td class="forumCellHeader" align="center"><b>效果</b></td>
  114. <td class="forumCellHeader" align="center">&nbsp;</td>
  115.     </tr>
  116. <%
  117. Cache cache;
  118. double memUsed, totalMem, freeMem, hitPercent;
  119. long hits, misses;
  120. %>
  121. <tr bgcolor="#ffffff">
  122. <% cache = cacheManager.getCache(DbCacheManager.MESSAGE_CACHE); %>
  123. <td>帖子</td>
  124. <% 
  125. memUsed = (double)cache.getSize()/(1024*1024);
  126. totalMem = (double)cache.getMaxSize()/(1024*1024);
  127. freeMem = 100 - 100*memUsed/totalMem;
  128. %> 
  129. <td><%= formatter.format(totalMem) %> MB,
  130. <%= formatter.format(freeMem)%>%空闲
  131. </td>
  132. <td align=right>&nbsp;<%= cache.getNumElements() %>&nbsp;</td>
  133. <% 
  134. hits = cache.getCacheHits();
  135. misses = cache.getCacheMisses();
  136. if (hits + misses == 0) { hitPercent = 0.0; }
  137. else { hitPercent = 100*(double)hits/(hits+misses); }
  138. %>
  139. <td><%= formatter.format(hitPercent)%>% (<%= hits %>命中,<%= misses %>错失)</td> 
  140. <form action="cache.jsp">
  141. <input type="hidden" name="doEdit" value="true">
  142. <input type="hidden" name="cacheID" value="<%= DbCacheManager.MESSAGE_CACHE %>">
  143. </form>
  144. <form action="cache.jsp">
  145. <input type="hidden" name="doClear" value="true">
  146. <input type="hidden" name="cacheID" value="<%= DbCacheManager.MESSAGE_CACHE %>">
  147. <td><input type="submit" value="清理缓存"></td> 
  148. </form>
  149. </tr>
  150. <% if( doEdit && cacheID==DbCacheManager.MESSAGE_CACHE ) { %>
  151. <tr bgcolor="#ffffff">
  152. <form action="cache.jsp">
  153. <input type="hidden" name="doSave" value="true">
  154. <input type="hidden" name="cacheID" value="<%= DbCacheManager.MESSAGE_CACHE %>">
  155. <td colspan="4">
  156. 设置帖子大小:
  157. <input type="text" value="<%= cache.getMaxSize()/1024 %>" size="6"
  158.  name="cacheMaxSize">K 
  159.  <br>
  160.  1024 K = 1 MB, 2048 K = 2 MB, 3072 K = 3 MB
  161. </td>
  162. <td colspan="2" align="center"><input type="submit" value="保存"></td>
  163. </form>
  164. </tr>
  165. <% } %>
  166. <tr bgcolor="#ffffff">
  167. <form action="cache.jsp">
  168. <input type="hidden" name="doClear" value="true">
  169. <input type="hidden" name="cacheID" value="<%= DbCacheManager.THREAD_CACHE %>">
  170. <% cache = cacheManager.getCache(DbCacheManager.THREAD_CACHE); %>
  171. <td>主题</td>
  172. <% 
  173. memUsed = (double)cache.getSize()/(1024*1024);
  174. totalMem = (double)cache.getMaxSize()/(1024*1024);
  175. freeMem = 100 - 100*memUsed/totalMem;
  176. %> 
  177. <td><%= formatter.format(totalMem) %> MB,
  178. <%= formatter.format(freeMem)%>%空闲
  179. </td>
  180. <td align=right>&nbsp;<%= cache.getNumElements() %>&nbsp;</td>
  181. <% 
  182. hits = cache.getCacheHits();
  183. misses = cache.getCacheMisses();
  184. if (hits + misses == 0) { hitPercent = 0.0; }
  185. else { hitPercent = 100*(double)hits/(hits+misses); }
  186. %>
  187. <td><%= formatter.format(hitPercent)%>% (<%= hits %>命中,<%= misses %>错失)</td> 
  188. <form action="cache.jsp">
  189. <input type="hidden" name="doEdit" value="true">
  190. <input type="hidden" name="cacheID" value="<%= DbCacheManager.THREAD_CACHE %>">
  191. </form>
  192. <form action="cache.jsp">
  193. <input type="hidden" name="doClear" value="true">
  194. <input type="hidden" name="cacheID" value="<%= DbCacheManager.THREAD_CACHE %>">
  195. <td><input type="submit" value="清理缓存"></td> 
  196. </form>
  197. </tr>
  198. <% if( doEdit && cacheID==DbCacheManager.THREAD_CACHE ) { %>
  199. <tr bgcolor="#ffffff">
  200. <form action="cache.jsp">
  201. <input type="hidden" name="doSave" value="true">
  202. <input type="hidden" name="cacheID" value="<%= DbCacheManager.THREAD_CACHE %>">
  203. <td colspan="4">
  204. 设置帖子大小:
  205. <input type="text" value="<%= cache.getMaxSize()/1024 %>" size="6"
  206.  name="cacheMaxSize">K 
  207.  <br>
  208.  1024 K = 1 MB, 2048 K = 2 MB, 3072 K = 3 MB
  209. </td>
  210. <td colspan="2" align="center"><input type="submit" value="保存"></td>
  211. </form>
  212. </tr>
  213. <% } %>
  214. <tr bgcolor="#ffffff">
  215. <form action="cache.jsp">
  216. <input type="hidden" name="doClear" value="true">
  217. <input type="hidden" name="cacheID" value="<%= DbCacheManager.FORUM_CACHE %>">
  218. <% cache = cacheManager.getCache(DbCacheManager.FORUM_CACHE); %>
  219. <td>论坛</td>
  220. <% 
  221. memUsed = (double)cache.getSize()/(1024*1024);
  222. totalMem = (double)cache.getMaxSize()/(1024*1024);
  223. freeMem = 100 - 100*memUsed/totalMem;
  224. %> 
  225. <td><%= formatter.format(totalMem) %> MB,
  226. <%= formatter.format(freeMem)%>%空闲
  227. </td>
  228. <td align=right>&nbsp;<%= cache.getNumElements() %>&nbsp;</td>
  229. <% 
  230. hits = cache.getCacheHits();
  231. misses = cache.getCacheMisses();
  232. if (hits + misses == 0) { hitPercent = 0.0; }
  233. else { hitPercent = 100*(double)hits/(hits+misses); }
  234. %>
  235. <td><%= formatter.format(hitPercent)%>% (<%= hits %>命中,<%= misses %>错失)</td> 
  236. <form action="cache.jsp">
  237. <input type="hidden" name="doEdit" value="true">
  238. <input type="hidden" name="cacheID" value="<%= DbCacheManager.FORUM_CACHE %>">
  239. </form>
  240. <form action="cache.jsp">
  241. <input type="hidden" name="doClear" value="true">
  242. <input type="hidden" name="cacheID" value="<%= DbCacheManager.FORUM_CACHE %>">
  243. <td><input type="submit" value="清理缓存"></td> 
  244. </form>
  245. </tr>
  246. <% if( doEdit && cacheID==DbCacheManager.FORUM_CACHE ) { %>
  247. <tr bgcolor="#ffffff">
  248. <form action="cache.jsp">
  249. <input type="hidden" name="doSave" value="true">
  250. <input type="hidden" name="cacheID" value="<%= DbCacheManager.FORUM_CACHE %>">
  251. <td colspan="4">
  252. 设置帖子大小:
  253. <input type="text" value="<%= cache.getMaxSize()/1024 %>" size="6"
  254.  name="cacheMaxSize">K 
  255.  <br>
  256.  1024 K = 1 MB, 2048 K = 2 MB, 3072 K = 3 MB
  257. </td>
  258. <td colspan="2" align="center"><input type="submit" value="保存"></td>
  259. </form>
  260. </tr>
  261. <% } %>
  262. <tr bgcolor="#ffffff">
  263. <form action="cache.jsp">
  264. <input type="hidden" name="doClear" value="true">
  265. <input type="hidden" name="cacheID" value="<%= DbCacheManager.USER_CACHE %>">
  266. <% cache = cacheManager.getCache(DbCacheManager.USER_CACHE); %>
  267. <td>用户</td>
  268. <% 
  269. memUsed = (double)cache.getSize()/(1024*1024);
  270. totalMem = (double)cache.getMaxSize()/(1024*1024);
  271. freeMem = 100 - 100*memUsed/totalMem;
  272. %> 
  273. <td><%= formatter.format(totalMem) %> MB,
  274. <%= formatter.format(freeMem)%>%空闲
  275. </td>
  276. <td align=right>&nbsp;<%= cache.getNumElements() %>&nbsp;</td>
  277. <% 
  278. hits = cache.getCacheHits();
  279. misses = cache.getCacheMisses();
  280. if (hits + misses == 0) { hitPercent = 0.0; }
  281. else { hitPercent = 100*(double)hits/(hits+misses); }
  282. %>
  283. <td><%= formatter.format(hitPercent)%>% (<%= hits %>命中,<%= misses %>错失)</td> 
  284. <form action="cache.jsp">
  285. <input type="hidden" name="doEdit" value="true">
  286. <input type="hidden" name="cacheID" value="<%= DbCacheManager.USER_CACHE %>">
  287. </form>
  288. <form action="cache.jsp">
  289. <input type="hidden" name="doClear" value="true">
  290. <input type="hidden" name="cacheID" value="<%= DbCacheManager.USER_CACHE %>">
  291. <td><input type="submit" value="清理缓存"></td> 
  292. </form>
  293. </tr>
  294. <% if( doEdit && cacheID==DbCacheManager.USER_CACHE ) { %>
  295. <tr bgcolor="#ffffff">
  296. <form action="cache.jsp">
  297. <input type="hidden" name="doSave" value="true">
  298. <input type="hidden" name="cacheID" value="<%= DbCacheManager.USER_CACHE %>">
  299. <td colspan="4">
  300. 设置帖子大小:
  301. <input type="text" value="<%= cache.getMaxSize()/1024 %>" size="6"
  302.  name="cacheMaxSize">K 
  303.  <br>
  304.  1024 K = 1 MB, 2048 K = 2 MB, 3072 K = 3 MB
  305. </td>
  306. <td colspan="2" align="center"><input type="submit" value="保存"></td>
  307. </form>
  308. </tr>
  309. <% } %>
  310. <tr bgcolor="#ffffff">
  311. <form action="cache.jsp">
  312. <input type="hidden" name="doClear" value="true">
  313. <input type="hidden" name="cacheID" value="<%= DbCacheManager.GROUP_CACHE %>">
  314. <% cache = cacheManager.getCache(DbCacheManager.GROUP_CACHE); %>
  315. <td>用户组</td>
  316. <% 
  317. memUsed = (double)cache.getSize()/(1024*1024);
  318. totalMem = (double)cache.getMaxSize()/(1024*1024);
  319. freeMem = 100 - 100*memUsed/totalMem;
  320. %> 
  321. <td><%= formatter.format(totalMem) %> MB,
  322. <%= formatter.format(freeMem)%>%空闲
  323. </td>
  324. <td align=right>&nbsp;<%= cache.getNumElements() %>&nbsp;</td>
  325. <% 
  326. hits = cache.getCacheHits();
  327. misses = cache.getCacheMisses();
  328. if (hits + misses == 0) { hitPercent = 0.0; }
  329. else { hitPercent = 100*(double)hits/(hits+misses); }
  330. %>
  331. <td><%= formatter.format(hitPercent)%>% (<%= hits %>命中,<%= misses %>错失)</td> 
  332. <form action="cache.jsp">
  333. <input type="hidden" name="doEdit" value="true">
  334. <input type="hidden" name="cacheID" value="<%= DbCacheManager.GROUP_CACHE %>">
  335. </form>
  336. <form action="cache.jsp">
  337. <input type="hidden" name="doClear" value="true">
  338. <input type="hidden" name="cacheID" value="<%= DbCacheManager.GROUP_CACHE %>">
  339. <td><input type="submit" value="清理缓存"></td> 
  340. </form>
  341. </tr>
  342. <% if( doEdit && cacheID==DbCacheManager.GROUP_CACHE ) { %>
  343. <tr bgcolor="#ffffff">
  344. <form action="cache.jsp">
  345. <input type="hidden" name="doSave" value="true">
  346. <input type="hidden" name="cacheID" value="<%= DbCacheManager.GROUP_CACHE %>">
  347. <td colspan="4">
  348. 设置帖子大小:
  349. <input type="text" value="<%= cache.getMaxSize()/1024 %>" size="6"
  350.  name="cacheMaxSize">K 
  351.  <br>
  352.  1024 K = 1 MB, 2048 K = 2 MB, 3072 K = 3 MB
  353. </td>
  354. <td colspan="2" align="center"><input type="submit" value="保存"></td>
  355. </form>
  356. </tr>
  357. <% } %>
  358. </table>
  359. </td>
  360. </table>
  361. </ul>
  362. <p>
  363. <b>Java虚拟机内存</b>
  364. <ul>
  365.   <%   
  366. double freeMemory = (double)runtime.freeMemory()/(1024*1024);
  367. double totalMemory = (double)runtime.totalMemory()/(1024*1024);
  368. double usedMemory = totalMemory - freeMemory;
  369. double percentFree = ((double)freeMemory/(double)totalMemory)*100.0;
  370. %>
  371. <table border=0>
  372. <tr><td>使用的内存:</td><td><%= formatter.format(usedMemory) %> MB</td></tr>
  373. <tr><td>内存总额:</td><td><%= formatter.format(totalMemory) %> MB</td></tr>
  374. </table>
  375. <br>
  376. <!--
  377. <table bgcolor="#000000" cellpadding="1" cellspacing="0" border="0" width="300">
  378. <td>
  379. <table bgcolor="#ffffff" cellpadding="0" cellspacing="0" border="0" width="100%">
  380. <td width="<%= percentFree %>%" background="images/cache.gif"><img src="images/blank.gif" width="<%= percentFree %>" height="20" border="0"></td>
  381. <td width="<%= 100-percentFree %>%"></td>
  382. </table>
  383. </td>
  384. </table>
  385. <b><%= formatter.format(percentFree) %>% free</b>
  386. <p>
  387. -->
  388. <% int free = 100-(int)Math.round(percentFree); %>
  389. <% int tableWidth = 200; %>
  390. <% int numBlocks = 50; %>
  391. <table border=0><td>
  392. <table bgcolor="#000000" cellpadding="1" cellspacing="0" border="0" width="<%= tableWidth %>" align=left>
  393. <td>
  394. <table bgcolor="#000000" cellpadding="1" cellspacing="1" border="0" width="100%">
  395. <% for( int i=0; i<numBlocks; i++ ) { %>
  396. <% if( (i*(100/numBlocks)) < free ) { %>
  397. <td bgcolor="#00ff00" width="<%= (100/numBlocks) %>%"><img src="blank.gif" width="1" height="15" border="0"></td>
  398. <% } else { %>
  399. <td bgcolor="#006600" width="<%= (100/numBlocks) %>%"><img src="blank.gif" width="1" height="15" border="0"></td>
  400. <% } %>
  401. <% } %>
  402. </table>
  403. </td>
  404. </table></td><td> &nbsp;<b><%= formatter.format(percentFree) %>% 空闲</b> </td></table>
  405. </ul>
  406. <p>
  407. <b>缓存状态</b>
  408. <ul>
  409. <form action="cache.jsp">
  410. <input type="hidden" name="doCache" value="true">
  411. <table bgcolor="#666666" cellpadding="0" cellspacing="0" border="0" width="300">
  412. <td>
  413. <table bgcolor="#666666" cellpadding="3" cellspacing="1" border="0" width="100%">
  414. <tr bgcolor="#ffffff">
  415. <td align="center"<%= (cacheEnabled)?" bgcolor="#99cc99"":"" %>>
  416. <input type="radio" name="cacheEnabled" value="true" id="rb01"
  417.  <%= (cacheEnabled)?"checked":"" %>>
  418. <label for="rb01"><%= (cacheEnabled)?"<b>开</b>":"开" %></label>
  419. </td>
  420. <td align="center"<%= (!cacheEnabled)?" bgcolor="#cc6666"":"" %>>
  421. <input type="radio" name="cacheEnabled" value="false" id="rb02"
  422.  <%= (!cacheEnabled)?"checked":"" %>>
  423. <label for="rb02"><%= (!cacheEnabled)?"<b>关</b>":"关" %></label>
  424. </td>
  425. <td align="center">
  426. <input type="submit" value="修改">
  427. </td>
  428. </tr>
  429. </table>
  430. </td>
  431. </table>
  432. </ul>
  433. </body>
  434. </html>