中文乱码又一解决方法:将表单提交方式由get改为post

当把所有牵涉到的都改为utf-8时,依然有乱码。后来在网站上求助,滄海一夢 给出了这个解决方案:将表单提交方式由get改为post,果然成功。谢过!

1.filter/comments.jsp:

<%@ page language ="java" import="java.util.*" pageEncoding="UTF-8" %>

<%

String path = request.getContextPath();

String basePath = request.getScheme()+"://" +request.getServerName()+":"+request.getServerPort()+path+ "/";

%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head >

<base href ="<%=basePath%> ">

<meta http-equiv ="content-language" content="zh-CN" />

</head >

<body >

<form   action="filter/commentsResult.jsp" method= "post">

 <%--get方式容易出现乱码,改成post即解决--%>

用户名: <input type ="text" name="uname" /><br/>

评论: <textarea rows ="7" cols="10" name= "comments"></textarea ><br/>

<input type ="submit" value="提交"/>

</form >

</body >

</html>

2.filter/commentsFilter.java:

package filter;

import java.io.IOException;

import javax.servlet.Filter;

import javax.servlet.FilterChain;

import javax.servlet.FilterConfig;

import javax.servlet.ServletException;

import javax.servlet.ServletRequest;

import javax.servlet.ServletResponse;

public class CommentsFilter implements Filter{

public void destroy() {

// TODO Auto-generated method stub

}

public void doFilter(ServletRequest request, ServletResponse response,

FilterChain chain) throws IOException, ServletException {

request.setCharacterEncoding( "utf-8"); //

response.setContentType( "text/html; charset=UTF-8");

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

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

if( null!=uname){

uname=uname.replace( "hui", "#");

request.setAttribute( "uname", uname);

}

if( null!= comments){

comments=comments .replace("党" , "*" );

request.setAttribute( "comments", comments);

}

chain.doFilter(request, response);

}

public void init(FilterConfig filterConfig) throws ServletException {

}

}

同时在web.xml中配置如下:

<filter >

<filter-name >CommentsFilter </filter-name>

<filter-class >filter.CommentsFilter </filter-class>

</filter >

<filter-mapping >

<filter-name >CommentsFilter </filter-name>

<url-pattern >/filter/commentsResult.jsp </url-pattern>

</filter-mapping >

3.filter/commentsResult.jsp:

<%@ page language ="java" import="java.util.*" pageEncoding="UTF-8" %>

<%

String path = request.getContextPath();

String basePath = request.getScheme()+"://" +request.getServerName()+":"+request.getServerPort()+path+ "/";

%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<body >

用户名: <%=request.getAttribute( "uname") %><br />

评论: <%=request.getAttribute( "comments") %>

</body >

</html>

时间: 2024-12-25 07:41:35

中文乱码又一解决方法:将表单提交方式由get改为post的相关文章

CentOS中文乱码问题的解决方法

一.CentOS系统访问 xxx.cn ,发现中文乱码于是用以前的方式:# yum -y install fonts-chinese # yum -y install fonts-ISO8859 CentOS系统安装完成后,重新启动即可. 二.终端. gedit 显示乱码# vim /etc/sysconfig/i18n 将:LANG="en_US.UTF-8" SYSFONT="latarcyrheb-sun16" 修改原内容为: LANG="zh_CN

jquery.ajax的url中传递中文乱码问题的解决方法

jquery.ajax的url中传递中文乱码问题的解决方法 JQuery JQuery默认的contentType:application/x-www-form-urlencoded 这才是JQuery正在乱码的原因,在未指定字符集的时候,是使用ISO-8859-1 ISO8859-1,通常叫做Latin-1.Latin-1包括了书写所有西方欧洲语言不可缺少的附加字符. JQuery的Ajax根本没有考虑到国际化的问题,使用了欧洲的字符集,所以才引起了传递中文出现乱码的问题. 而我们的UTF-8

windows下mysql中文乱码, 配置解决方法

内容源自:windows下mysql中文乱码, 配置解决方法 解决方法:打开mysql安装目录,打开my.ini文件(如果只有my-default.ini文件,先将其改名为my.ini!!!) 修改内里配置: [mysqld] character-set-server=utf8 [client] default-character-set=utf8 [mysql] default-character-set=utf8 如图: 修改完成后重启MySQL服务:(右键重新启动) 完成: 原文地址:ht

详解Linux中文乱码问题终极解决方法

详解Linux中文乱码问题终极解决方法 方法一: 修改/root/.bash_profile文件,增加export LANG=zh_CN.GB18030 该文件在用户目录下,对于其他用户,也必须相应修改该文件. 使用该方法时putty能显示中文,但桌面系统是英文,而且所有的网页中文显示还是乱码 例: cd ~ vim .bash_profile 直接写入 export LANG=zh_CN.GB18030 之后重启 就ok了 方法二: 修改/etc/sysconfig/i18n文件 #LANG=

Jquery表单提交方式

1.使用调用submit方法 function tes1(){ //执行判断 if(校验通过){ $("#formId").submit(); }else{ return; } } 2.使用ajaxSubmit 方法,用到jquery.form.js $("#picForm").ajaxSubmit({ type: "post", dataType: "text", success: function(result){ ale

html表单提交方式

xml 表单提交方式: * 使用submit提交 <form> 要提交的数据 <input type="submit" /'> </form> 使用“button”提交表单 <form id="form1"> <input type="text" name="username" /> <input type="button" value =&

Linux中文乱码问题终极解决方法

方法一: 修改/root/.bash_profile文件,增加export LANG=zh_CN.GB18030该文件在用户目录下,对于其他用户,也必须相应修改该文件. 使用该方法时putty能显示中文,但桌面系统是英文,而且所有的网页中文显示还是乱码 方法二:修改/etc/sysconfig/i18n文件 #LANG="en_US.UTF-8"#SUPPORTED="en_US.UTF-8:en_US:en"#SYSFONT="latarcyrheb-s

form表单提交方式

无刷新页面提交表单 表单可实现无刷新页面提交,无需页面跳转,如下,通过一个隐藏的iframe实现,form表单的target设置为iframe的name名称,form提交目标位当前页面iframe则不会刷新页面 <form action="/url.do" method="post" target="targetIfr"> <input type="text" name="name"/&g

jQuery最简单的表单提交方式

第一步:绑定事件 常用的与ajax相关的事件参考如下: 1.$(selector).click(function) 2.$(selector).change(function) 3.$(selector).keyup(function) 4.$(selector).submit(function) 提交表单前,阻止提交按钮的默认的action,或返回false,如: 1.阻止提交按钮的默认的action $("form").submit(function(e){    e.preven