首先是过滤器,通过过滤器可以设置所有的post请求
<filter>
<filter-name>struts2</filter-name>
<filter-class>info.frady.filter.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
此代码重写了struct2的过滤器,可以将struct2的过滤器直接用此替换
此过滤器的代码如下
package info.frady.filter;
import java.io.IOException;
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter;
public class FilterDispatcher extends StrutsPrepareAndExecuteFilter {
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain filterChain) throws IOException, ServletException {
request.setCharacterEncoding("UTF-8");
HttpServletRequest httpRequest = (HttpServletRequest) request;
String url = httpRequest.getRequestURI();
super.doFilter(request, response, filterChain);
}
}
以上处理后,所有的post请求都OK了,那么get请求的链接确实需要传递中文,怎么处理
自己手动加下编码处理下,以下为工具类
package info.frady.util;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.net.URLEncoder;
public class UrlUtil {
public static final String encode(String s, String encoding) {
try {
return URLEncoder.encode(s, encoding);
} catch (UnsupportedEncodingException e) {
return s;
}
}
public static final String dncode(String s, String encoding) {
try {
return URLDecoder.decode(s, encoding);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
return s;
}
}
public static final String encodeDefault(String s) {
try {
return URLEncoder.encode(s, "UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
return s;
}
}
}
在使用的使用,自己拼接url为UrlUtil.encodeDefault(userName)
这样url就被编码成类似这样%E4%B8%AD%E6%96%87
然后,还有然后,需要配置下tomcat
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8" />
以上所说的仅为utf8,如果你的项目为GBK,请对照修改响应的文件。
分享到:
相关推荐
在Web开发中,URL乱码问题常常困扰着开发者。URL编码和解码是解决这个问题的关键。以下是关于如何处理URL乱码的详细知识点: 1. **URL编码原理**:URL(Uniform Resource Locator)中的非ASCII字符需要进行编码,以...
在Java开发中,遇到中文乱码问题是一种常见的挑战,特别是在处理URL时。URL中文乱码问题主要是由于URL编码和解码过程中的不一致导致的。下面将详细介绍如何解决这个问题,并探讨几种常用的方法。 首先,我们需要...
js 中乱码处理法方式 encodeURIComponent(encodeURIComponent(customerAddress)) decodeURIComponent(customerName) js到java encodeURI(url) String qijuType= new String(request.getParameter( (...
对于程序员来说url乱码是一定会碰到的对于处理方面一些初级程序员是没有经验的所以把自己对url处理乱码的方法分享出来希望对需要的人有帮助
"URL地址传参中文乱码处理" URL地址传参中文乱码处理是指在Web应用程序中,将中文参数传递给服务器时,可能出现乱码的情况。这种情况可能是由于编码问题或Tomcat服务器的配置问题引起的。 在处理URL地址传参中文...
本文将详细介绍如何在前端和后端两个层面有效地解决URL乱码的问题。 #### 二、前端解决方案:转换URL为十六进制编码 1. **基本思路**:在JavaScript中,可以利用`encodeURI`方法对包含中文或特殊字符的URL进行编码...
JSP 对 URL 链接中的中文乱码处理方法总结是指在 JSP 应用程序中,如何正确地处理 URL 链接中的中文字符编码问题。这个问题的出现是由于不同浏览器和服务器的默认编码方式不同所造成的。 IE浏览器缺省对 URL 后面的...
当我们需要在两个页面间通过URL传递参数时,经常会遇到中文乱码问题。...需要注意的是,乱码问题的出现主要是由于编码和解码不一致导致的,所以在前后端处理URL参数时,一定要注意正确地使用编码和解码函数。
### Java开发乱码问题处理大全:精通乱码处理,提升专业技能 在Java开发中,乱码问题是开发者常遇到的挑战之一,尤其是在处理多语言、跨平台应用时更为显著。本文将深入探讨Java开发中常见的乱码问题及其解决策略,...
在ASP.NET开发过程中,我们时常会遇到URL参数传递中文字符时出现乱码的问题。这个问题主要源于字符编码不一致导致的,下面将详细讲解三种解决这个问题的方法。 ### 方法一:设置Web.config配置 在ASP.NET应用的`...
### 中文乱码处理问题总结 #### 一、引言 在进行中文字符处理时,经常会出现乱码问题。这主要是因为不同的系统、程序或组件可能采用不同的编码方式,而这些编码方式之间的转换不当就会导致乱码现象。本文将重点...
标题“URL中汉字乱码问题”涉及到的是在Web开发中常见的字符编码问题,尤其是在处理包含汉字的URL时。URL(Uniform Resource Locator)是用于定位网络资源的地址,它必须遵循特定的编码规则,以确保在不同系统间传输...
3. **解决URL乱码**:在`Index.jsp`中,两个按钮点击事件分别调用了`doSubmit()`和`doAction()`函数,这两个函数使用`URLEncoder.encode()`对中文字符串进行编码,确保在URL中传输时不出现乱码。例如: ```java (...
通过分析这个文件,我们可以更深入地了解如何在JavaScript环境中正确处理URL编码和解码,避免乱码问题。如果需要,可以查看并学习该文件中的函数,理解其工作原理,并将其应用到实际项目中。 总之,理解和正确应用...
在Web开发中,尤其是使用Java JSP技术时,我们可能会遇到URL中传递参数出现乱码的问题。这是因为不同的字符集编码方式可能导致字符在传输过程中无法正确解析。本文将详细介绍两种解决JSP页面URL参数乱码的方法,虽然...
【url中文乱码处理大全】 在信息技术领域,URL(统一资源定位符)是访问网络资源的重要途径,然而,当URL中包含中文字符时,由于不同的字符编码标准,可能会出现中文乱码的问题。本文主要探讨了两种针对Tomcat...
在IT行业中,服务器管理和Web应用开发常常会遇到字符编码的问题,特别是当涉及到非英文字符时。...同时,利用如`decodeURL.c`和`encodeURL.c`这样的工具函数可以有效地处理URL编码问题,从而避免中文乱码。
在实际解决乱码问题的过程中,如果发现使用Base64加密传输中文数据还会出现问题,可以改用URL编码的方式来传输数据,即使用JavaScript的`encodeURI`函数对数据进行两次URL编码,后端接收到后进行一次URL解码即可。...