做了两年半的iOS,偶尔也去做点Android的东西(不过实在拿不出手),突然感觉对于自己接触了两年半的移动端服务一窍不通,甚是感觉无力,虽然之前也学过一点JSP的东西可是那都是上学的事情了,可是突然感觉我要去做服务器的东西,从没有这么冲动的去学东西,之前接触iOS和Android都是为了好奇,可是这一次是那么的强烈。就从JSP开始一点一滴的做起…
首先是字符编码的各种乱码。我们需要把默认的"ISO-8859-1",转化为中文的支持,比如utf8,GB2312 ,GBK的编码。方法友好有坏都能解决问题,你可以在每个页面都设置,也可以一劳永逸进行全局设置。
1.手动每个页面添加
【思路】写一个全局的类进行转化
public class Request {
private static final String Request_Origin_Encoding = "ISO-8859-1";
private static final String Request_Convert_Encoding = "utf8";
public static Map<String, String> parameterNames(HttpServletRequest request)
throws UnsupportedEncodingException {
// request.setAttribute(arg0, arg1);
Enumeration<String> enumerator = request.getParameterNames();
Map<String, String> map = new HashMap<String, String>();
while (enumerator.hasMoreElements()) {
String key = (String) enumerator.nextElement();
String value = request.getParameter(key);
map.put(key, new String(value.getBytes(Request_Origin_Encoding),
Request_Convert_Encoding));
}
return map;
}
public static String getConvertParameter(HttpServletRequest request,
String parameterName) {
Map<String, String> map;
try {
map = parameterNames(request);
return map.get(parameterName);
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
}
2.使用FIlter进行转化,这个独有JSP和servlet都使用
【思路】首先,配置这个Filter,其次,在Filter中转化
1⃣️1配置:配置为转化为utf8的编码,并初始化参数encoding为utf8
<filter>
<filter-name>EncodingFilter</filter-name>
<filter-class>filter.EncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>utf8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>EncodingFilter</filter-name>
<servlet-name>*</servlet-name>
<url-pattern>*</url-pattern>
</filter-mapping>
2⃣️2Filter转化编码
//初始化数据
public void init(FilterConfig fConfig) throws ServletException {
// TODO Auto-generated method stub
this.encoding = fConfig.getInitParameter("encoding");
}
编码转化:将默认的ISO-8859-1转化为utf8
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
// TODO Auto-generated method stub
// place your code here
//request.setCharacterEncoding(encoding);
//response.setCharacterEncoding(encoding);
response.setContentType("text/html");
Enumeration<String> enumeration = request.getParameterNames();
Map<String, String[]> paramMap = request.getParameterMap();
for (String key : paramMap.keySet()) {
String[] values = paramMap.get(key);
for (int i = 0; i < values.length; i++) {
values[i] = new String(values[i].getBytes("ISO-8859-1"), this.encoding);
}
}
while (enumeration.hasMoreElements()) {
String parameName = (String) enumeration.nextElement();
String value = request.getParameter(parameName);
}
// pass the request along the filter chain
chain.doFilter(request, response);
}
相关推荐
3. **错误日志记录**:对于复杂的多语言环境,建议增加相应的错误日志记录机制,以便快速定位和解决问题。 总之,通过合理配置Servlet过滤器来解决字符编码问题是提高Web应用国际化能力的有效手段之一。开发者应该...
本文将深入探讨"字符编码过滤器"、"J2EE字符编码"、"字符编码转换"以及"POST字符转换"这些关键知识点,并结合提供的文件"encoding-filter.jar"和"使用方法.txt"来解释它们的应用。 首先,字符编码是计算机存储和...
Java字符编码监听器是Java Web开发中的一个重要概念,主要用于处理HTTP请求和响应中的字符编码问题。在Java Servlet规范中,提供了`SetCharacterEncodingFilter`这样的过滤器,用于确保请求参数和响应内容的正确编码...
本教程将详细介绍如何通过实现一个过滤器(Filter)来解决JSP页面中的字符串乱码问题。 首先,我们需要理解字符编码的基础知识。字符编码是用来表示文本的一套规则,常见的有ASCII、GBK、UTF-8等。在Web应用中,...
它确保了请求和响应数据在处理过程中使用一致的字符编码,从而避免乱码问题。本篇文章将详细探讨Java过滤器(Filter)的概念,字符编码的重要性,以及如何通过封装工具类来实现统一的字符编码。 首先,让我们理解...
在“java中用过滤器解决字符编码问题.doc”的文件中,我们可以预期会找到关于如何在Java web应用中利用过滤器(Filter)解决字符编码问题的详细步骤。过滤器是Servlet技术的一部分,可以拦截请求和响应,对数据进行...
### Servlet及JSP解决中文乱码问题 #### 一、引言 在Web开发中,中文乱码问题一直是困扰开发者的一大难题。特别是在使用Java技术栈(如Servlet与JSP)进行开发时,如果处理不当,很容易出现中文字符显示乱码的情况...
本文将详细讲解如何通过设置字符编码过滤器(`SetCharacterEncodingFilter`)来解决这一问题,同时深入理解字符编码的原理以及在实际应用中的配置方法。 字符编码是计算机处理文本的一种方式,它将字符与数字对应...
解决这个问题的一种常见方法是使用Filter过滤器。以下是配置Filter过滤器处理JSP中文乱码的详细步骤: 1. **配置web.xml文件** 在项目的`web.xml`文件中,你需要添加一个Filter来定义处理乱码的逻辑。首先,声明一...
这个问题的出现通常是由于字符编码不一致导致的,而过滤器(Filter)作为一种强大的工具,可以有效地帮助我们解决这个问题。本文将详细讲解如何利用过滤器来解决JavaWeb中的乱码问题。 首先,我们需要理解JavaWeb中...
- **乱码问题**:如果设置了正确的字符编码后仍然出现乱码,可能是其他地方也涉及到了字符编码的转换,如数据库连接、JSP页面编码等。需要检查整个流程中的所有编码设置是否一致。 - **多浏览器兼容性**:不同的...
本文将围绕如何解决J2EE中的字符编码问题展开讨论,包括了解字符编码的基础概念、如何在Servlet过滤器中设置字符编码以及如何在`web.xml`配置文件中进行相关设置。 #### 一、字符编码基础概念 字符编码是将字符...
本篇将详细梳理Java中的字符编码相关知识点,帮助开发者解决实际工作中遇到的各种乱码问题。 #### 二、基础知识 1. **编码与解码** - **编码**:将字符转换为字节序列的过程。 - **解码**:将字节序列转换为字符...
在这个例子中,我们使用正则表达式移除了尖括号、双引号、单引号和百分号这些可能引发安全问题的字符。 三、文件过滤器与图片过滤器 除了字符过滤,还有针对文件和图片的过滤。文件过滤通常涉及上传文件时的类型...
本篇将详细探讨"编码过滤通用类",以及如何使用它来解决JSP页面的乱码问题。 首先,让我们了解什么是乱码问题。在Web开发中,当文本在不同的字符编码之间不正确地转换时,就会出现乱码。常见的例子是,服务器使用...
在开发Java Web应用程序时,JSP(JavaServer Pages)页面经常遇到字符编码问题,导致页面显示乱码。本文将深入探讨“JSP乱码”的多种解决方案,并提供实用的解决策略。 1. **理解字符编码的基本概念** - 字符编码...
为了解决这个问题,`JSP` 提供了过滤器(Filter)机制,尤其是针对编码问题的过滤器,以确保数据在处理和显示时保持正确的格式。 过滤器是Servlet API的一部分,定义在`javax.servlet.Filter`接口中。它们在请求被...
使用过滤器可以有效地解决乱码问题,因为它可以统一处理所有请求和响应的字符编码设置。 #### 四、实现步骤 ##### 4.1 编写过滤器处理类 首先,需要创建一个过滤器类`CharsetFilter`,该类实现了`javax.servlet....
jsp中文乱码问题解决 jsp中文乱码问题是jsp开发中常见的问题...jsp中文乱码问题可以通过修改jsp页面的编码方式、修改Tomcat的server.xml文件、编写Filter、使用jdk的native2ascii工具、配置数据库连接池等方法来解决。
我们可以在Filter中设置HttpServletRequest的字符编码,这样在读取请求参数时,会自动使用指定的编码进行转换。 三、页面缓存控制 页面缓存可以提高Web应用的性能,减少服务器负载。通过Filter,我们可以控制哪些...