对WAP感兴趣,是从大一上学期刚开通手机wap包聊QQ和玩泡泡吧的时候;后来,又玩了一下wap的网游。呵呵,真神奇呀。
  
  今天下午才开始接触WAP技术,从WAP的基本协议开始,到WAP的基本原理,以及WAP的发展历史、现状,哎呀呀,头都看大了。后来终于看到正题了,大概学了一下WML和WMLScript,并且安装了EasyPad WAPtor和WinWAP玩,嘿嘿,发现还不错!好玩,又简单。

  虽然从中午开始就几乎没吃饭,但依旧兴致勃勃。天黑了,找到了一个网站,http://www.wapkf.com,叫“wap开发网”,发现原来wap项目竟然还可以用我熟悉的.net平台来开发! 哈哈,爽也!我一口气拜读完了"wap asp.net开发教程"区内的所有文章,并且自己动手试了很多东西。

  主要有有两点体会:

  (1 )用.net平台开发wap项目是相当简单的,你甚至可以根本不知道什么是WML! 而且.net平台可以根据浏览器不同生成的返回数据,也就是说,同一个项目,用手机看和用IE看都能看到!这是其他开发平台无法做到的!(个人猜测:至少用asp和php做的wap项目不行,比如http://wap.qq.com或者http://wap.wappp.com/,用手机和IE访问到的是两套完全不同的程序。) 比如http://wap.sswww.cn/这个网站,它肯定就是.net做的嘛!.net让wap项目的开发变得如此简单,我心里面都开始有点磨刀霍霍了。

  (2 ).net 的wap程序和一般的asp.net程序最大的一个不同点,就是在一个页面内可以设置多个Form——这样设计应该是为了节约网络传输。这是一个相当好玩的功能,酷死了!我甚至在想,会不会一个简单的wap网站就用一个aspx文件就能够做出来……

  真是越学越有劲,没想到.net平台上的wap这么容易就可以上手。这时我开始搜寻网上的一些用.net开发的wap程序源码。我才发现,网上基于.net的wap程序根本就很少。难道这种技术才起步?  而以asp或者php写的wap程序就相当地多,连论坛、blog、商城这种大型的程序都做出来了,而且相当精致和完善。.net平台就似乎受到很严重的冷落了。

  好不容易找到了几套.net的wap程序(估计都把baidu可以搜到东西找完了,一共就七八个这样的程序源码吧),其中有些还是编译好了.dll的,有点儿郁闷。但是还好了,皇天不负有心人,我还是找到了一套称心如意的程序源码——一个留言本程序,而且真的被我猜中的!这套程序果然就只有一个aspx页面!

  还好我有足够牢固的.net基础,虽然程序是用VS2003+VB写的(现在流行VS2005+C#),而且还有少量的语法错误,但是我很快就调试好了~~ 哈哈,激动,然后就开始一个文件一个文件地、一行一行地读代码了。

  主要的数据库操作过程写在了一个叫“Bikewap”的类里面,并在index.asp.vb里面将之实例化。读取和删除数据过程没什么好说的,很常见。有一个函数比较有创意,就是替换留言里的非法字符,避免可能遇到的sql注入攻击等潜在的隐患。摘录如下:

'替换特殊字符
   
     Public Function ReplaceSpecficChar(ByVal StrSource As String)
        StrSource = Replace(StrSource, "<", "<")
        StrSource = Replace(StrSource, ">", ">")
        StrSource = Replace(StrSource, "'", "&apos;")
        StrSource = Replace(StrSource, """", """)
        StrSource = Replace(StrSource, "&", "&")
        Return StrSource
    End Function

  然后就到精彩部分了!由于该程序一共只有一个aspx页面,所以作者也利用.net wap页面的特性,在这个页面里使用了三个不同的Form,把留言本的所有操作都囊括在内了,并且很灵活地切换,非常精妙和精悍!

  如下

Code
 1<%@ Register TagPrefix="mobile" Namespace="System.Web.UI.MobileControls" Assembly="System.Web.Mobile" %>
 2
 3<%@ Page Language="vb" AutoEventWireup="false" Inherits="BicyleWap.MobileWebForm1" trace="False" CodeFile="index.aspx.vb" CodeFileBaseClass="System.Web.UI.MobileControls.MobilePage" %>
 4
 5<html>
 6
 7<HEAD>
 8
 9<meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR"/>
10
11<meta content="Visual Basic .NET 7.1" name="CODE_LANGUAGE"/>
12
13  
14
15</HEAD>
16
17<body><mobile:form id="FrmMain" title="留言列表" Paginate="True" runat="server">
18
19<mobile:Image id="ImageLogo" runat="server" ImageUrl="images\bikelogo.png"></mobile:Image>
20
21<mobile:List id="NewList" runat="server" Decoration="Bulleted" ItemsPerPage="10" onItemCommand="OnItemSelection"></mobile:List>
22
23<mobile:Link id="Link3" runat="server" NavigateUrl="#frmNewMessage">我要留言</mobile:Link>
24
25<mobile:Link id="Link4" runat="server" NavigateUrl="#frmMain">回首页</mobile:Link></mobile:form><mobile:form id="FrmMessageView" title="查看留言" Paginate="True" runat="server">
26
27  <mobile:Label id="LabMessageTitle" runat="server" Wrapping="Wrap"></mobile:Label>
28
29  <mobile:Label id="LabPersonName" runat="server" Wrapping="Wrap"></mobile:Label>
30
31  <mobile:Label id="LabEmail" runat="server" Wrapping="Wrap"></mobile:Label>
32
33  <mobile:Label id="LabAddTime" runat="server" Wrapping="Wrap"></mobile:Label>
34
35  <mobile:Label id="LabMessageContent" runat="server" Wrapping="Wrap"></mobile:Label>
36
37  <mobile:Link id="Link5" runat="server" NavigateUrl="#frmNewMessage">我要留言</mobile:Link>
38
39  <mobile:Link id="Link1" runat="server" NavigateUrl="#frmMain">返回上级</mobile:Link>
40
41</mobile:form><mobile:form id="FrmNewMessage" title="填写留言" runat="server">
42
43  <mobile:Label id="Label1" runat="server" Wrapping="Wrap">留言标题</mobile:Label>
44
45  <mobile:TextBox id="TxtMessageTitle" runat="server"></mobile:TextBox>
46
47  <mobile:RequiredFieldValidator id="RFVMessageTitle" runat="server" ControlToValidate="TxtMessageTitle" ErrorMessage="请填写留言标题"></mobile:RequiredFieldValidator>
48
49  <mobile:Label id="Label2" runat="server" Wrapping="Wrap">留言内容</mobile:Label>
50
51  <mobile:TextBox id="TxtMessageContent" runat="server"></mobile:TextBox>
52
53  <mobile:RequiredFieldValidator id="RFVMessageContent" runat="server" ControlToValidate="TxtMessageContent" ErrorMessage="请填写留言内容"></mobile:RequiredFieldValidator>
54
55  <mobile:Label id="Label3" runat="server" Wrapping="Wrap">您的昵称</mobile:Label>
56
57  <mobile:TextBox id="TxtPersonName" runat="server"></mobile:TextBox>
58
59  <mobile:RequiredFieldValidator id="RFVPersonName" runat="server" ControlToValidate="TxtPersonName" ErrorMessage="请留下您的昵称"></mobile:RequiredFieldValidator>
60
61  <mobile:Label id="Label4" runat="server" Wrapping="Wrap">您的邮箱</mobile:Label>
62
63  <mobile:TextBox id="TxtEmail" runat="server"></mobile:TextBox>
64
65  <mobile:RegularExpressionValidator id="RegularExpressionValidator1" runat="server" ControlToValidate="TxtEmail" ErrorMessage="请正确输入Email地址"
66
67   ValidationExpression="\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"></mobile:RegularExpressionValidator>
68
69  <mobile:Command id="CmdSubmit" runat="server" Format="Link">提交留言</mobile:Command>
70
71  <mobile:Link id="Link2" runat="server" NavigateUrl="#frmMain">查看留言</mobile:Link>
72
73</mobile:form><mobile:form id="FrmSuccess" title="留言成功" runat="server">
74
75  <mobile:Image id="Image1" runat="server" ImageUrl="images\bikelogo.png"></mobile:Image>
76
77  <mobile:Label id="Label5" runat="server" Wrapping="Wrap">恭喜您,留言成功!</mobile:Label>
78
79  <mobile:Link id="Link6" runat="server" NavigateUrl="#frmMain">查看留言</mobile:Link>
80
81  <mobile:Link id="Link7" runat="server" NavigateUrl="#frmNewMessage">继续留言</mobile:Link>
82
83</mobile:form>
84
85</body>
86
87</html>
88
89

  注意这样格式的NavigateUrl :"#frmMain",这便是灵活跳转Form的方法,并且在index.aspx.vb里面设置活动Form的页面属性,比如ActiveForm = FrmSuccess。很类似一般.aspx页面里面的pannel,但是比pannel高级和方便多了,呵呵~

  另外,在index.aspx.vb里面,作者也定义了几个对页面控件操作的函数,和普通的.net项目一样,没什么好说的。
    
  就这样寥寥几行代码,就完成了一个留言本,不仅可以用IE直接浏览,而且还是可以在手机上浏览的wap程序。
   
  最后附上该程序在winWAP下运行的截图(注意不是IE哦,winWAP上看到的是手机上看到的效果):     

转载于:https://www.cnblogs.com/leilei821006/archive/2008/12/30/1364891.html

【转载】一天之内上手.Net+WAP项目相关推荐

  1. 『转载』Debussy快速上手(Verdi相似)

    『转载』Debussy快速上手(Verdi相似) Debussy 是NOVAS Software, Inc(思源科技)发展的HDL Debug & Analysis tool,这套软体主要不是 ...

  2. 电商导购CPS,这是最容易上手的创业项目了吧

    电商导购CPS,这是最容易上手的创业项目了吧 前段时间写了个外卖cps小程序,并开源了代码,源码在这里 零基础,搞外卖CPS小程序副业,附源码 ,有需要的小伙伴自取,可以结合这篇文章 外卖CPS小程序 ...

  3. Python做web开发,推荐几个能立马上手的小项目

    Python这门优美的语言是非常适合web开发的,基于Python的Django框架简单便捷且很强大. 那么作为新手该如何上手这门语言?一切不敲代码的学编程手段都是扯淡,今天就推荐一些适合新手练手的P ...

  4. 【转载】JAVAEE之内置对象和属性范围

    原文:JAVAEE之内置对象和属性范围 内置对象和属性范围 ​ 四种属性范围 ​ 九个内置对象 1.内置对象 如果说想要使用一个对象,必须new 出来,但是在我们的jsp操作中,发现我们使用过的out ...

  5. Android SDK上手指南:项目清单

    在本系列教程当中,我们将共同从零开始学习Android开发,同时了解与这套移动平台协作所必需的基础概念及实践.到目前为止,我们已经熟悉了Android项目中的各个组成部分,包括其资源.在今天的文章中, ...

  6. 【JavaWeb篇】快速上手Tomcat|实战项目详解

    作者主页:橙子! 主页 系列专栏:JavaWeb基础教程系列 精彩回顾:HTTP协议详解 文章目的:Web服务器TomCat的使用以及配置问题 文章目录 前言 1.Web服务器 2.Tomcat简介 ...

  7. Java初学者轻便易于上手的小项目(2020最新)

    对于很多朋友来说,Java是学习编程的开始,也有很多朋友希望通过Java可以找到工作,那么当我们学习了Java的基础知识之后,我们急需要一些项目去帮我们整理一下自己学习的知识点以及提高一下编程能力,对 ...

  8. 快速上手Django(一) 项目结构、开发环境、开发流程、视图、视图集

    文章目录 一.Django 基础 1. django 项目的目录结构 2. 开发环境(Pycharm 启动django) 1)先找到mange.py 2)项目配置远程python解释器 3)点击`ed ...

  9. uni-app打包pc web H5 wap项目注意事项

    近日做了一个公司的管理系统wap站,我开发是使用的UNI-APP + color UI,下面详细说说打包上线注意的相关事项. 右击项目目录 选择 发行 > 网站PC web 或手机H5(仅适用u ...

最新文章

  1. 手动部署OpenStack环境(六:出现的问题与解决方案总结)
  2. 寒武纪开盘暴涨350%,市值突破1000亿,85后创始人身家超300亿!千亿盛宴背后隐忧不可忽视!...
  3. golang中的http服务器
  4. centos7 通过脚本查询每个应用使用的内存
  5. cad修改快捷键_超全CAD快捷键命令汇总!助你成为CAD大神!
  6. 汽车行业中的AUTOSAR与OSEK到底是什么,有什么区别
  7. 在扩展Spock时输出给定值
  8. TensorFlow第三步 :单层网络-Mnist手写数字识别
  9. 369寝室(数组、模拟)
  10. C++新特性探究(五):for循环、范围for语句
  11. ZOJ 3981 2017CCPC秦皇岛 A:Balloon Robot
  12. mysql查询未讲课教师_经典教师 学生 成绩sql面试题再次来袭3(附答案)
  13. 详解CSS中:nth-child的用法
  14. WSO2学习笔记(一)
  15. 什么叫wipe,安卓用户如何去wipe?
  16. SAS实验2——假设检验
  17. 转: 给大家提供3款LOGO制作软件
  18. 【日志】ubuntu16.04连接不上Logitech M590蓝牙鼠标(亲测可用)
  19. 2019/5/第二周
  20. 【钉钉】通过钉钉机器人抓取群消息

热门文章

  1. freebsd下支持LATEX书写数学公式的网站搭建
  2. ajax传json格式数据
  3. php微信段子,年度挤进前十名的微信段子,笑死了
  4. 网络协议:HTTPS
  5. Spark源码分析之HashShuffle读写流程
  6. Spark源码分析之Master主备切换机制
  7. (43)VHDL实现译码器与解码器
  8. (45)FPGA条件编译(选择模块)
  9. c语言中index函数,MATCH+INDEX函数详解
  10. 如何解锁excel表格保护_Excel表格技巧—如何计算矩阵相乘