国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

WAP手機上的問卷調查系統的構建

2019-11-18 12:47:24
字體:
來源:轉載
供稿:網友

  普通的網頁問卷調查系統大家一定都見過,但是大家有沒有試過在WAP上進行問卷調查呢?估計大部分的朋友都沒有見過,那就讓我們來寫一個吧!
  想一想怎么實現這個系統呢?首先建立一個頁面,顯示將就哪一個問題進行調查或投票,一般是出現一個復選框,給出問題和若干選項,服務器收集投票,存入日志文件或存入數據庫,并能顯示問卷調查結果,這就是一個問卷調查系統的構思。其實在WAP手機上也同樣用這種思想來構建問卷調查系統,但是必須顧及手機的特點:顯示面積小,且要結合WML編程。
  我在下面給出了一個相當簡單的手機問卷調查系統的java Servlet編寫的,為了簡單起見我沒有使用數據庫而是使用了一個日志文件存放投票信息,其實這個程序的主要目的還是為了讓大家看看Java編程的思想,就是結構化和可重用性。
  現在我把這個程序的使用方法介紹一下,編譯程序WapVoteServlet.class以后,放入運行的Java Servlet目錄下。你可以使用自己的WML素材來編寫WML頁面,只是把WapVoteServlet作為存儲和瀏覽結果的一段腳本程序;當然,假如你對WML不是非常熟悉的話,你也可以用本程序來生成調查問卷。下面我將就第二種用法來介紹,第一種用法請朋友們自己參閱WML相應的資料。
  用法是: http://your_wap_host/servlet/WapVoteServlet?config=config_file ?act=vote
  用于提交投票或調查選項   http://your_wap_host/servlet/WapVoteServlet?config=config_file ?act=log
  用來顯示投票或調查結果 http://your_wap_host/servlet/WapVoteServlet?config=config_file ?act=view
  用來生成調查,可以完全不知道如何編寫WML
  配置文件中的參數的詳解:
  log=your_file_is_here
  log文件是用來存儲投票或調查結果的文件,這個參數是強制的,必須寫出它所在的路徑 after=http://your_wap_host/your_page.htm
  after為用戶提交投票或調查后所顯示的頁面,默認為當前的投票結果
  cookies=0
  使用cookie是為了防止用戶多次投票,默認值為0 即不使用cookie,cookies=1為使用
  bgcolor=#FFFFFF
  背景顏色(默認為白色)
  fgcolor=#000000
  前景顏色(默認為黑色)
  size=2
  字體大小
  face=Verdana,Arial
  默認字體
  votecolor=#FF0000
  投票結果是以棒狀圖顯示出來,所以必須定義棒的顏色
  title=Your Survey
  你的調查的標題
  options=Your option1,Your Option2,Your Option3
  你的選項如對于天極網的喜好程度“ 喜歡,比較喜歡,不喜歡 ”,這個參數是強制參數,每個選項以逗號分開column=1 選項在頁面中排列的位置 column等于1表示在同一縱列,0表示在同一行日志文件的格式是:文本文件,用逗號隔開各個不同的值,每一行包括:客戶機ip地址,日期和選項值 。
  配置文件實例:
  
    #
  
    # vote config file
  
    #
  
    log=c:/catalina/logs/votelog.txt
  
    after=c:/catalina/webapps/examples/servlet/vote.Html
  
    options=搜狐,新浪,網易
  
    column=0
  
    title=您喜歡哪一個門戶網站
  
    cookies=1
  
    bgcolor=#FFFFFF
  
    fgcolor=#000000
  
    size=2
  
    face=Verdana,Arial
  
    votecolor=#FF0000
    
  
    現在讓我們來看一看源程序吧:
  
  
    import java.io.*;
  
    import java.util.*;
  
    import javax.servlet.*;
  
    import javax.servlet.http.*;
  
  
    public class WapVoteServlet extends HttpServlet
  
     {
  
      public WapVoteServlet()
  
      {
  
      }
  
    PRivate static final String CONFIG = "config";
  
    private static final String ACTION = "act";
  
    private static final String VOTE = "vote";
  
    private static final String LOG = "log";
  
    private static final String AFTER = "after";
  
    private static final String VIEW = "view";
  
    private static final String COOKIES = "cookies";
  
    private static final String BGCOLOR = "bgcolor";
  
    private static final String FGCOLOR = "fgcolor";
  
    private static final String SIZE = "size";
  
    private static final String FACE = "face";
  
    private static final String TITLE = "title";
  
    private static final String COLUMN = "column";
  
    private static final String VOTECOLOR = "votecolor";
  
    private static final String DEFBGCOLOR = "#FFFFFF";
  
    private static final String DEFFGCOLOR = "#000000";
  
    private static final String DEFVOTECOLOR = "#FF0000";
  
    private static final String DEFCOOKIES = "0";
  
    private static final String DEFCOLUMN = "1";
  
    private static final String DEFTITLE = "A Free & Simple Vote System";
  
    private static final String OPTIONS = "options";
  
    private static final String EDITED = "edited";
  
    private static final String FICT = "fct";
  
    private static final String WAPVOTE = "wpv";
  
    private static final int MAX_WML = 900;
  
    private static final int MAX_VOTES = 20;
  
    private static String NEWLINE = "/n";
  
    private static Hashtable cfgs;
  
    private static Hashtable forLock;
  
    public void init(ServletConfig config)
  
    throws ServletException
  
     {
  
      super.init(config);
  
      NEWLINE = System.getProperty("line.separator");
  
      cfgs = new Hashtable();
  
      forLock = new Hashtable();
  
     }
  
    file://由于使用POST發送表單,所以現用doPost來處理POST請求
  
     public void doPost(HttpServletRequest request, HttpServletResponse response)
  
      throws ServletException, IOException
  
      {
  
       doGet(request, response); file://調用doGet去處理POST請求
  
      }
  
     public void doGet(HttpServletRequest request, HttpServletResponse response)
  
      file://用于處理GET請求
  
     throws ServletException, IOException
  
      {
  
       String s = "";
  
       String s1 = "";
  
       s = HttpUtils.getRequestURL(request).toString();//把收到的請求轉化成字符串
  
       int i;
  
       if((i = s.indexOf("?")) > 0) file://想一想為什么要這么寫?
  
       s = s.substring(0, i);
  
       s1 = request.getQueryString(); file://取的請求的字符串
  
       if(s1 == null)//假如為空,既是沒有寫上配置文件名,故要發出錯誤信息
  
        {
  
         errorMessage("不能讀到配置文件", null, request, response);
  
         return;
  
        }
  
       String s2 = getFromQuery(s1, "config=");//讀取請求中"&"后的字符串
  
       if(s2.length() == 0)
  
        s2 = s1;
  
        String s3 = getFromQuery(s1, "act=");
  
        Hashtable hashtable = getConfig(s2);//讀取配置文件
  
        if(hashtable.get("log") == null)//假如配置文件中沒有log參數,則出現錯誤信息
  
         {
  
          errorMessage("不能從你的配置文件中發現日志文件名!", hashtable, request, response);
  
          return;
  
         }
  
        if(s3.length() == 0) file://s3為act后的字符串
  
         s3 = "vote";
  
         if(((String)hashtable.get("cookies")).equals("1") && s3.equals("vote"))
  
          {
  
           Cookie acookie[] = request.getCookies(); file://設立cookie是為了防止用戶多次投票
  
           file://下面的循環是為了能找出你是否已經投過票
  
           if(acookie != null)
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 临洮县| 太仆寺旗| 河曲县| 鄂托克旗| 荔波县| 古田县| 当雄县| 新野县| 平湖市| 德令哈市| 金乡县| 昌图县| 龙江县| 宜兴市| 绥中县| 平乐县| 如皋市| 荔波县| 横峰县| 阳城县| 子洲县| 安陆市| 延安市| 汝城县| 南开区| 石楼县| 淳安县| 龙江县| 芷江| 吐鲁番市| 视频| 阿克苏市| 正安县| 大方县| 临城县| 沾化县| 陕西省| 奇台县| 宜城市| 湘潭市| 宁化县|