/**
* 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";
分享到:
相关推荐
.NET中文乱码的解决方法分享 .NET中文乱码的解决方法是ASP.NET...同时,本文还提供了一些其他相关的解决方案,例如解决ASP.NET中的各种乱码问题、ASP.NET Core中的中文乱码问题、ASP.NET Cookie中的中文乱码问题等等。
然而,在Java Web开发中处理中文字符时,编码不一致常会导致乱码问题。 字符编码转换在Java Web应用开发中是不可或缺的一个过程。计算机只能识别二进制数,而字母、数字、汉字等通过字符编码转换成二进制形式存储。...
在`Set_Cookie`函数中,`escape()`函数用于对中文字符进行编码,以便将中文字符安全地写入cookie。随后,在读取cookie时,通过`decodeURI()`解码,从而还原成正确的中文字符。 总结来说,处理JavaScript中的中文...
在Cookie的使用中,我们发现这样一个问题:如果写入Cookie的内容是中文(如用户称呼),用服务器端程序(如ASP或PHP)读出完全正确,但是用一般的javascript或VBScript的读Cookie函数取出的却是一堆乱码。...
创新性的方法是将数据写入Cookie中,然后通过AJAX请求发送数据,这样可以绕过URL编码,直接在Cookie中传输数据。客户端的代码通过设置Cookie来存储要发送的数据,然后在AJAX请求中进行传输。服务器端则通过读取...
在标题中提到的过滤器可能被用于处理禁止缓存、中文乱码和URL级别的权限控制。开发者可以通过实现`javax.servlet.Filter`接口并重写`doFilter()`方法来创建自定义过滤器。 2. **禁止缓存**: 在Web应用中,禁止...
在实际开发中,还应考虑其他可能的解决方案,例如使用LocalStorage或SessionStorage(它们不受ASCII编码限制),或者在服务器端进行数据处理,避免在Cookie中存储非ASCII字符。 总之,理解不同浏览器对于Cookie处理...
本文总结了Tomcat 4.0 和 4.1 版本下常见的中文问题及其解决方案,包括JSP页面中文显示问题、POST和GET方式提交表单中文乱码问题以及Cookie中中文字符处理问题。通过以上方法,可以有效解决Tomcat中文环境中出现的...
- **编码问题**:由于Cookies的值是字符串,如果包含非ASCII字符(如中文),可能会导致乱码。因此,在设置Cookie值时,可能需要对其进行URL编码。例如,使用`URLEncoder.encode(value, "UTF-8")`进行编码,`...
这里需要注意的是,如果用户信息类的属性值包含中文,直接序列化可能会导致在Cookie中存储时出现乱码。为了解决这个问题,我们在存入Cookie前使用`HttpUtility.UrlEncode()`对JSON字符串进行URL编码,取出时使用`...
2. **URL编码问题**:在传输过程中,如果没有对中文字符串进行正确的URL编码处理,可能会导致乱码。 3. **浏览器兼容性问题**:不同浏览器对于Cookies的处理可能存在差异,尤其是在编码方面。 ##### 解决方案: 1....
- 在发送请求之前,先将需要传输的数据通过JavaScript写入到Cookie中。 - 使用`setcookie`函数来设置Cookie的值,确保使用正确的编码格式(如GB2312)。 - 示例代码: ```javascript function setcookie(name, ...
5. **处理中文文件名**:在写入ZIP条目时,确保正确设置文件名的编码,通常使用UTF-8,以避免乱码问题。 6. **关闭流**:下载完成后,关闭所有打开的输入/输出流,确保资源得到释放。 这个过程不仅实现了文件的...
13. **Cookie操作**: `Cookie防乱码写入`和`Cookie防乱码读出`确保在Cookie中存储和读取数据时不会出现编码问题。 14. **服务器信息获取**: `返回服务器信息`函数提供了关于服务器状态的详细数据。 15. **唯一标识...
此外,还需要熟悉如何处理中文乱码问题,以及如何使用JSP内置对象如`request`、`response`、`session`和`cookie`进行数据传递和保存。 课程中的任务涵盖了日期格式化显示、用户注册信息显示、手机话费充值、使用`...
- **Cookie共享**:Cookie是存储在客户端的数据,适用于存储用户特定信息,如用户名,通过`new Cookie("key", "value")`创建Cookie,`response.addCookie(cookie)`将其添加到响应中。 - **隐藏表单字段**:通过在...
在实际开发中,理解并熟练运用这些JSP对象及其功能,可以有效地构建交互式的Web应用程序,处理用户输入,管理会话,以及处理可能出现的异常情况。同时,对于数据安全和用户体验也有着至关重要的作用。
Wind Forums 的GBK编码意味着在处理中文字符时,需要确保所有环节都支持GBK,包括数据库配置、文件编码、页面输出等,否则可能会出现乱码问题。在部署和升级论坛时,还需要注意编码兼容性,尤其是在从GBK迁移到更...
在Servlet中处理请求和响应,我们通常会用到`HttpServletRequest`和`HttpServletResponse`对象。`HttpServletRequest`对象封装了客户端的请求信息,如请求参数、请求头、请求URI等,我们可以通过其提供的API来获取...
7. **GBK编码处理**:在处理中文字符时,需要知道如何正确读取、写入和转换GBK编码的文件和数据。 8. **错误日志与调试**:学会使用PHP的错误报告机制和调试工具,以定位和解决问题。 9. **性能优化**:考虑代码...