📄 oscacheservlet.java
字号:
/*
* Copyright (c) 2002-2003 by OpenSymphony
* All rights reserved.
*/
package com.opensymphony.oscache.web;
import com.opensymphony.oscache.base.NeedsRefreshException;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.jsp.PageContext;
/**
* Servlet used to test the web portion of osCache. It performs the operations
* received by parameter
*
* $Id: OscacheServlet.java 42 2003-07-17 20:28:07Z chris_miller $
* @version $Revision: 42 $
* @author <a href="mailto:fbeauregard@pyxis-tech.com">Francois Beauregard</a>
* @author <a href="mailto:abergevin@pyxis-tech.com">Alain Bergevin</a>
*/
public class OscacheServlet extends HttpServlet {
/** Output content type */
private static final String CONTENT_TYPE = "text/html";
/** Clean up resources */
public void destroy() {
}
/**
* Process the HTTP Get request
* <p>
* @param request The HTTP request
* @param response The servlet response
* @throws ServletException
* @throws IOException
*/
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
boolean varForceRefresh = false;
int refreshPeriod = 0;
int scope = PageContext.APPLICATION_SCOPE;
String forceCacheUse = null;
String key = null;
// Cache item
Long item;
// Get the admin
ServletCacheAdministrator admin = ServletCacheAdministrator.getInstance(getServletContext());
// Translate parameters
try {
String paramValue = request.getParameter("forceRefresh");
if ((paramValue != null) && (paramValue.length() > 0)) {
varForceRefresh = Boolean.valueOf(paramValue).booleanValue();
}
paramValue = request.getParameter("scope");
if ((paramValue != null) && (paramValue.length() > 0)) {
scope = getScope(paramValue);
}
paramValue = request.getParameter("refreshPeriod");
if ((paramValue != null) && (paramValue.length() > 0)) {
refreshPeriod = Integer.valueOf(paramValue).intValue();
}
forceCacheUse = request.getParameter("forcecacheuse");
key = request.getParameter("key");
} catch (Exception e) {
getServletContext().log("Error while retrieving the servlet parameters: " + e.toString());
}
// Check if all the items should be flushed
if (varForceRefresh) {
admin.flushAll();
}
try {
// Get the data from the cache
item = (Long) admin.getFromCache(scope, request, key, refreshPeriod);
} catch (NeedsRefreshException nre) {
// Check if we want to force the use of an item already in cache
if ("yes".equals(forceCacheUse)) {
admin.cancelUpdate(scope, request, key);
item = (Long) nre.getCacheContent();
} else {
item = new Long(System.currentTimeMillis());
admin.putInCache(scope, request, key, item);
}
}
// Generate the output
response.setContentType(CONTENT_TYPE);
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head><title>OscacheServlet</title></head>");
out.println("<body>");
out.println("<b>This is some cache content </b>: " + item.toString() + "<br>");
out.println("<b>Cache key</b>: " + admin.getCacheKey() + "<br>");
out.println("<b>Entry key</b>: " + admin.generateEntryKey("Test_key", request, scope) + "<br>");
out.println("</body></html>");
}
/**Initialize global variables*/
public void init(ServletConfig config) throws ServletException {
super.init(config);
}
/**
* Return the scope number corresponding to it's string name
*/
private int getScope(String value) {
if ((value != null) && (value.equalsIgnoreCase("session"))) {
return PageContext.SESSION_SCOPE;
} else {
return PageContext.APPLICATION_SCOPE;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -