TA的每日心情 | 开心 2021-3-12 23:18 |
---|
签到天数: 2 天 [LV.1]初来乍到
|
首先,来看看LRU的定义: Least recently used. 可以理解为, 最少使用的被淘汰。在网上发现了这个LRUCache 类及文章
《基于双链表实现缓存策略之LRU实现》,正好站内有一个搜索
《ACM AND java》http://www.java3z.com/cwbwebhome/acm.jsp
需要缓存,应用了一把,这样就不需要每次搜索POJID都查询数据库。先凑合着用了。
有些不满意之处,主要是缓存大小不好确定,暂定为1000, 以后题目多了,要重新编译源文件。(缓存大小最好写在一个配置
文件中)
最后看一下JSP文件:POJsearch.jsp,从提交页面获取POJID,从缓存中取数据。
<%@ page import="com.db.LRUCache" %>
<%@ page import="java.util.regex.Matcher" %>
<%@ page import="java.util.regex.Pattern" %>
<%@ page import="com.db.LRUCache" %> <%- String s=request.getParameter("s");
- String toPage="nothing.jsp";
- String pattern = "\d{1,5}";
-
- out.println(s);
-
- if(s==null||s.length()==0) {
- toPage="nothing.jsp";
- }else {
- Pattern p = Pattern.compile(pattern);
- Matcher m = p.matcher(s);
- boolean b = m.matches();
- out.println(b);
- if(!b){
- toPage="nothing.jsp";
- }else{
-
- LRUCache cache=LRUCache.getInstance();
- String f_name=(String)cache.get(s);
- if(f_name!=null)
-
- toPage=f_name;
- else
- toPage="nothing.jsp";
- }
- }
-
- response.sendRedirect(toPage);
复制代码 %> |
|