开发wap项目随笔
很久没有开发wap项目了,上一次开发wap项目还是03年非典的时候,开发的一款社区游戏。最近由于项目需要,临时又客串了一次waper,虽然开发周期很短,不到二周,但是还是学到了一些东西。
1.项目在开发中并没有遇到太多困难,但是测试的时候,由于多普达(dopod)c730的不兼容性,首页访问时就报错,曾一度无计可施。最后发现是空格的问题,根据空中网资深waper的说法,只要在一开始页头没有空格,制表符等字符,任何机型应该都可以正确显示,修改之,发现完全正确。
下面是页头的正确显示,在开发时使用了一个header.jsp页面,每个页面都需要引用它,header.jsp的页头大致显示如下:
<%@ page language="java" contentType="text/vnd.wap.wml;charset=UTF-8"%><?xml version="1.0" encoding="UTF-8"?><!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml"><%@page import = "java.util.Date, java.text.SimpleDateFormat, java.util.Enumeration, java.util.regex.Matcher, java.util.regex.Pattern, org.apache.log4j.Logger, org.springframework.web.context.support.WebApplicationContextUtils" %><%! final static Logger logger = Logger.getLogger("web");... ... /** * 此方法过滤字符串中的引用图片的标签<img * 代之以[图片不能显示] */ String flushImg(String sourceStr){ if(sourceStr == null || "".equals(sourceStr.trim())){ return null; } sourceStr = sourceStr.toLowerCase(); if(sourceStr.indexOf("<img") == -1){ return sourceStr; } String res = ""; int prefix = -1; while((prefix = sourceStr.indexOf("<img")) != -1){ String tempStr = sourceStr.substring(prefix); sourceStr = sourceStr.substring(0,prefix); int suffix = tempStr.indexOf(">"); if(suffix != -1){ sourceStr = sourceStr.concat("[图片不能显示]"); tempStr = tempStr.substring(suffix+1); sourceStr = sourceStr.concat(tempStr); res = sourceStr; } } return res; } /** * 过滤字符串中的html标签,在网上查了半天正则,最后还是自己修改出来了 * 一个基本没有bug的正则,今后大家google不用担心了,呵呵 */ String filterHtml(String str) { if(str == null || "".equals(str)){ return ""; } String regxpForHtml = "<([a-zA-Z/])([^>]*)>"; Pattern pattern = Pattern.compile(regxpForHtml); Matcher matcher = pattern.matcher(str); StringBuffer buffer = new StringBuffer(); boolean result1 = matcher.find(); while (result1) { matcher.appendReplacement(buffer, ""); result1 = matcher.find(); } matcher.appendTail(buffer); return buffer.toString(); }