手机
当前位置:查字典教程网 >编程开发 >JSP教程 >JSP 中文字符处理代码
JSP 中文字符处理代码
摘要:网上处理方法一箩筐,下面说说我用过的两种有效地解决办法.1.为程序编写一个字符串处理函数,用一个静态文件保存,在需要处理中文字符的JSP页面...

网上处理方法一箩筐,下面说说我用过的两种有效地解决办法.

1.为程序编写一个字符串处理函数,用一个静态文件保存,在需要处理中文字符的JSP页面中包含它,

复制代码 代码如下:

<%!

public String codeToString(String str)

{

String s=str;

try

{

byte temp[]=s.getBytes("ISO-8859-1");

s=new String(temp);

return s;

}

catch(Exception e)

{

return s;

}

}

%>

要转换时只需:coedeToString(request.getParameter(..));就可以了,很好用的。

2.一种普遍适用的方法,加一个过滤器,之后就可以过上一劳永逸的日子了。

复制代码 代码如下:

package filters;

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;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletRequestWrapper;

public class TomcatFormFilter implements Filter {

/**

* Request.java

* 对 HttpServletRequestWrapper 进行扩充, 不影响原来的功能并能提供所

有的 HttpServletRequest

* 接口中的功能. 它可以统一的对 Tomcat 默认设置下的中文问题进行解决而只

需要用新的 Request 对象替换页面中的

* request 对象即可.

*/

class Request extends HttpServletRequestWrapper

{

public Request(HttpServletRequest request) {

super(request);

}

/**

* 转换由表单读取的数据的内码.

* 从 ISO 字符转到 GBK.

*/

public String toChi(String input) {

try {

byte[] bytes = input.getBytes("ISO8859-1");

return new String(bytes, "GBK");

}

catch (Exception ex) {

}

return null;

}

/**

* Return the HttpServletRequest holded by this object.

*/

private HttpServletRequest getHttpServletRequest()

{

return (HttpServletRequest)super.getRequest();

}

/**

* 读取参数 -- 修正了中文问题.

*/

public String getParameter(String name)

{

return

toChi(getHttpServletRequest().getParameter(name));

}

/**

* 读取参数列表 - 修正了中文问题.

*/

public String[] getParameterValues(String name)

{

String values[] =

getHttpServletRequest().getParameterValues(name);

if (values != null) {

for (int i = 0; i < values.length; i++) {

values[i] = toChi(values[i]);

}

}

return values;

}

}

public void destroy() {

}

public void doFilter(ServletRequest request, ServletResponse

response,

FilterChain chain) throws IOException, ServletException {

HttpServletRequest httpreq = (HttpServletRequest)request;

if(httpreq.getMethod().equals("POST")) {

request.setCharacterEncoding("GBK");

} else {

request = new Request(httpreq);

}

chain.doFilter(request, response);

}

public void init(FilterConfig filterConfig) throws

ServletException {

}

}

当然要记得改下web.xml

复制代码 代码如下:

<filter>

<filter-name>TomcatFormFilter</filter-name>

<filter-class>filters.TomcatFormFilter</filter-class>

</filter>

<filter-mapping>

<filter-name>TomcatFormFilter</filter-name>

<url-pattern>/*</url-pattern>

</filter-mapping>

上面两种方法都测试过了,比较好用,以后发现新的,会再更新哦~

【JSP 中文字符处理代码】相关文章:

JSP中实现301重定向的代码

JSP抓取网页代码的程序

jsp中URL传递中文参数的处理方法

Java2下Applet数字签名

Java中对HashMap的深度分析

JAVA中去掉字符串空格各种方法

jsp页面间传中文参数示例(页面传参数编码)

jsp Hibernate批量更新和批量删除处理代码

JScript中正则表达式用法详解

java tapestry5 布局 参数的处理

精品推荐
分类导航