❶ 如何安全的更新java本地緩存
java安全的更新本地緩存的方式如下:
當外部請求訪問緩存數據時:如果緩存已經過期(當前時間-緩存的上次更新時間超過緩存的有效期),則重新調用webservice訪問服務端查詢數據,然後更新緩存。如果緩存未過期,但緩存為空,則重新調用webservice訪問服務端查詢數據,然後更新緩存。
/** 本地緩存 */
private List<InterfaceConfig> configs = null;
/** 本地緩存的上次更新時間 */
private long lastUpdateTime = 0;
public List<InterfaceConfig> queryInterfaceList() {
long currentTime = System.currentTimeMillis();
//判斷本次緩存是否過期,過期則重新調用webservice查詢數據,並更新緩存
if (currentTime - lastUpdateTime > 60000) {
InterfaceManageResult result = interfaceManageFacade.queryAllInterfaceList();
if (null != result && result.isSuccess()) {
configs = result.getInterfaceConfigList();
}
lastUpdateTime = currentTime;
}
if (!CollectionUtils.isEmpty(configs)) {
return configs;
}
//本地緩存為空,則重新調用webservice查詢數據,並更新緩存
InterfaceManageResult result = interfaceManageFacade.queryAllInterfaceList();
if (null == result || !result.isSuccess()) {
return null;
}
configs = result.getInterfaceConfigList();
return configs;
}
❷ java 本地數據存儲問題
這好辦啊
寫一個類實現序列化(序列化可以在IO流中傳輸 即implements Serializable )
加上map屬性用來存你要的數據
寫一些獲得map中的數據方法
我寫一個存取數據的方法:
importjava.io.File;
importjava.io.FileInputStream;
importjava.io.FileOutputStream;
importjava.io.ObjectInputStream;
importjava.io.ObjectOutputStream;
importjava.io.Serializable;
publicclassTestAa{
publicstaticvoidmain(String[]args)throwsException{
//存數據:
TestObjecta=newTestObject();
a.setAa("隨便存一個值");
Filefile=newFile("D:\data.dat");
ObjectOutputStreamout=newObjectOutputStream(newFileOutputStream(file));
out.writeObject(a);
//取數據:
ObjectInputStreamin=newObjectInputStream(newFileInputStream(file));
TestObjectb=(TestObject)in.readObject();
System.out.println(b.getAa());
}
}
{
privateStringaa;
publicStringgetAa(){
returnaa;
}
publicvoidsetAa(Stringaa){
this.aa=aa;
}
}
❸ java有哪些本地存儲數據的方式
寫本地文件 、本地資料庫、…………
~
❹ java後台能獲取html5本地存儲嗎
HTML5本地存儲
HTML5中的 Web Storage 包括兩種存儲方式: sessionStorage 和 localStorage 本地離線存儲,同域下只能存儲 5M 的空間;IE6.7中可以用 UserData 來實現
sessionStorage 用於本地存儲一個會話(session)中的數據,這些數據只有在同個會話中的頁面才能訪問並且當會話結束後數據也隨之銷毀,因此 seesionStorage 不是一種持久化的本地存儲,僅僅是會話級別的存儲;
localStorage,用於持久化存儲本地數據,如果不手動刪除則會一直存在,就算把瀏覽器關了,清了瀏覽器緩存,關機等十天半個月再開,一樣的存在;但是,它只是存在同一個域名下;
❺ java網站開發怎麼實現用戶賬號信息本地保存
看看這個吧!主要是對cookie的操作
package cn.itcast.util;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import cn.itcast.bean.User;
import cn.itcast..UserDAO;
import cn.itcast.factory.DaoImplFactory;
import com.sun.org.apache.xerces.internal.impl.dv.util.Base64;
/*
* 2007.09.21 by lyhapple
* */
public class CookieUtil {
//保存cookie時的cookieName
private final static String cookieDomainName = 「cn.itcast」;
//加密cookie時的網站自定碼
private final static String webKey = 「itcast」;
//設置cookie有效期是兩個星期,根據需要自定義
private final static long cookieMaxAge = 60 * 60 * 24 * 7 * 2;
//保存Cookie到客戶端--------------------------------------------------------------------------------------------------------
//在CheckLogonServlet.java中被調用
//傳遞進來的user對象中封裝了在登陸時填寫的用戶名與密碼
public static void saveCookie(User user, HttpServletResponse response) {
//cookie的有效期
long validTime = System.currentTimeMillis() + (cookieMaxAge * 1000);
//MD5加密用戶詳細信息
String cookieValueWithMd5 =getMD5(user.getUserName() + ":" + user.getPassword()
+ ":" + validTime + ":" + webKey);
//將要被保存的完整的Cookie值
String cookieValue = user.getUserName() + ":" + validTime + ":" + cookieValueWithMd5;
//再一次對Cookie的值進行BASE64編碼
String cookieValueBase64 = new String(Base64.encode(cookieValue.getBytes()));
//開始保存Cookie
Cookie cookie = new Cookie(cookieDomainName, cookieValueBase64);
//存兩年(這個值應該大於或等於validTime)
cookie.setMaxAge(60 * 60 * 24 * 365 * 2);
//cookie有效路徑是網站根目錄
cookie.setPath("/");
//向客戶端寫入
response.addCookie(cookie);
}
//讀取Cookie,自動完成登陸操作--------------------------------------------------------------------------------------------
//在Filter程序中調用該方法,見AutoLogonFilter.java
public static void readCookieAndLogon(HttpServletRequest request, HttpServletResponse response,
FilterChain chain) throws IOException, ServletException,UnsupportedEncodingException{
//根據cookieName取cookieValue
Cookie cookies[] = request.getCookies();
String cookieValue = null;
if(cookies!=null){
for(int i=0;i
if (cookieDomainName.equals(cookies[i].getName())) {
cookieValue = cookies[i].getValue();
break;
}
}
}
//如果cookieValue為空,返回,
if(cookieValue==null){
return;
}
//如果cookieValue不為空,才執行下面的代碼
//先得到的CookieValue進行Base64解碼
String cookieValueAfterDecode = new String (Base64.decode(cookieValue),"utf-8");
//對解碼後的值進行分拆,得到一個數組,如果數組長度不為3,就是非法登陸
String cookieValues[] = cookieValueAfterDecode.split(":");
if(cookieValues.length!=3){
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
out.println("你正在用非正常方式進入本站...");
out.close();
return;
}
//判斷是否在有效期內,過期就刪除Cookie
long validTimeInCookie = new Long(cookieValues[1]);
if(validTimeInCookie < System.currentTimeMillis()){
//刪除Cookie
clearCookie(response);
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
out.println("");你的Cookie已經失效,請重新登陸
out.close();
return;
}
//取出cookie中的用戶名,並到資料庫中檢查這個用戶名,
String username = cookieValues[0];
//根據用戶名到資料庫中檢查用戶是否存在
UserDAO ud = DaoImplFactory.getInstance();
User user = ud.selectUserByUsername(username);
//如果user返回不為空,就取出密碼,使用用戶名+密碼+有效時間+ webSiteKey進行MD5加密
if(user!=null){
String md5ValueInCookie = cookieValues[2];
String md5ValueFromUser =getMD5(user.getUserName() + ":" + user.getPassword()
+ ":" + validTimeInCookie + ":" + webKey);
//將結果與Cookie中的MD5碼相比較,如果相同,寫入Session,自動登陸成功,並繼續用戶請求
if(md5ValueFromUser.equals(md5ValueInCookie)){
HttpSession session = request.getSession(true);
session.setAttribute("user", user);
chain.doFilter(request, response);
}
}else{
//返回為空執行
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
out.println("cookie驗證錯誤!");
out.close();
return;
}
}
//用戶注銷時,清除Cookie,在需要時可隨時調用------------------------------------------------------------
public static void clearCookie( HttpServletResponse response){
Cookie cookie = new Cookie(cookieDomainName, null);
cookie.setMaxAge(0);
cookie.setPath("/");
response.addCookie(cookie);
}
//獲取Cookie組合字元串的MD5碼的字元串----------------------------------------------------------------------------
public static String getMD5(String value) {
String result = null;
try{
byte[] valueByte = value.getBytes();
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(valueByte);
result = toHex(md.digest());
} catch (NoSuchAlgorithmException e2){
e1.printStackTrace();
}
return result;
}
//將傳遞進來的位元組數組轉換成十六進制的字元串形式並返回
private static String toHex(byte[] buffer){
StringBuffer sb = new StringBuffer(buffer.length * 2);
for (int i = 0; i < buffer.length; i++){
sb.append(Character.forDigit((buffer[i] & 0xf0) >> 4, 16));
sb.append(Character.forDigit(buffer[i] & 0x0f, 16));
}
return sb.toString();
}
}
❻ java web start 在本地的存儲位置
你如果原來是在IE上打開的,
那麼他下載後,就存在IE的臨時文件夾了,
後綴是 .jnlp的文件就是了。
IE的臨時文件夾的默認位置是:
C:\Documents and Settings\用戶名\Local Settings\Temporary Internet Files
要運行他的話,最好把它復制到另一個目錄下,然後雙擊運行即可。
❼ 如何把java項目文件夾放到自己的文件夾中
第一步:直接先創建一個java項目;
第二步:將文件夾復制到java項目本地存儲路徑相應的src文件夾下。
第三步:刷新eclipse中的java項目,即可完成」導入「操作,否則不是java項目的話,是沒法導入的。
❽ java 怎麼存儲一本圖書的的信息在本地文件上 (最好不用資料庫)
那你就建立一個文件存取所有圖書的信息唄,每行存一本書的信息,自己搞清楚是怎麼存的,然後讀出來就行唄,每次都在文件最後添加
❾ java後台能獲取html5本地存儲嗎
HTML5本地存儲
HTML5中的 Web Storage 包括兩種存儲方式: sessionStorage 和 localStorage 本地離線存儲,同域下只能存儲 5M 的空間;IE6.7中可以用 UserData 來實現
sessionStorage 用於本地存儲一個會話(session)中的數據,這些數據只有在同個會話中的頁面才能訪問並且當會話結束後數據也隨之銷毀,因此 seesionStorage 不是一種持久化的本地存儲,僅僅是會話級別的存儲;
localStorage,用於持久化存儲本地數據,如果不手動刪除則會一直存在,就算把瀏覽器關了,清了瀏覽器緩存,關機等十天半個月再開,一樣的存在;但是,它只是存在同