2010-05-03 16:44:15| 分类: WAP |字号 订阅
wml有两个版本;1.0,2.0
1.0 在JSP中,使用如下
<%@page contentType="text/vnd.wap.wml; charset=gb2312"%>
或者
<%@page contentType="text/vnd.wap.wml; charset=gb2312"%> //这里不能换行
否则,使用Opera浏览器浏览无法按wml进行解析浏览
wml的content-type为:text/vnd.wap.wml
mime类型:application/vnd.wap.wml
或者在web.xml中进行全局设置:
public class SetContentTypeFilter implements Filter {
private String contentType;
private String encoding;
public void init(FilterConfig filterConfig) throws ServletException {
contentType = filterConfig.getInitParameter("contentType");
encoding = filterConfig.getInitParameter("encoding");
}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException,
ServletException {
HttpServletRequest httpServletRequest = (HttpServletRequest) request;
HttpServletResponse httpServletResponse = (HttpServletResponse) response;
httpServletRequest.setCharacterEncoding(encoding);
httpServletResponse.setContentType(contentType);
httpServletResponse.setCharacterEncoding(encoding);
chain.doFilter(httpServletRequest, httpServletResponse);
}
public void destroy() {
}
}
web.xml
注:若使用了struts2+freemarker,必须设置freemarker result-type 的 content-type="text/vnd.wap.wml",否则freemarker默认会使用text/html,即使设置了过滤器也无效
2.0 在JSP中,使用如下
一个web应用同时使用1.0,2.0
使用不同的前缀(如/v1,/v2)来区分两个版本的访问,然后使用过滤器对每个版本统一处理