欢迎来到天天文库
浏览记录
ID:8981335
大小:52.50 KB
页数:8页
时间:2018-04-13
《websphere和tomcat的区别》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、(一)JSP的中文乱码问题 其根源在于:Web容器(Tomcat)默认的字符处理编码是iso-8859-1,对于需要在浏览器页面上显示中文的JSP程序, 但在程序中并没有指定中文的字符集,那么中文将在浏览器页面上显示为乱码。当然,前面所说的是指在Tomcat服务器下的,其他服务 器有些不是这样的,比如BEAWeblogic和IBMWebsphere是从操作系统中取得默认的编码,然后按该编码来转码所有用户请求.Struts中 文问题有三种:发送请求时的中文问题、处理响应结果的中文问题和国际化资源文件的中文
2、问题。 1.发送请求时的中文问题 客户机向服务器发送请求时,根据所使用浏览器的不同可能会有不同的编码形式。不过通常情况下在请求到达Web容器前要将之转码, 转成某种固定的编码以方便Web应用的处理。这种问题有三种处理方法: 第一种(针对Tomcat5对POST请求有效,GET请求无效,因为Tomcat5对POST和GET请求时分别处理的)可以采用设置用户请求对象的编码形式,也就是以HttpServletRequest对象的编码的形式来进行用户请求的转码: //将用户请求转码为GB2312、GB1803
3、0、GBK、UTF-8等型,具体转为什么类型的编码以您的jsp文件的编码方式为准,java、jsp、js、css应保持一致的编码方式。这里以GBK为例。 request.setCharacterEncoding("GBK"); 第二种(对GET请求有效),可以在Servlet中对用户输入的数据进行转码。Web容器接受到一个请求时,它会将它发往某个处理的Servlet。在Servlet中直接获取用户请求的数据,然后将之转码为需要的格式,例如把数据转换为GBK格式: Stringusername=request.
4、getParameter("username"); username=newString(username.getBytes("iso-8859-1”),"GBK"); 以上两种方法都是很常用的,但第一种是每个页面都要去修改,当JSP页面很多时比较麻烦,第二种就每个发送的数据都要转码,也很麻烦。 第三种,就是采用Filter过滤器方式,将用户的所有请求都通过过滤器进行转码,这种方法就克服了以上两种方法的缺点。代码如下: publicvoiddoFilter(ServletRequestrequest,Se
5、rvletResponseresponse, FilterChainchain)throwsIOException,ServletException{ request.setCharacterEncoding("GBK"); //response.setContentType("text/html;charset=GBK"); chain.doFilter(request,response); } 这里转码为GBK过滤器的主要代码,当然还要把这个类要在web.xml文件中部署。 2.处理响应结
6、果的中文问题 响应的结果包括Servlet、JSP和HTML三种情况,可以通过以下方式设置响应结果编码: 对于Servlet,可以在Servlet中为其设置响应代码类型,代码如下: response.setContentType("text/html;charset=GBK");也可把这句加到上面的Filter中,如注释掉的部分。 有人说用response.setCharacterEncoding("GBK");无效,必须用response.setContentType("text/html;charse
7、t=GBK");本人没试过。 对于JSP,是比较方便的,只需要在JSP最前部分按如下方式声明: <%@pagecontentType="text/html;charset=GBK"%> 对于HTML,其和JSP文件基本类似,也是在页面最前部分按如下方式声明:
8、论是Action、ActionForm还是JSP都可以访问这些包中的资源。资源包就是由扩展名为.properties的文件组成的一组具有相同前缀的文件,如ApplicationResources_zh_CN.properties、ApplicationResources_zh.properties和Applicati
此文档下载收益归作者所有