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>
  • 相关阅读:
    [Java] JDBC 06 批Transaction处理 -- conn.setAutoCommit(false); // 不让其自动提交 (很重要的知识点)
    [Java] JDBC 05 TestBatch.java 批处理 Batch
    [Java] JDBC 04 TestProc.java (对存储过程进行调用 CallableStatement)
    [Java] JDBC 03 TestPrepStmt.java
    美化复选框
    美化单选框
    canvas
    html5新增标签
    旋转、水平翻转、垂直翻转
    dede让channelartlist标签支持currentstyle属性 完美解决
  • 原文地址:https://www.cnblogs.com/19322li/p/11967966.html
Copyright © 2011-2022 走看看