您现在的位置:计算机技术学习网 > 技术中心 > WEB编程 > JSP >

jsp开发wap注意事项

来源:网络 责任编辑:栏目编辑 发表时间:2013-07-01 11:29 点击:

JSP中中文的解决:
中国移动加入以下几句后,页面中可以直接写中文,不用转换,提交的中文直接request.getParameter("")获得,不用转换
Java代码 
<%@ page contentType="text/vnd.wap.wml;charset=gb2312"%>  
<%response.setContentType("text/vnd.wap.wml;charset=UTF-8");%>  
<%request.setCharacterEncoding("UTF-8");%>  
中国联通加入以下几句后,页面中可以直接写中文,不用转换,提交的中文直接request.getParameter("")获得,不用转换
Java代码 
<%@ page contentType="text/vnd.wap.wml;charset=gb2312"%>  
<%request.setCharacterEncoding("UTF-8");%>  

操作系统win2000,Web Server resin(或tomcat)
都是从实践中摸索出来的,业务已上线,没问题。

本人解决方案:
(1)在wml文件中定义为:
Java代码 
<?xml version="1.0" encoding="UTF-8"?>  
(2)对提交数据采用post传递
Java代码 
<go href="/wapapp/servlet_wap" method="post">  
<!-- go href="/servlet/wap86test" -->  
<postfield name="serviceID" value="0002"/>  
<postfield name="phone" value="$(phone:e)"/>  
<postfield name="passwd" value="$(passwd:e)"/>  
</go>  
(3)后台转换
移动——>
在servlet里面的doget和dopost方法设置
Java代码 
request.setCharacterEncoding("UTF-8");  
response.setContentType(Const.CONTENT_TYPE);//Const.CONTENT_TYPE为:text/vnd.wap.wml;charset=UTF-8  

①post提交处理表单:
一般都是直接request.getParameter("xxx")取过来的就是中文了,不需要再进行转码;
如增加成员
增加成员的post代码为:
Java代码 
<do type="accept" label="确定"><go href="/wapapp/servlet_wap" method="post" >  
<postfield name="serviceID" value="0207"/>  
<postfield name="groupname" value="按时的发射点222"/>  
<postfield name="groupcode" value="4"/>  
<postfield name="aphone" value="$aphone"/>  
<postfield name="aname" value="$(aname:e)"/>  
</go></do>  
在处理编号为”0207“的程序块中,对获得的参数是这样来处理的
Java代码 
String groupcode = request.getParameter("groupcode");  
String groupName = request.getParameter("groupname");  
String ctcPhone = request.getParameter("aphone");  
String ctcName = request.getParameter("aname");  
ctcName = ctcName.replaceAll(" ", "");  
ctcName = ctcName.replaceAll(" ", "");  

if (!UserType.equals(SysChinaMobile)) {//移动的话直接getparameter的就是中文,而联通的却不是,所以需要转码
Java代码 
try {  
groupName = WapUtil.decode(groupName, "UTF-8");  
ctcName = WapUtil.decode(ctcName, "UTF-8");  
} catch (Exception e) {  
e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.  
out.println(returnPrevPage(strErrosOnServerCallAdmin));  
}  
}  

②get提交的url参数:
如果是通过get方式,或者是通过url来传递参数的话就不能用decode这个方法来实现转码,而是用togbk这个方法来实现;
而且如果是在servlet里面打印wml页面,码制转换也只能用togbk这个方法;
如:显示个组信息首页面<

    相关新闻>>

      发表评论
      请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
      用户名: 验证码:点击我更换图片
      最新评论 更多>>

      推荐热点

      • JSP与Servlet
      • 自己动手写MiniBBS系列(基本篇)之用户登录
      • JSP取当前日期
      • JDBC 入门(一)
      • 打开一个jsp页面默认查询所有数据,调用action
      • 使用JSP标签库验证用户的输入(2)完
      • 自定义JSP标签(tag)浅议
      • WIN98/2000下的jsp服务器
      • JSP内建对象(二)
      网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
      Copyright © 2008-2015 计算机技术学习交流网. 版权所有

      豫ICP备11007008号-1