为什么用JAVA的HTTP递交给JAVAServlet生成JSP页面的时候,中文变成乱码了,我已经用了CHARSET=UTF-8等等了

 
发表于: 2007-09-19 14:32:41 楼主
请问高手为什么用JAVA的HTTP递交给JAVAServlet生成JSP页面的时候,中文变成乱码了,我已经用了CHARSET=UTF-8等等了。
如果你用struts可以参考一下
jsp:
      <head >
       
        <title > <bean:message   key="statusercompose.application.title"   bundle="statusercompose"/ > </title >
<%
request.setCharacterEncoding("UTF-8");

//   系统的环境变量
String   path   =   request.getContextPath();
    String   basePath   =   request.getScheme()   +   "://"   +   request.getServerName()   +   ":"   +   request.getServerPort()   +   path;
    String   servletPath   =   request.getServletPath();
   
% >


<script   type="text/javascript" >

var   rootUrl=" <%=basePath% >";

//
var   GEId   =   function(eID)   {
return   document.getElementById(eID);
}


//
function   check_form(){
var   issueNo=GEId("_issueNo").value;
if   (issueNo==""){
alert("请输入期号!");
GEId("_issueNo").focus();
}else{

var   showType=GEId("showType").value;
var   province=GEId("__province").value;
var   city=GEId("__city").value;
var   county=GEId("__county").value;
GEId("proCode").value=province;
GEId("cityCode").value=city;
GEId("countyCode").value=county;

if   (showType==0){
document.forms[0].action=" <%=basePath% >/statUserCompose.do?method=getStatUserCompose_Table";
document.forms[0].submit();
}else{
document.forms[0].action=" <%=basePath% >/statUserCompose.do?method=getStatUserCompose_Chart";
document.forms[0].submit();
}

}
}


</script >


</head >
    <html:form   styleId="form1"   action="/statUserCompose"   method="post" >
    <input   type="hidden"   name="pressCode" >
    <input   type="hidden"   name="pressName" >
    </html:form >
<input   type="button"   class="bt-2ch"   name="b_query"   value="查询"   onClick="check_form();" >  
注:pressName是中文,我要把它传到后台做处理;用http参数的方式和用加过滤器的方式得到的结果都是乱码
通过用js以表单提交的方式进行处理,就不会出现乱码
 
后台:
/*以表格的方式显示*/
public   ActionForward   getUserCompose_Table(ActionMapping   mapping,   ActionForm   form,
HttpServletRequest   request,   HttpServletResponse   response)   throws   WebException{

sucForm   =   (StatUserComposeForm)   form;//   TODO   Auto-generated   method   stub

String   validYear=sucForm.getValidYear();
String   pressCode=sucForm.getPressCode();
String   pressName=sucForm.getPressName();
String   districtCode=sucForm.getDistrictCode();
String   serviceId=sucForm.getServiceId();
String   readerClass=sucForm.getReaderClass();

String   issueNo=sucForm.getIssueNo();
String   proName=sucForm.getProName();
String   cityName=sucForm.getCityName();
String   countyName=sucForm.getCountyName();


service   =   (IStatUserComposeService)   this.getService();

sucForm.setValidYear(validYear);
sucForm.setPressCode(pressCode);
sucForm.setPressName(pressName);
sucForm.setServiceId(serviceId);
sucForm.setIssueNo(issueNo);
sucForm.setProName(proName);
sucForm.setCityName(cityName);
sucForm.setCountyName(countyName);
sucForm.setDistrictCode(districtCode);

request.setAttribute("sucForm",   sucForm);

List <? >   totalList=null;


addMessage("message.common","发行量趋势分析检索完毕!");
//设置查询后的结果集
request.setAttribute("result",totalList);
return   mapping.findForward("table");
}

变量pressName得到正确结果
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值