维护一个古董级的项目,在jsp传参的时候乱码了,如下:
<jsp:forward page="/pub/msgpage/MsgTo.jsp">
<jsp:param name="msg_Title" value='<%=Form.getFES("回复成功")%>'/>
<jsp:param name="msg_Content" value='<%=Form.getFES("回复成功,正在操作")%>'/>
<jsp:param name="url_to" value='<%=addpic_url%>'/>
</jsp:forward>
使用request得到的都是问号,最后在网上找到了下面的一段话,才解开了我心中的谜团。
最近在做GGLook的时候,发现<jsp:forword>被tomcat generate成了...pageContent.forword(...java.util.URLEncoder.encode("" + ... )); 看了函数原形java.util.URLEncoder.encode有两种形式:1.encode(String s) 2.encode(String s, String enc).对于第二个,我们可以对编码进行设置.但是对于第一个,j2sdk实现的默认编码却是iso-8859-1.没搞懂为什么内部编码为UNICODE的java要把他实现成为iso-8859-1.还有就是tomcat为什么不采用配置文件的方式使我们自己能设定其编码方式.现在一跳转到errorpage.jsp就是乱码.没办法,要吗改j2sdk,要吗改tomcat.最后,确定下载tomcat原代码包,将Generator.java改掉,重新编译,现在一切运行正常! |
原来是因为url里面没有指定编码,会默认使用ISO-8859-1进行编码,而ISO-8859-1是不支持中文的,即URLEncoder.encode之后 都会显示%3F%3F%3F,所以之后无论使用何种字符集解码都是问号了。。。
最后的解决方案有一下几种,其中第四种没有成功:
-
写个filter,然后在filter里面进行request.setCharacterEncoding("GBK")
-
每个jsp页面的头部都写上request.setCharacterEncoding("GBK"),原理和1是一样的
-
传参数前先对中文进行encode,得到参数后再使用对应的decode,这样的话传递的参数就不会丢失,但是比较麻烦
-
修改tomcat的server.xml配置文件,在<Connector>节点增加一个属性:URIEncoding="GBK",但是感觉这个参数没有起作用,官方文档是这么描述的“This specifies the character encoding used to decode the URI bytes, after %xx decoding the URL. If not specified, ISO-8859-1 will be used. ”
我的理解是要区分你是怎么提交数据的,如果是Post的话,则会使用过滤器;如果是Get方式的话,tomcat默认会使用URIEncoding----是tomcat的server.xml配置文件,在<Connector>节点有一个URIEncoding的属性,如果不配置的话默认是:URIEncoding="ISO-8859-1",官方文档是这么描述的“This specifies the character encoding used to decode the URI bytes, after %xx decoding the URL. If not specified, ISO-8859-1 will be used. ”
因为ajaxAnywhere.getAJAX是通过Get提交数据的(sends a GET request to the server.),所以还是使用了ISO-8859-1编码。
HTTP 定义了与服务器交互的不同方法,最基本的方法是 GET 和 POST。事实上 GET 适用于多数请求,而保留 POST 仅用于更新站点。根据 HTTP 规范,GET 用于信息获取,而且应该是 安全的和 幂等的。所谓安全的意味着该操作用于获取信息而非修改信息。换句话说,GET 请求一般不应产生副作用。幂等的意味着对同一 URL 的多个请求应该返回同样的结果。完整的定义并不像看起来那样严格。从根本上讲,其目标是当用户打开一个链接时,她可以确信从自身的角度来看没有改变资源。比如,新闻站点的头版不断更新。虽然第二次请求会返回不同的一批新闻,该操作仍然被认为是安全的和幂等的,因为它总是返回当前的新闻。反之亦然。POST 请求就不那么轻松了。POST 表示可能改变服务器上的资源的请求。仍然以新闻站点为例,读者对文章的注解应该通过 POST 请求实现,因为在注解提交之后站点已经不同了(比方说文章下面出现一条注解);
在FORM提交的时候,如果不指定Method,则默认为GET请求,Form中提交的数据将会附加在url之后,以?分开与url分开。字母数字字符原样发送,但空格转换为“+“号,其它符号转换为%XX,其中XX为该符号以16进制表示的ASCII(或ISO Latin-1)值。GET请求请提交的数据放置在HTTP请求协议头中,而POST提交的数据则放在实体数据中;
GET方式提交的数据最多只能有1024字节,而POST则没有此限制。
分享到:
相关推荐
在开发Java Web应用程序时,尤其是使用JSP技术时,经常遇到的一个问题是中文字符在传递过程中出现乱码。这个问题主要是由于字符编码不一致导致的。在本文中,我们将深入探讨JSP页面传参出现中文乱码的原因,并提供...
jsp 传参 servlet 接收中文乱码问题是一个经常遇到的问题,特别是在使用 Hibernate+Servlet 框架时。当我们在 jsp 页面传参到 servlet 时,中文字符经常会出现乱码问题。这是因为在 HTTP 请求中,默认的编码方式是 ...
### get方式传参中文乱码问题的解决方案 ...通过以上方法之一或者结合使用,可以有效解决GET方式传参时中文乱码的问题。需要注意的是,在实际项目中还需要根据具体的编码环境和需求选择合适的解决方案。
解决 JSP 中文乱码问题是一个很常见的问题,在 JSP 开发过程中,经常出现中文乱码的问题,可能一至困扰着大家。下面我们将详细讨论 JSP 中文乱码问题的成因和解决方法。 JSP 中文乱码问题的成因 JSP 中文乱码问题...
在Web开发中,尤其是使用Java JSP技术时,我们可能会遇到URL中传递参数出现乱码的问题。这是因为不同的字符集编码方式可能导致字符在传输过程中无法正确解析。本文将详细介绍两种解决JSP页面URL参数乱码的方法,虽然...
jsp中文乱码问题详解 在jsp中文乱码问题中,乱码的出现是由于编码格式不一致所导致的。在jsp文件中,存在三个地方的编码格式:jsp文件的存储格式、解码格式和控制浏览器的解码方式。如果这三个地方的编码格式不一致...
在Web开发过程中,特别是在使用Java进行后端开发时,经常遇到的一个问题是中文字符或非ASCII字符在URL参数中的乱码问题。这主要是因为客户端浏览器与服务器之间可能使用的字符集不同导致的。本文将详细介绍如何通过`...
JSP 中文乱码问题解决办法 JSP 页面中中文乱码问题是指在 JSP 页面中使用中文时,页面显示乱码的现象。这种问题的解决办法可以从多方面入手,包括设置页面的字符编码、使用 POST 方式提交表单、使用 GET 方式提交...
在 Web 开发中,乱码问题是常见的难题之一。乱码问题的出现主要是由于编码不一致引起的。编码不一致可能出现在多个方面,如页面编码、服务器编码、客户端编码、数据库编码等。在本文中,我们将详细介绍乱码问题的...
jsp SmartUpload 中文乱码问题解决 jsp SmartUpload 中文乱码问题解决是指在使用 jsp 的 SmartUpload 组件进行文件上传下载时,遇到中文乱码问题的解决方法。在这篇文章中,我们将介绍如何解决 jsp 中 SmartUpload ...
在JavaWeb开发中,尤其是涉及到JSP页面时,乱码问题常常困扰着开发者。这个问题的出现通常是由于字符编码不一致导致的,而过滤器(Filter)作为一种强大的工具,可以有效地帮助我们解决这个问题。本文将详细讲解如何...
jsp中文乱码问题解决 jsp中文乱码问题是jsp开发中常见的问题之一,本文将围绕jsp中文乱码问题的解决展开讨论。首先,我们需要了解jsp中文乱码问题产生的原因,然后再讨论解决方案。 jsp中文乱码问题产生的原因是...
在开发Java Web应用程序时,尤其是使用JSP技术时,可能会遇到一个常见的问题——参数传递过程中出现乱码。这种问题通常是由于字符编码不一致或者没有正确处理编码解码过程导致的。本文将详细介绍如何解决JSP页面传参...
在开发Web应用时,我们经常会遇到JSP页面中文乱码的问题。这主要涉及到字符编码的设置和处理。本文将深入探讨如何解决这个问题,确保在JSP页面中正确显示中文字符。 首先,我们需要理解字符编码的基本概念。在...
本篇文章将深入探讨JSP中文乱码问题的原因、解决策略以及预防措施。 一、乱码产生的原因 1. 字符集不一致:JSP页面、Servlet、HTML、CSS、JavaScript、数据库等环节如果使用的字符集不统一,容易导致中文字符在...
这里定义了一个名为`myFunction`的JavaScript函数,接受两个参数`param1`和`param2`。 2. **调用JavaScript函数**: 要在JSP中调用这个JavaScript函数,可以使用HTML的事件监听器或者`<jsp:expression>`标签。...
### JSP中文乱码问题分析及处理方法 #### 一、问题根源剖析 JSP(Java Server Pages)作为Web开发中的一种技术,广泛应用于动态网页的生成。然而,在处理中文字符时,JSP经常会遇到“乱码”问题,即中文字符无法...
### Servlet及JSP解决中文乱码问题 #### 一、引言 在Web开发中,中文乱码问题一直是困扰开发者的一大难题。特别是在使用Java技术栈(如Servlet与JSP)进行开发时,如果处理不当,很容易出现中文字符显示乱码的情况...
### JSP Eclipse 乱码问题解析与解决方案 在开发基于Java的Web应用时,经常会遇到JSP页面在Eclipse环境中出现乱码的情况。这不仅会影响程序的正常运行,还可能导致用户体验下降。本文将针对JSP在Eclipse中的乱码...