• 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>
  • 相关阅读:
    关于C51的中断函数要注意的几个问题
    WORD文档中插入页码的问题
    【转载】vim复制时的缩进
    【转载】在Linux下,一个文件也有三种时间,分别是:访问时间、修改时间、状态改动时间
    【转载】LINUX上MYSQL优化三板斧
    【转载】小结一下linux 2.6内核的四种IO调度算法
    【转载】linux挂载mount参数优化
    【转载】ipcs与Linux共享内存
    【转载】Linux下的IO监控与分析
    【转载】netstat--查看服务器[有效]连接数--统计端口并发数--access.log分析
  • 原文地址:https://www.cnblogs.com/19322li/p/11967966.html
Copyright © 2020-2023  润新知