zoukankan      html  css  js  c++  java
  • Cookie不能保存中文的解决办法

    假设a.jsp是客户端,b.jsp是客户端,c.jsp是服务端

    现在要做的就是客户端在a.jsp页面提交表单信息到服务端c.jsp,c.jsp再将表单信息保存到cookie中,并转发或者重定向到b.jsp客户端,这样就

    达到了我们将服务端生成的cookie保存到客户端的作用,但是中文输入保存cookie时会报错

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8" import="java.net.URLDecoder"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>客户端a页面</title>
    </head>
    <body>
        <%
            String uname="";
            Cookie[] cookies = request.getCookies();
            if(cookies!=null)
            for(Cookie cookie:cookies){
                if("uname".equals(cookie.getName())){
                    //客户端获取cookie 后 解  码
                    uname= URLDecoder.decode(cookie.getValue(), "UTF-8");
                }
            }
        %>
        <form action="./c.jsp" method="get">
            姓名:<input type="text" name = "uname" value="<%=uname %>"/><br/>
            密码:<input type="password" name="upsd"/><br/>
            <input type="submit" value="提交" />
            <!-- 发送信息到服务端,服务端再用cookie保存返回到客户端 -->
        </form>
            
    </body>
    </html>
    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>客户端b页面</title>
    </head>
    <body>
        c已经将cookie给我了
    </body>
    </html>
    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8" import="java.net.URLEncoder"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>服务端c页面</title>
    </head>
    <body>
        我是c服务端页面,我要保存cookie,然后转发回b客户端页面<br/>
        <%
            request.setCharacterEncoding("UTF-8");
            String name = request.getParameter("uname");
            String psd = request.getParameter("upsd");
            Cookie c1 = new Cookie("uname", URLEncoder.encode(name, "UTF-8"));
            //ck.setPath("/");                  //设置cookie的路径,只有包含这个路径(以这个路径为前缀)的文件才能访问这个cookie
            c1.setMaxAge(Integer.MAX_VALUE);            //设置cookie的最大保存时间
            response.addCookie(c1);
            Cookie c2 = new Cookie("upsd",psd);
            out.print(c1.getName()+"====="+c1.getValue());
            response.addCookie(c1);
            response.addCookie(c2);
            response.sendRedirect("./b.jsp"); 
        %>
    </body>
    </html>
  • 相关阅读:
    JavaScript--Function类型(11)
    CSS--清除浮动
    JavaScript--正则表达式(笔记)
    JavaScript--模块化编程(笔记)
    原生javascript-图片滚动按需加载
    原生javascript-图片按钮切换
    原生javascript-图片弹窗交互效果
    对CSS了解-overflow:hidden
    对CSS了解-选择器权重
    TaskTimer
  • 原文地址:https://www.cnblogs.com/19322li/p/11967966.html
Copyright © 2011-2022 走看看