`

处理中文乱码 并 写入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";
分享到:
评论

相关推荐

    .NET中文乱码的解决方法分享.docx

    .NET中文乱码的解决方法分享 .NET中文乱码的解决方法是ASP.NET...同时,本文还提供了一些其他相关的解决方案,例如解决ASP.NET中的各种乱码问题、ASP.NET Core中的中文乱码问题、ASP.NET Cookie中的中文乱码问题等等。

    Java WEB开发中的中文乱码问题解决方法.pdf

    然而,在Java Web开发中处理中文字符时,编码不一致常会导致乱码问题。 字符编码转换在Java Web应用开发中是不可或缺的一个过程。计算机只能识别二进制数,而字母、数字、汉字等通过字符编码转换成二进制形式存储。...

    JavaScript读取中文cookie时的乱码问题的解决方法

    在`Set_Cookie`函数中,`escape()`函数用于对中文字符进行编码,以便将中文字符安全地写入cookie。随后,在读取cookie时,通过`decodeURI()`解码,从而还原成正确的中文字符。 总结来说,处理JavaScript中的中文...

    用Javascript读取中文COOKIE的解决办法

    在Cookie的使用中,我们发现这样一个问题:如果写入Cookie的内容是中文(如用户称呼),用服务器端程序(如ASP或PHP)读出完全正确,但是用一般的javascript或VBScript的读Cookie函数取出的却是一堆乱码。...

    AJAX中文乱码解决新方法分享

    创新性的方法是将数据写入Cookie中,然后通过AJAX请求发送数据,这样可以绕过URL编码,直接在Cookie中传输数据。客户端的代码通过设置Cookie来存储要发送的数据,然后在AJAX请求中进行传输。服务器端则通过读取...

    day17过滤器 禁止缓存中文乱码自动登录MD5加密url级别权限控制

    在标题中提到的过滤器可能被用于处理禁止缓存、中文乱码和URL级别的权限控制。开发者可以通过实现`javax.servlet.Filter`接口并重写`doFilter()`方法来创建自定义过滤器。 2. **禁止缓存**: 在Web应用中,禁止...

    safari cookie设置中文失败的解决方法

    在实际开发中,还应考虑其他可能的解决方案,例如使用LocalStorage或SessionStorage(它们不受ASCII编码限制),或者在服务器端进行数据处理,避免在Cookie中存储非ASCII字符。 总之,理解不同浏览器对于Cookie处理...

    Tomcat 中文问题及解决方法总结

    本文总结了Tomcat 4.0 和 4.1 版本下常见的中文问题及其解决方案,包括JSP页面中文显示问题、POST和GET方式提交表单中文乱码问题以及Cookie中中文字符处理问题。通过以上方法,可以有效解决Tomcat中文环境中出现的...

    Java 是如何读取和写入浏览器Cookies的实例详解

    - **编码问题**:由于Cookies的值是字符串,如果包含非ASCII字符(如中文),可能会导致乱码。因此,在设置Cookie值时,可能需要对其进行URL编码。例如,使用`URLEncoder.encode(value, "UTF-8")`进行编码,`...

    C#中Cookie之存储对象

    这里需要注意的是,如果用户信息类的属性值包含中文,直接序列化可能会导致在Cookie中存储时出现乱码。为了解决这个问题,我们在存入Cookie前使用`HttpUtility.UrlEncode()`对JSON字符串进行URL编码,取出时使用`...

    asp.net下cookies的丢失和中文乱码

    2. **URL编码问题**:在传输过程中,如果没有对中文字符串进行正确的URL编码处理,可能会导致乱码。 3. **浏览器兼容性问题**:不同浏览器对于Cookies的处理可能存在差异,尤其是在编码方面。 ##### 解决方案: 1....

    AJAX乱码解决新方法

    - 在发送请求之前,先将需要传输的数据通过JavaScript写入到Cookie中。 - 使用`setcookie`函数来设置Cookie的值,确保使用正确的编码格式(如GB2312)。 - 示例代码: ```javascript function setcookie(name, ...

    org.apache.tools.zip.*和org.apache.commons.httpclient.*实现远程文件打包下载,支持中文文件名

    5. **处理中文文件名**:在写入ZIP条目时,确保正确设置文件名的编码,通常使用UTF-8,以避免乱码问题。 6. **关闭流**:下载完成后,关闭所有打开的输入/输出流,确保资源得到释放。 这个过程不仅实现了文件的...

    50个ASP函数[借鉴].pdf

    13. **Cookie操作**: `Cookie防乱码写入`和`Cookie防乱码读出`确保在Cookie中存储和读取数据时不会出现编码问题。 14. **服务器信息获取**: `返回服务器信息`函数提供了关于服务器状态的详细数据。 15. **唯一标识...

    第1章-使用JSP实现系统登录.pptx

    此外,还需要熟悉如何处理中文乱码问题,以及如何使用JSP内置对象如`request`、`response`、`session`和`cookie`进行数据传递和保存。 课程中的任务涵盖了日期格式化显示、用户注册信息显示、手机话费充值、使用`...

    JSP中常用的技巧.ppt

    - **Cookie共享**:Cookie是存储在客户端的数据,适用于存储用户特定信息,如用户名,通过`new Cookie("key", "value")`创建Cookie,`response.addCookie(cookie)`将其添加到响应中。 - **隐藏表单字段**:通过在...

    Web程序设计chapter5.ppt

    在实际开发中,理解并熟练运用这些JSP对象及其功能,可以有效地构建交互式的Web应用程序,处理用户输入,管理会话,以及处理可能出现的异常情况。同时,对于数据安全和用户体验也有着至关重要的作用。

    基于PHP的Wind Forums(论坛)GBK.zip

    Wind Forums 的GBK编码意味着在处理中文字符时,需要确保所有环节都支持GBK,包括数据库配置、文件编码、页面输出等,否则可能会出现乱码问题。在部署和升级论坛时,还需要注意编码兼容性,尤其是在从GBK迁移到更...

    Servlet生命周期,http

    在Servlet中处理请求和响应,我们通常会用到`HttpServletRequest`和`HttpServletResponse`对象。`HttpServletRequest`对象封装了客户端的请求信息,如请求参数、请求头、请求URI等,我们可以通过其提供的API来获取...

    基于PHP的国微轻量级企业内网方案(PHP168)GBK源码.zip

    7. **GBK编码处理**:在处理中文字符时,需要知道如何正确读取、写入和转换GBK编码的文件和数据。 8. **错误日志与调试**:学会使用PHP的错误报告机制和调试工具,以定位和解决问题。 9. **性能优化**:考虑代码...

Global site tag (gtag.js) - Google Analytics