岁月联盟 · 中国技术网 本站主页 | 安全认证 | 用户服务 | 技术论坛
新闻快报 | 新手学堂 | 黑客特区 | 程序语言 | 数 据 库 | 防 火 墙 | 路由交换 | 系统集成 | 服 务 器 | 存储备份 | 考试认证
Windows | Linux | Java | 协议分析 | 问题解答 | 进程大全 | 网页设计 | 多 媒 体 | 图库资料 | 软件下载 | 站内下载
  您现在的位置: 岁月联盟 >> Java >> J2ME >> 无线开发 >> Java正文
在Java Web框架中创建VoiceXML页面
作者:未知 文章来源:本站整理 点击数: 更新时间:2007-7-22 22:55:22
try { // Load the VXML file File vxml = new File(vxmlDir + "/" + VXML_FILENAME); FileInputStream fis = new FileInputStream(vxml); bis = new BufferedInputStream(fis); // Let the browser know that XML is coming PrintWriter out = res.getOutputStream(); res.setContentType("text/xml"); res.setContentLength((int)vxml.length()); // Output content using PrintWriter } finally { if (out != null) out.close(); if (bis != null) bis.close(); } }

    另外,不要忘记导入 java.io.PrintWriter 类:它不会自动成为对您的 servlet 的代码基可用。

    使用 PrintWriter,您现在可以输出基于字符串的内容了。例如,清单 6 输出与 清单 1 相同的 VXML,但是通过 servlet 输出,并未从静态文件载入 VXML 内容。

 

上一页  [1] [2] [3] [4] [5] [6] [7] [8] [9] 下一页  


清单 6. 动态输出 VXML

				



package com.ibm.vxml;



import java.io.BufferedInputStream;

import java.io.File;

import java.io.FileInputStream;

import java.io.IOException;

import java.io.PrintWriter;

import javax.servlet.*;

import javax.servlet.http.*;



public class DynamicVoiceXMLServlet extends HttpServlet {



  public void doGet(HttpServletRequest req, HttpServletResponse res)

    throws ServletException, IOException {



    BufferedInputStream bis = null;

    PrintWriter out = null;



    try {

      // Let the browser know that XML is coming

      out = res.getWriter();

      res.setContentType("text/xml");



      // Output VXML

      out.println("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");

      out.println("<vxml version=\"2.1\">");

      out.println(" <form><block><prompt>");

      out.println("  Things are working correctly! Congratulations.");

      out.println(" </prompt></block></form>");

      out.println("</vxml>");



    } finally {

      if (out != null) out.close();

      if (bis != null) bis.close();

    }

  }



  public void doPost(HttpServletRequest req, HttpServletResponse res)

    throws ServletException, IOException {



    doGet(req, res);

  }

}




    现在您可编译这个 servlet、向 Voxeo 注册它,并通过电话访问它,与处理 清单 1 的方法相同。现在我们来看一些示例,从而展示像 Java 这样的语言的动态编程能力。

添加时间提醒

    基于 servlet 的 VXML 输出的一项最简单的用途就是添加时间提醒。利用 Java 代码获取当前日期和时间非常轻松,因此这是个不错的起点。

    使用 Calendar 类可轻松获得一天中的具体时间(实际上,可以获得与当前日期相关的任何内容)。清单 7 给出了获得 Calendar 类新实例的代码,从而得到一天中的具体时间(以 24 小时的格式返回),然后根据这个时间组合出一条简单的欢迎词。


清单 7. 动态输出 VXML

				



package com.ibm.vxml;



import java.io.BufferedInputStream;

import java.io.File;

import java.io.FileInputStream;

import java.io.IOException;

import java.io.PrintWriter;

import java.util.Calendar;

import javax.servlet.*;

import javax.servlet.http.*;



public class DynamicVoiceXMLServlet extends HttpServlet {



  public void doGet(HttpServletRequest req, HttpServletResponse res)

    throws ServletException, IOException {



    BufferedInputStream bis = null;

    PrintWrite

上一页  [1] [2] [3] [4] [5] [6] [7] [8] [9] 下一页


  • 上一个Java:
  • 下一个Java:
  •  
    热门文章
    推荐文章
    关于我们 | 发展历程 | 网站地图 | 广告服务 | 招贤纳士 | 战略合作 | 友情链接 | 著作声明 | 联系我们
    Copyright © 2002-2007 SYUE All rights reserved.
    E_mail:Admin@Syue.Com 皖ICP备05004589号
    未经授权禁止转载、摘编、复制或建立镜像.如有违反,追究法律责任.
    bet365 传世私服 天龙八部私服 热血江湖私服 英雄合击传奇私服 机战私服 惊天动地私服 天龙八部私服 热血江湖私服 bet365 天龙八部私服 bet365 传世私服 传奇世界私服