问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Tomcat和Websphere的区别是什么

发布网友 发布时间:2022-04-01 02:50

我来回答

1个回答

热心网友 时间:2022-04-01 04:19

一、JSP的中文乱码问题
其根源在于:Web容器(Tomcat)默认的字符处理编码是iso-8859-1,对于需要在浏览器页面上显示中文的JSP程序,

但在程序中并没有指定中文的字符集,那么中文将在浏览器页面上显示为乱码。当然,前面所说的是指在Tomcat服务器下的,其他服务

器有些不是这样的,比如BEA Weblogic和IBM Websphere是从操作系统中取得默认的编码,然后按该编码来转码所有用户请求.Struts中

文问题有三种:发送请求时的中文问题、处理响应结果的中文问题和国际化资源文件的中文问题。

1. 发送请求时的中文问题

客户机向服务器发送请求时,根据所使用浏览器的不同可能会有不同的编码形式。不过通常情况下在请求到达Web容器前要将之转码,

转成某种固定的编码以方便Web应用的处理。这种问题有三种处理方法:

第一种(针对Tomcat 5 对POST请求有效,GET请求无效,因为Tomcat 5 对POST和GET请求时分别处理的)可以采用设置用户请求对象的编码形式,也就是以HttpServletRequest对象的编码的形式来进行用户请求的转码:

//将用户请求转码为GB2312、GB18030、GBK、UTF-8 等型,具体转为什么类型的编码以您的jsp文件的编码方式为准,java、jsp 、js 、css应保持一致的编码方式。这里以GBK为例。

request.setCharacterEncoding("GBK");

第二种(对GET请求有效),可以在Servlet中对用户输入的数据进行转码。Web容器接受到一个请求时,它会将它发往某个处理的Servlet。在Servlet中直接获取用户请求的数据,然后将之转码为需要的格式,例如把数据转换为GBK格式:

String username = request.getParameter("username");

username = new String(username.getBytes("iso-8859-1”), "GBK");

以上两种方法都是很常用的,但第一种是每个页面都要去修改,当JSP页面很多时比较麻烦,第二种就每个发送的数据都要转码,也很麻烦。

第三种,就是采用Filter过滤器方式,将用户的所有请求都通过过滤器进行转码,这种方法就克服了以上两种方法的缺点。代码如下:

public void doFilter(ServletRequest request, ServletResponse response,

FilterChain chain ) throws IOException, ServletException {

request.setCharacterEncoding("GBK");

//response.setContentType("text/html;charset=GBK");

chain.doFilter(request, response);

}

这里转码为GBK过滤器的主要代码,当然还要把这个类要在web.xml文件中部署。

2. 处理响应结果的中文问题

响应的结果包括Servlet、JSP和HTML三种情况,可以通过以下方式设置响应结果编码:

对于Servlet,可以在Servlet中为其设置响应代码类型,代码如下:

response.setContentType("text/html;charset=GBK"); 也可把这句加到上面的Filter中,如注释掉的部分。

有人说用 response.setCharacterEncoding("GBK"); 无效,必须用 response.setContentType("text/html;charset=GBK"); 本人没试过。

对于JSP,是比较方便的,只需要在JSP最前部分按如下方式声明:

<%@ page contentType="text/html;charset=GBK"%>

对于HTML,其和JSP文件基本类似,也是在页面最前部分按如下方式声明:

<head>

<META HTP-EQUIV="contentType" CONTENT="text/html;charset=GBK">

</head>

3.? 国际化资源文件的中文问题

一个Struts应用程序中,可以配置多个资源包,无论是Action、ActionForm还是JSP都可以访问这些包中的资源。资源包就是由扩展名为.properties的文件组成的一组具有相同前缀的文件,如ApplicationResources_zh_CN.properties、ApplicationResources_zh.properties和ApplicationResources.properties。这些文件就构成一个Struts的资源包,它们都有一个统一的前缀ApplicationResources,凡是有相同前缀的资源文件就都属于一个包。

当用MyEclipse编写资源文件时,默认是不能保存中文的,因为默认保存编码的格式是ISO-8859-1,这就需要修改为gb2312或者gbk编码格式。Windons -->Preferences-->General -->Content Types-->Text-->Java Properties File,在最下方把其Default encoding改为"UTF-8”,然后"update”就可以保存中文了。但就这样保存的中文还是不能够在页面上使用的,因为Web容器默认是使用ISO-8859-1,也就会把中文用ISO-8859-1的格式发送给客户页面,显示的还是乱码,这就是JAVA国际化的问题。JAVA是支持unicode编码格式的,unicode是国际统一通用编码,所以不管什么格式的编码转化为unicode编码肯定不会显示乱码的。这个时候就是需要把资源文件的UTG-8编码格式转化为unicode编码格式,而SUN公司又提供了这样的一种工具。在JDK的安装目录bin下,有一个叫native2ascii可执行文件,这个是专门来进行资源文件转码的。打开cmd,进入JDK的bin目录下,把资源文件拷贝到该目录下,执行该命令。比如:

native2ascii –encoding GBK ApplicationResources.properties ApplicationResources_zh_CN.properties 就是把GBK编码格式ApplicationResources.properties转化为unicode编码格式ApplicationResources_zh_CN.properties,这样显示页面时就不会出现乱码了。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
你觉得hx100在长焦机中怎样?处于什么水平? 索尼DSC-HX100显示功能 美的kfr-51lw/ y- pa1是什么故障代码 索尼DSC-HX100V基本参数 索尼DSC-HX100显示功能 索尼DSC-HX100主要参数 金龙鱼深海鱼油好不好? Y一60C81显示E5什么故障? 索尼DSCHX100质量如何 索尼DSC-HX100存储性能 迪迦剧场版的女主芳田美代子(卡密拉) 爱迪奥特曼长谷川初范(矢的猛) 求这两人的O片,种子 瞻仰一下 奥特曼哪部最好看 迪迦奥特曼出自圆谷公司,为何都说迪迦拯救了圆谷? 请问超人迪加的女主角叫什么名字? 迪迦奥特曼女主角配音是谁 《迪迦奥特曼》中的丽娜扮演者竟然沦为岁月片演员,真是让人泪奔 迪迦奥特曼中演过Av的是谁 盘点迪迦奥特曼中的11位女配角,你觉得谁最漂亮 我想知道迪迦奥特曼这片里的些女主角的名字,要真实名字哦??#- - 嘿嘿,有几个女主角也~~ 谁有七濑丽娜的av,就是小时候看的迪迦奥特曼的女主,那是小时候的女神,听说她也拍过 迪迦奥特曼女主角叫什么美娜的真名 迪迦奥特曼中丽娜一个女生为什么动不动被外星人盯上? 奥特曼所有女主角的名字 饰演迪迦奥特曼中胜利队的队长居间惠是谁演的? 二十年过去了,迪迦奥特曼中的各位主演现在都怎么样了? 迪迦奥特曼女主扮演者 迪迦奥特曼的女朋友叫什么名字? 有谁知道迪加奥特曼中女主角的名字或介绍? 迪迦奥特曼女主角叫什么 北京市人力资源保证局 手机支架有多少种,哪种手机支架好用? 手机支架哪一种最好用? 手机支架推荐 用什么手机支架,有推荐吗 大家都用什么样式的手机支架 老司机,哪种手机支架最好用 你们心目中的手机支架都有什么优缺点? 手机支架有哪些 oppo可以录屏吗 Web服务器例如websphere、tomcat和weblogic的工作原理和流程是什么样的? 淘宝优惠券领取已达上限怎么删,谈谈我的亲 我是淘宝卖家,前几天设置的店铺优惠券如何修改或者删除啊?如图所示! 淘宝店铺优惠券为什么删不了?这是逼死强迫症吗? 录屏后在相册中再打开已录内容,点击编辑之后,对视频编辑裁剪如何... 手机录制的视频怎么剪切中间的不要的部分? 如何剪切一段录制的视频? 华为手机录屏中途如何暂停?如何剪辑视频画面多余部分 小米随星借可靠吗 正规吗? 小米随星借7000额度可以用吗 录屏怎么部分录屏?