java url是中文,后台出现乱

6 篇文章 0 订阅

我看资料,总结乱码问题有一下四种:

第一种:通过form表单提交到后台(由于脑残,忘记加method = "post",使得URL上出现中文)

    通过form传入后台,提交方式分为post和get两种。两者的区别需要通过提交表单后才看得出来,主要是在数据发送方式和接收方式上。Post和Get都是表单属性Method的可选值,Method的默认值为Get,两者的主要区别在于:

   1.在客户端,Get方式在通过URL提交数据,提交后在地址栏中的地址会出现传入到后台的参数;而Post提交后地址栏中的地址不会出现参数。

   2.在服务器端只能用Request.QueryString来获取Get方式提交来的数据,用Post方式提交的数据只能用Request.Form来获取。

    一般来说,尽量避免使用Get方式提交表单,因为有可能会导致安全问题。比如说在登陆表单中用Get方式,用户输入的用户名和密码将在地址栏中暴露无遗。但是在分页程序中,用Get方式就比用Post好。

    Get把参数添加到action属性指定的地址中,并以锚方式打开。
    Post通过HTTP post处理发送数据。

 

    如果将form中的参数含有汉字,提交到后台有可能也会出现乱码,一般如果method设置为“post”,将不会出现乱码,如果将method设置为“get”,可能在汉字传入到后台后会出现乱码问题

 页面中的form:

<form action="user.do" method="post" >
   			姓名: <input type = text name ="uname"/><br/>
   			<input type = hidden name ="method" value="reg"/>
   			<input type =submit value="注册">
   </form>


第二种:在web.xml中忘记加过滤器,所以会导致乱码问题

<filter>
		<filter-name>CharacterEncodingFilter</filter-name>
		<filter-class>
			org.springframework.web.filter.CharacterEncodingFilter
		</filter-class>
		<init-param>
			<param-name>encoding</param-name>
			<param-value>UTF-8</param-value>
		</init-param>
	</filter>
	<filter-mapping>
		<filter-name>CharacterEncodingFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

第三种:在jsp文件开头确保是:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"%> 
并且
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

·················

第四种:工程编码
 开发中发现Windows版Eclipse默认Java和Web工程的默认编码方式不那么遂人愿,修改方法如下:
 1. Web工程文件编码修改方式
 Window -> Preference -> Content types
 推荐将Web相关文件的编码都设置为UTF-8
 2. Java源文件编码修改方式
 Window -> Preference -> Workspace -> Text file encoding
 Windows平台默认为GBK,Linux平台默认为UTF-8
经过这四个步骤,肯定能解决的。

所属链接:http://bbs.csdn.net/topics/390372335

http://blog.sina.com.cn/s/blog_63544da30100io2w.html


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值