JSP表单提交中文乱码解决方案

文章介绍了两种处理Tomcat应用中GET请求和POST请求中文乱码的方法。对于GET请求,可以通过修改tomcat配置文件设置URIEncoding为utf-8,或者在代码中对参数进行转码。而对于POST请求,可以通过设置request的字符编码为utf-8来避免乱码问题。
摘要由CSDN通过智能技术生成

分2种提交方式:

1、form表单提交方式为get

解决方案:

因为get方法是参数在URL中显示,因为tomcat的URL编码默认是:IOS-8859-1所以要么改tomcat

第1种方法(治本):tomcat-config-sever.xml 

加URIEncoding="utf-8"或者useBodyEncodingForURI="true"

第2种方法(治标):要么要针对性的对乱码的参数进行单独转码

<%
String username = request.getParameter("username");
String name = new String(username.getBytes("ios-8859-1"),"utf-8");

String password = request.getParameter("password");
out.print("--用户名是:"+name+"--密码是:"+password);
%>

2、form表单提交方式为post

对请求的中文乱码处理:

response.setCharacterEncoding("utf-8");

但是我们通常只用写Request就可以了,因为jsp页面头部charset就是对响应的编码

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

所以代码应该是这样写的:

<form action="third.jsp" method="post">
        <label>用户名:</label>
        <%
            request.setCharacterEncoding("utf-8");
            String userName = request.getParameter("userName");
        %>
        <input type="text" value="<%=userName%>" disabled="disabled">
    </form>
 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值