| 1 | <?xml version="1.0" encoding="ISO-8859-1"?> | 
|---|
| 2 | <!-- | 
|---|
| 3 |  Licensed to the Apache Software Foundation (ASF) under one or more | 
|---|
| 4 |   contributor license agreements.  See the NOTICE file distributed with | 
|---|
| 5 |   this work for additional information regarding copyright ownership. | 
|---|
| 6 |   The ASF licenses this file to You under the Apache License, Version 2.0 | 
|---|
| 7 |   (the "License"); you may not use this file except in compliance with | 
|---|
| 8 |   the License.  You may obtain a copy of the License at | 
|---|
| 9 |  | 
|---|
| 10 |       http://www.apache.org/licenses/LICENSE-2.0 | 
|---|
| 11 |  | 
|---|
| 12 |   Unless required by applicable law or agreed to in writing, software | 
|---|
| 13 |   distributed under the License is distributed on an "AS IS" BASIS, | 
|---|
| 14 |   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | 
|---|
| 15 |   See the License for the specific language governing permissions and | 
|---|
| 16 |   limitations under the License. | 
|---|
| 17 | --> | 
|---|
| 18 | <%@page session="false" contentType="text/html; charset=ISO-8859-1" %> | 
|---|
| 19 | <%@page import="java.util.Collection" %> | 
|---|
| 20 | <%@page import="java.util.Iterator" %> | 
|---|
| 21 | <%@page import="org.apache.catalina.manager.JspHelper" %> | 
|---|
| 22 | <%@page import="org.apache.catalina.Session" %> | 
|---|
| 23 | <!DOCTYPE html  | 
|---|
| 24 |      PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" | 
|---|
| 25 |      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | 
|---|
| 26 |  | 
|---|
| 27 | <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> | 
|---|
| 28 | <% String path = (String) request.getAttribute("path"); | 
|---|
| 29 |    String submitUrl = ((HttpServletRequest)pageContext.getRequest()).getRequestURL().append("?path=").append(path).toString(); | 
|---|
| 30 |    Collection activeSessions = (Collection) request.getAttribute("activeSessions"); | 
|---|
| 31 | %> | 
|---|
| 32 | <head> | 
|---|
| 33 |     <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/> | 
|---|
| 34 |   <meta http-equiv="pragma" content="no-cache"/><!-- HTTP 1.0 --> | 
|---|
| 35 |   <meta http-equiv="cache-control" content="no-cache,must-revalidate"/><!-- HTTP 1.1 --> | 
|---|
| 36 |   <meta http-equiv="expires" content="0"/><!-- 0 is an invalid value and should be treated as 'now' --> | 
|---|
| 37 |   <meta http-equiv="content-language" content="en"/> | 
|---|
| 38 |   <meta name="author" content="Cedrik LIME"/> | 
|---|
| 39 |   <meta name="copyright" content="copyright 2005-2007 the Apache Software Foundation"/> | 
|---|
| 40 |   <meta name="robots" content="noindex,nofollow,noarchive"/> | 
|---|
| 41 |   <title>Sessions Administration for <%= path %></title> | 
|---|
| 42 | </head> | 
|---|
| 43 | <body> | 
|---|
| 44 | <h1>Sessions Administration for <%= path %></h1> | 
|---|
| 45 |  | 
|---|
| 46 | <p>Tips:</p> | 
|---|
| 47 | <ul> | 
|---|
| 48 |   <li>Click on a column to sort.</li> | 
|---|
| 49 |   <li>To view a session details and/or remove a session attributes, click on its id.</li> | 
|---|
| 50 | </ul> | 
|---|
| 51 |  | 
|---|
| 52 | <div class="error"><%= JspHelper.escapeXml(request.getAttribute("error")) %></div> | 
|---|
| 53 | <div class="message"><%= JspHelper.escapeXml(request.getAttribute("message")) %></div> | 
|---|
| 54 |  | 
|---|
| 55 | <form action="<%= submitUrl %>" method="post" id="sessionsForm"> | 
|---|
| 56 |   <fieldset><legend>Active HttpSessions informations</legend> | 
|---|
| 57 |     <input type="hidden" name="action" id="sessionsFormAction" value="injectSessions"/> | 
|---|
| 58 |     <input type="hidden" name="sort" id="sessionsFormSort" value="<%= (String) request.getAttribute("sort") %>"/> | 
|---|
| 59 |     <% String order = (String) request.getAttribute("order"); | 
|---|
| 60 |        if (order == null || "".equals(order)) { | 
|---|
| 61 |         order = "ASC"; | 
|---|
| 62 |        } | 
|---|
| 63 |     %> | 
|---|
| 64 |     <input type="hidden" name="order" id="sessionsFormSortOrder" value="<%= order %>"/> | 
|---|
| 65 |     <input type="submit" name="refresh" id="refreshButton" value="Refresh Sessions list" onclick="document.getElementById('sessionsFormAction').value='refreshSessions'; return true;"/> | 
|---|
| 66 |     <%= JspHelper.formatNumber(activeSessions.size()) %> active Sessions<br/> | 
|---|
| 67 |     <table border="1" cellpadding="2" cellspacing="2" width="100%"> | 
|---|
| 68 |       <thead> | 
|---|
| 69 |         <tr> | 
|---|
| 70 |           <th><a onclick="document.getElementById('sessionsFormSort').value='id'; document.getElementById('refreshButton').click(); return true;">Session Id</a></th> | 
|---|
| 71 |           <th><a onclick="document.getElementById('sessionsFormSort').value='locale'; document.getElementById('refreshButton').click(); return true;">Guessed Locale</a></th> | 
|---|
| 72 |           <th><a onclick="document.getElementById('sessionsFormSort').value='user'; document.getElementById('refreshButton').click(); return true;">Guessed User name</a></th> | 
|---|
| 73 |           <th><a onclick="document.getElementById('sessionsFormSort').value='CreationTime'; document.getElementById('refreshButton').click(); return true;">Creation Time</a></th> | 
|---|
| 74 |           <th><a onclick="document.getElementById('sessionsFormSort').value='LastAccessedTime'; document.getElementById('refreshButton').click(); return true;">Last Accessed Time</a></th> | 
|---|
| 75 |           <th><a onclick="document.getElementById('sessionsFormSort').value='UsedTime'; document.getElementById('refreshButton').click(); return true;">Used Time</a></th> | 
|---|
| 76 |           <th><a onclick="document.getElementById('sessionsFormSort').value='InactiveTime'; document.getElementById('refreshButton').click(); return true;">Inactive Time</a></th> | 
|---|
| 77 |           <th><a onclick="document.getElementById('sessionsFormSort').value='TTL'; document.getElementById('refreshButton').click(); return true;"><span title="Time To Live">TTL</span></a></th> | 
|---|
| 78 |         </tr> | 
|---|
| 79 |       </thead> | 
|---|
| 80 |       <% if (activeSessions.size() > 10) { %> | 
|---|
| 81 |       <tfoot><%-- <tfoot> is the same as <thead> --%> | 
|---|
| 82 |         <tr> | 
|---|
| 83 |           <th><a onclick="document.getElementById('sessionsFormSort').value='id'; document.getElementById('refreshButton').click(); return true;">Session Id</a></th> | 
|---|
| 84 |           <th><a onclick="document.getElementById('sessionsFormSort').value='locale'; document.getElementById('refreshButton').click(); return true;">Guessed Locale</a></th> | 
|---|
| 85 |           <th><a onclick="document.getElementById('sessionsFormSort').value='user'; document.getElementById('refreshButton').click(); return true;">Guessed User name</a></th> | 
|---|
| 86 |           <th><a onclick="document.getElementById('sessionsFormSort').value='CreationTime'; document.getElementById('refreshButton').click(); return true;">Creation Time</a></th> | 
|---|
| 87 |           <th><a onclick="document.getElementById('sessionsFormSort').value='LastAccessedTime'; document.getElementById('refreshButton').click(); return true;">Last Accessed Time</a></th> | 
|---|
| 88 |           <th><a onclick="document.getElementById('sessionsFormSort').value='UsedTime'; document.getElementById('refreshButton').click(); return true;">Used Time</a></th> | 
|---|
| 89 |           <th><a onclick="document.getElementById('sessionsFormSort').value='InactiveTime'; document.getElementById('refreshButton').click(); return true;">Inactive Time</a></th> | 
|---|
| 90 |           <th><a onclick="document.getElementById('sessionsFormSort').value='TTL'; document.getElementById('refreshButton').click(); return true;"><span title="Time To Live">TTL</span></a></th> | 
|---|
| 91 |         </tr> | 
|---|
| 92 |       </tfoot> | 
|---|
| 93 |       <% } // end if %> | 
|---|
| 94 |       <tbody> | 
|---|
| 95 | <% Iterator iter = activeSessions.iterator(); | 
|---|
| 96 |    while (iter.hasNext()) { | 
|---|
| 97 |     Session currentSession = (Session) iter.next(); | 
|---|
| 98 |     String currentSessionId = currentSession.getId(); | 
|---|
| 99 | %> | 
|---|
| 100 |         <tr> | 
|---|
| 101 |           <td> | 
|---|
| 102 | <input type="checkbox" name="sessionIds" value="<%= currentSessionId %>" /><a href="<%= submitUrl %>&action=sessionDetail&sessionId=<%= currentSessionId %>" target="_new"><%= JspHelper.escapeXml(currentSessionId) %></a> | 
|---|
| 103 |           </td> | 
|---|
| 104 |           <td style="text-align: center;"><%= JspHelper.guessDisplayLocaleFromSession(currentSession) %></td> | 
|---|
| 105 |           <td style="text-align: center;"><%= JspHelper.guessDisplayUserFromSession(currentSession) %></td> | 
|---|
| 106 |           <td style="text-align: center;"><%= JspHelper.getDisplayCreationTimeForSession(currentSession) %></td> | 
|---|
| 107 |           <td style="text-align: center;"><%= JspHelper.getDisplayLastAccessedTimeForSession(currentSession) %></td> | 
|---|
| 108 |           <td style="text-align: center;"><%= JspHelper.getDisplayUsedTimeForSession(currentSession) %></td> | 
|---|
| 109 |           <td style="text-align: center;"><%= JspHelper.getDisplayInactiveTimeForSession(currentSession) %></td> | 
|---|
| 110 |           <td style="text-align: center;"><%= JspHelper.getDisplayTTLForSession(currentSession) %></td> | 
|---|
| 111 |         </tr> | 
|---|
| 112 | <% } // end while %> | 
|---|
| 113 |       </tbody> | 
|---|
| 114 |     </table> | 
|---|
| 115 |     <p style="text-align: center;"> | 
|---|
| 116 |       <input type="submit" name="invalidate" value="Invalidate selected Sessions" onclick="document.getElementById('sessionsFormAction').value='invalidateSessions'; return true;"/> | 
|---|
| 117 |     </p> | 
|---|
| 118 |   </fieldset> | 
|---|
| 119 | </form> | 
|---|
| 120 |  | 
|---|
| 121 | <p style="text-align: center;"><button type="button" onclick="window.close()">Close window</button></p> | 
|---|
| 122 |  | 
|---|
| 123 | <%--div style="display: none;"> | 
|---|
| 124 | <p> | 
|---|
| 125 |   <a href="http://validator.w3.org/check?uri=referer"><img | 
|---|
| 126 |     src="http://www.w3.org/Icons/valid-html401" | 
|---|
| 127 |     alt="Valid HTML 4.01!" height="31" width="88"></a> | 
|---|
| 128 |   <a href="http://validator.w3.org/check?uri=referer"><img | 
|---|
| 129 |     src="http://www.w3.org/Icons/valid-xhtml10" | 
|---|
| 130 |     alt="Valid XHTML 1.0!" height="31" width="88" /></a> | 
|---|
| 131 |   <a href="http://validator.w3.org/check?uri=referer"><img | 
|---|
| 132 |     src="http://www.w3.org/Icons/valid-xhtml11" | 
|---|
| 133 |     alt="Valid XHTML 1.1!" height="31" width="88" /></a> | 
|---|
| 134 | </p> | 
|---|
| 135 | </div--%> | 
|---|
| 136 |  | 
|---|
| 137 | </body> | 
|---|
| 138 | </html> | 
|---|