[摘要]content != null && content.toLowerCase().startsWith("application/x-www-form-urlencoded...
content != null && content.toLowerCase().startsWith("application/x-www-form-urlencoded"))
request.setAttribute(PARAMS_ATTR_NAME,new UTF8ParameterReader((HttpServletRequest)request));
super.service(request,response);
}
}
这个就是Servlet基类,它覆盖了父类的service方法,在调用父类service前,创建了UTF8ParameterReader对象,其中保存了form中提交的信息。然后把这个对象作为一个Attribute保存到Request对象中。然后照样调用父类的service方法。
对于继承这个类的Servlet,要注意的是,"标准"getParameter在也不能读到post的数据,因为在这之前这个类中已经从ServletInputStream中读出了数据了。所以应该使用该类中提供的getParameter方法。
剩下的就是输出问题了,我们要把输出的信息,转为UTF8的二进制流输出。只要我们设置Content-Type时指定charset为UTF8,然后使用PrintWriter输出,那么这些转换是自动进行的,Servlet中这样设置:
response.setContentType("text/html;charset=UTF8");
Jsp中这样设置:
<%@ page contentType="text/html;charset=UTF8"%>
这样就可以保证输出是UTF8流,客户端能否显示,就看客户端的了。
关键词:Servlet、Jsp中的多国语言显示