IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> JavaWeb后端学员管理系统请求参数乱码的解决方案 -> 正文阅读

[JavaScript知识库]JavaWeb后端学员管理系统请求参数乱码的解决方案

造成参数乱码的原因

1.两端的编码格式不一致
2. login.jsp 发起请求 -> Tomcat容器 -> login_after
utf-8 iso-8859-1 utf-8

login.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>

  <%--  只要发生页面跳转,就是一次请求!!! --%>
  <%--  这个请求中,携带了2个参数:name和password --%>

<%--  <a href="login_after.jsp?name=zhangsan&password=000000">点我跳转到login_after.jsp</a>--%>

<%--    <button id="btn">点我跳转到login_after.jsp</button>--%>

<%--    <script>--%>
<%--        document.getElementById("btn").onclick = function (){--%>
<%--            locations.href = "login_after.jsp?name=zhangsan&password=000000";--%>
<%--        };--%>
<%--    </script>--%>


        <%--   form表单是用于将数据打包提交到某一个地址     --%>
        <%--    action:表单数据的提交资源地址    --%>
        <form action="login_after.jsp" method="post">
            <%--      有多少个表单元素name,就会传多少个参数过去      --%>
            账号:<input type="text" name="name" />  <br />
            密码:<input type="password" name="password" /><br />
            <input type="text" name="age" /><br />
                <input type="text" />


            <button type="submit">登录</button>
        </form>

</body>
</html>

login_after.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>

    <%
        String name = request.getParameter("name");
        String password = request.getParameter("password");
    %>


    <h1>账号:<%=name %></h1>
    <h1>密码:<%=password %></h1>


</body>
</html>

在这里插入图片描述
在这里插入图片描述

这时候就解决方法就有两种了:

  1. 第一种情况

在使用POST方法请求时,如果不保持与请求界面的编码格式一致,则乱码,解决方式如下

? request.setCharacterEncoding("utf-8")

  1. 第二种情况
    使用字符串的构造方法进行转码(临时处理)
`String name = new String(request.getParameter("name").getBytes("iso-8859-1"),"utf-8")`
  1. 第三种情况
    修改tomcat的配置

URLEncoding=“utf-8” useBodyEncodingForURI=“true”

? <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URLEncoding="utf-8" useBodyEncodingForURI="true" />

在login_after.jsp中修改

		String name = request.getParameter("name");
        String nameNew = new String(name.getBytes("iso-8859-1"),"utf-8");

        String password = request.getParameter("password");


    	<h1>账号:<%=nameNew %></h1>
    	<h1>密码:<%=password %></h1>
  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-04-06 16:08:57  更:2022-04-06 16:12:32 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 2:49:04-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码