处理中文乱码 并 写入cookie中


/**
* cookie写入....常用链接
* 写cookie 模式:(language)en_US_menu=url,url,url....
* @return String
**/
public String writeLinks(){
//获取语言 没有 就从cookie中读取
if(null==locale_language||"".equals(locale_language)){
locale_language=getLanguage();
}
String key=locale_language+"_menu";
HttpServletResponse response=ServletActionContext.getResponse();
Cookie cookie=null;
try {
links=new String(links.getBytes("iso-8859-1"), "utf-8");
cookie=new Cookie(key,URLEncoder.encode(links, "utf-8"));
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

//设置cookie的有效日期 以秒为单位
cookie.setMaxAge(365*24*60*60);
response.addCookie(cookie);
return readLinks();
}
/**
* cookie读取....常用链接
* 读cookie 通过 key:(language)en_US_menu=value:noteName_/wmba/user/user_doCreate.action
* @return String
* **/
public String readLinks(){
//获取语言 没有 就从cookie中读取
if(null==locale_language||"".equals(locale_language)){
locale_language=getLanguage();
}
//根据语言拼凑cookie中菜单的key
String key=locale_language+"_menu";
HttpServletRequest request=ServletActionContext.getRequest();
//修改常用链接 时 传递了常用链接
if(null==links||"".equals(links)){
//获得客户端所有的cookie信息
Cookie[] cookies=request.getCookies();
//循环遍历所有的cookie 找到 根据key对应的cookie
for(Cookie ck : cookies){
if(ck.getName().equals(key)&&null!=ck.getValue()&&!"".equals(ck.getValue())){

try {
links=URLDecoder.decode(ck.getValue(), "UTF-8");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
}
}
//list 保存常用连接
linkList=new ArrayList<EsbAdminMenuInfo>();
//从cookie中找到对应的常用链接 否则去数据库中的链接
if(links != null &&!"".equals(links)){
String[] array_links=links.split(",");
for(String link : array_links){
EsbAdminMenuInfo menu=new EsbAdminMenuInfo();
menu.setNoteName(link.substring(0,link.indexOf("_")));
menu.setUrl(link.substring(link.indexOf("_")+1));
linkList.add(menu);
}
}else{
//从配置文件中加载而来
int linkCount=Integer.valueOf(ServletActionContext.getContext().getApplication().get("linkCount").toString());
//设置查询条件
EsbAdminUserInfo userInfo=(EsbAdminUserInfo)ServletActionContext.getRequest().getSession().getAttribute("user");

//得到所有的菜单
List<EsbAdminMenuInfo> menusAll=this.loadingMenu(userInfo);
//过滤 linkCount个 并 只要有url的菜单
for(int i=0;i<menusAll.size();i++){
if(menusAll.get(i).getUrl()!=null&&!("".equals(menusAll.get(i).getUrl()))){
if(linkList.size()<linkCount){
linkList.add(menusAll.get(i));
}
}
}
}
return "index";
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值